keybase / keybase-issues

A single repo for managing publicly recognized issues with the keybase client, installer, and website.
900 stars 37 forks source link

Upload private key *without* giving its passphrase? #489

Open hunger opened 10 years ago

hunger commented 10 years ago

I wanted to use the private key sync feature and thus started the private key upload process. I got to the point where I pasted my key into a textbox and was then informed that I needed to provide my current passphrase as well as the keybase passphrase. Could you please provide some information about what happens there?

I do assume that you want to change the passphrase to the keybase one? That would make a sense for the website-based encryption functionality. But at this time I am only interested in the private key synchronisation and I do not see why my current passphrase is necessary for that.

Could you please allow uploading of keys with a passphrase set and have those synced between a users' machines?

I do appreciate your service, but so far I do not trust you enough to hand over my private key in the clear to a software infrastructure solely in your hands!

maxtaco commented 10 years ago

It's a good point. The current system: (1) removes openPGP S2K decryption by decrypting with your private key and your previous password; it then (2) applies TripleSec encryption in P3SKB format, encrypting with bytes from your stretched keybase passphrase that aren't shared with the server. This setting enables browser crypto for those who want it, without letting the server decrypt your private key.

I see your point, this isn't the best system for dumb secret key syncing across devices, for those who don't want to use browser crypto. If it doesn't make the U/I horrible, I wonder if we can add the feature to maintain the original S2K encryption with your previous password, and add P3SKB on top of it.

BTW, the OpenPGP standard is weak for two reasons: first, it uses a weak key-stretcher; and second, it doesn't use authenticated encryption, so it's open to malleability and chosen ciphertext attacks.

hunger commented 10 years ago

Feel free to add as much crypto as you like, but please keep the crypto I already have:-)

I see that leaving the normal gpg passphrase in place will make the web frontend code more complex, but I would really love having keybase.io share my keys for me.

I would expect the keybase crypto to vanish in this case when the keybase client has downloaded the key and only the normal gpg passphrase to stick.

BTW: Considering the length of my passphrase I am not at all concerned about the key-stretcher:-)

maxtaco commented 10 years ago

This seems like a good feature/option. We'll talk it over today. Thanks for your feedback!

(edit above: s/dump/dumb/)