-
-
Notifications
You must be signed in to change notification settings - Fork 668
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Redesign Passphrase #1
Comments
We can ask for the passphrase 2x to avoid typos. And only ask for the passphrase once when the state is provided and we can detect these typos. |
Another option is to show passphrase on the device (if the user wants to - i.e. dialog Show passphrase?) after it has been entered. |
Related to Protocol redesign: #79 |
Some good points about passphrase design were made here: https://www.reddit.com/r/Bitcoin/comments/bp0nqs/trezor_or_ledger_which_one_is_better/enof517?utm_source=share&utm_medium=web2x To summarize:
I think the first two points can be solved by adding a "Switch passphrase" button to the web wallet. As for the third point, I actually think that this is in contradiction with plausible deniability. For one thing, there is likely to be some side-channel information, which could reveal whether the primary or secondary PIN was entered. So in general I am not too keen on supporting multiple PINs. However, I would like to make it possible to configure a default passphrase which would be automatically used upon start-up. The reason is that people may want to use a passphrase for various reasons:
Say you are worried about protecting your paper backup but you trust the hardware and PIN to provide sufficient protection. In that case entering a passphrase during every start-up can be a real burden, which is why you'd like to configure it. |
I strongly agree with the first and second Reddit suggestions. Strongly Disagree with the third one.
Where would this passphrase be stored? I think it is antipattern to store it anywhere. For various usability and security reasons. |
agree with @prusnak. Mainly because if passphrase is stored, it becomes another piece of "static" data that you don't remember after a month of not needing it, and you need to back it up somehow. Either you add it to the seed (which defeats point (3)), or you handle it separately (which gives you a brand new point of failure). |
It would be stored encrypted in the storage just like the mnemonic. This doesn't prevent you from using more passphrases. For example, you can have:
You configure passphrase1 to be stored on Trezor and used as default, whereas passphrase2 is not stored anywhere. That way you can easily access your regular accounts. If somebody steals your paper backup, they are not able to access neither your regular accounts nor your savings accounts. If they steal your Trezor and guess the PIN or extract the sensitive data by some means, then they gain access to your regular accounts but not to your savings accounts. So this feature merely provides a way to fine-tune your risk/usability tradeoff. |
I don't like that, honestly. It introduces confusion and people will surely forget the stored passphrase. |
Consider splitting up reset device and backup device as part of this issue, because it is a breaking change for wallet / third parties as well. |
Two QA scenarios I have forgotten: For 2.3.0:
For 1.9.0 and 2.3.0:
|
2.3.0 (0b7a844) Passphrase was correctly requested only on the device, per session.
2.3.0 (0b7a844) Passphrase was correctly prompted only once per session, tested send & receive, sign & verify. A trivial visual bug was present in the passphrase entry prompt in the app. |
The visual bug should be fixed in Electrum's master, se spesmilo/electrum#6064 (comment) . So I consider this done 🎉 |
* ADD a custom group element contraction function to work around non-roundtripping of donna's normal `ge25519_pack()` and `ge25519_unpack_negative_vartime()` functions. * ADD a test for roundtripping. * FIXES part of trezor#1.
This test passes but the test for encoding a basepoint still does not pass! Argggghghggh. * FIXES part of trezor#1. Not really. But it helps narrow down the issue.
Make the workflow same for client for both non-passphrase device and passphrase device. Currently, client receives state only when passphrase is enabled.
The text was updated successfully, but these errors were encountered: