keybase / keybase/keybase-issues
Inconsistent recommendations about browser crypto
- Dominant language
- No language data
- Stars
- 899
- Forks
- 40
- PR merge metrics
- No merged PRs in 30d
Description
When a user tries to verify or encrypt in the browser, we get a reasonably good warning message:
> Browser crypto can be scary! Do you have a malicious extension installed? We can't tell. Further, how can you guarantee we haven't been tortured into serving you custom, targeted JavaScript? Hopefully you're not that important.
>
> So: please only do browser crypto if (1) you feel your browser is clean and (2) a life does not depend on it.
That's not too bad, especially since your service only has my public key, and therefore incapable of doing anything a random person on the internet couldn't anyway.
But then in your setup process you give what seems like the opposite advice:
> Keybase can also store a client-encrypted copy of your private key.
>
> This is not mandatory, but it's very convenient. For safety, the Keybase servers never see your passphrase, even during login, and therefore cannot decrypt your private key.
Where's the huge warning message this time? Trusting my **private key** to in-browser crypto? Okay, so not everyone has a private key that protects sensitive information, but for those of us who do, this is madness!!
I really think you should reconsider how you present this. It feels very unprofessional, even for a beta, akin to having asked for the passwords to my bank accounts. I think you should at the very least assume that if a user has their own keypair already generated, they will never want to trust their key to in-browser crypto.
I also wonder whether having in-browser crypto is going to be good for you in the long run. It's convenient, but doesn't exactly engender confidence. Ideally I'd prefer you place security over convenience, rather than the other way around.
Have you considered instead a node-webkit client that wraps GPG (and maybe installs it if it doesn't exist on the system already)? You could use the same interface you have now, without the questionable security of the web browser.
Contributor guide
No contributing guide indexed for this repository
Research direction
Review the browser verification/encryption warning and the setup message that offers a client-encrypted private-key copy. Compare how the two flows present browser-crypto risks; done means the issue's concern about inconsistent security guidance has been addressed, though no specific files or tests are identified.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- documentation, security
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100