keybase / keybase/keybase-issues

Inconsistent recommendations about browser crypto

Open
#38 6 comments 0 reactions 0 assignees View on GitHub
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.