Skip to content
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

Update elliptic to protect from Minerva Timing Attack #666

Closed
ricmoo opened this issue Nov 24, 2019 · 3 comments
Closed

Update elliptic to protect from Minerva Timing Attack #666

ricmoo opened this issue Nov 24, 2019 · 3 comments
Labels
fixed/complete This Bug is fixed or Enhancement is complete and published.

Comments

@ricmoo
Copy link
Member

ricmoo commented Nov 24, 2019

A new timing attack, Minerva has been found on the elliptic curve library that ethers uses.

For most users this should not be an issue.

If you have a private key on a server which blindly signs messages or transactions, you should update your library and rotate the private key, especially if you have seen an unusually high amount of signatures produced.

The gist of the attack is that, if I can get an accurate time of how long it takes for you to sign a message, and I can get you to sign about 11,000 different messages (timing each one), I can guess your private key.

For example, a wallet using ethers is likely not affected, since a site asking to sign a message should create a pop-up dialog box; which the user then reads and clicks "accept". The time cannot be accurately determined, since it is unknown how long the user waited to click "accept" and how long the signing took. In this case, the time is very largely dominated by the user's interaction time. Also, if a user signed over 11,000 messages, they would probably catch on something was wrong. :)

An example where this might be important is a faucet, which allows a user to enter an Ethereum Address, and have some tokens delivered to their account. If a bot was set up to request 11,000 withdraws, timing each one, it may go quite unnoticed, allowing an attacker to recover the private key which could then be used to steal the remaining balance or control other assets the faucet manages with that key.

@ricmoo ricmoo added the on-deck This Enhancement or Bug is currently being worked on. label Nov 24, 2019
@ricmoo ricmoo added fixed/complete This Bug is fixed or Enhancement is complete and published. and removed on-deck This Enhancement or Bug is currently being worked on. labels Nov 24, 2019
@ricmoo ricmoo pinned this issue Nov 24, 2019
@PhABC
Copy link

PhABC commented Nov 24, 2019

Issue 666 😈

@ricmoo
Copy link
Member Author

ricmoo commented Nov 24, 2019

(@PhABC Haha! Yeah, that was a pretty exciting coincidence. :))

@ricmoo
Copy link
Member Author

ricmoo commented Jul 5, 2020

Closing this now and unpinning it. It's been updated for quite some time. :)

Thanks! :)

@ricmoo ricmoo closed this as completed Jul 5, 2020
@ricmoo ricmoo unpinned this issue Jul 5, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
fixed/complete This Bug is fixed or Enhancement is complete and published.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants