-
Notifications
You must be signed in to change notification settings - Fork 146
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
Security risk of seeing "secret key" after the seed is originally inserted #2628
Comments
Yes. Although we do know that if someone knows your wallet password AND has access to your file system he will be able to decrypt the private keys using the wallet password this feature. Although possibly useful for an uncaring user who forgot to take note of his seed phrase upon wallet creation (a HUGE mistake, obviously), does represent an additional layer of vulnerability to the wallet, for a hacker could get access to all of your addresses if he gets to know your seed phrase. |
There is also the concern of a compromised machine with a screen reader or keylogger, not to mention how the seed phrase is stored on the device for later retrieval. |
Thanks for the extra input here. The particular attack scenarios of concern appear to be:
To resolve scenario # 1 or # 2, we'd have to remove passwords from the wallet in general and simply ask for users to re-enter their Secret Key every time they want to unlock the wallet. This is similar to how the Stacks Wallet for desktop used to work (in Stacks 1.0 days) and risks adding UX friction if users generally have an easier time reentering passwords rather than 12- or 24-word keys. However, there's an argument to make here that many users simply copy and paste their passwords from password managers these days anyway, since our password criteria are very tough (and make memorization difficult). So the UX friction may not be substantially different. That said, for scenario # 1 we'd need to believe that users are more likely to expose their passwords to others vs. their Secret Keys. And for scenario # 2, we'd need to believe that the encrypted key is indeed possible to get cracked in a usefully short amount of time. To resolve # 3 or # 4, the user would have to use a hardware wallet (e.g. Ledger) even if passwords were removed. Since presumably the user would have to enter their Secret Key each time they want to sign a transaction or message in lieu of storing it in memory (encrypted with password or otherwise). Otherwise, the snooping software or screen reader is going to capture the Secret Key in software mode / sans hardware device whenever the wallet needs it at the moment of signing (either as typed or unencrypted for usage). @kyranjamie may have some additional thoughts here, particularly as they concern our current password encryption scheme re: scenario # 2 |
It's important to understand that, in order to sign transactions and actually use the wallet, the wallet needs the private key. Whether or not we allow the user to view it later, it's still there. Disabling this feature offers virtually no additional security, and puts users who've lost their seed at risk. It is not a critical security vulnerability. Metamask, among many other wallets, support this, and it's an in demand feature for the desktop wallet.
Absolutely true. If an attacker has these things I'd be extremely concerned. There's very little we can do to prevent loss at this point. But I see little relation between this and the issue in question. Keylogger/screen reader It seems far-fetched to me that by not allowing a user to see their seed phrase, there'd be any additional protection for a compromised machine. Passwords on a local machine I'm going to close this as it's a non issue. There's a precedent for this feature. Always open to chat about general wallet security. There's a discussion here with some ideas to keep the in memory key more isolated from other script contexts. If there are other security concerns, open a new issue to discuss there. |
@kyranjamie @markmhx awesome responses, thanks! figured it was better to ask the source vs making assumptions as to why/how it's an option. again, awesome response/explanation - thanks again |
Thanks guys. |
A originally simple question on the telegram: "Hi, just wanted to ask a couple questions... First, is there a way to see my private seed of Hiro Wallet? And, if I am already stacking, how can add more STX to the pool? Cheers"
Link to chat convo: https://t.me/StacksChat/312656
Then you can just scroll down to see the full convo between Gustavo and Jw.
This question turned into a legitimate question around critical security vulnerability of the current Hiro wallet feature.
I quote the chat: "I don't think one should be able to see his seed by using the wallet program/extension after the seed is originally inserted. Yet on Hiro you have the option to see your "secret key". I think this possibility should be removed altogether from the extension"
Pls verify can you verify if above is true? If it is the case, sounds like it might be worth addressing quickly in light of the recent Solana wallet hack, all users in crypto are very sensitive about wallet security, including Stackers I see many conversations around Stacks ecosystem.
CC: @sjwhitely
Shout out to Gustavo for bringing this to light.
The text was updated successfully, but these errors were encountered: