Jump to content

Angriff auf ECDSA Verschlüsselung (Bitcoin betroffen)


Recommended Posts

Die Firma Kudelski hat einen interessanten Artikel veröffentlicht. Es geht um einen neuen Angriff auf ECDSA, es betrifft somit auch Bitcoin und Ethereum. Dabei geht es um die mehrfache Verwendung der Signatur in der Blockchain, also den mehrfachen Einsatz des private Keys. 

Hier einmal der Link: https://research.kudelskisecurity.com/2023/03/06/polynonce-a-tale-of-a-novel-ecdsa-attack-and-bitcoin-tears/

Ich möchte den Kollegen Fefe zitieren:

Zitat

Was ist jetzt hier das Problem? Stellt sich raus, dass man mit großen Computern auch algorithmisch den Private Key berechnen kann, wenn die Nonces nicht wiederverwendet wurden sondern "nur" in Relation zueinander standen, z.B. weil sie aus einem Pseudozufallszahlengenerator rausfielen statt echter Zufall zu sein.

To run the attack in practice, the following is required: A minimum of 4 signatures generated by the same private key, the associated public key, and the message hash associated with each signature. If the nonces obey the recurrence relation, we retrieve the private key used to generate the vulnerable signatures.

Hey, schnell, wo liegen eine Menge signierter Daten öffentlich rum? Oh ja richtig, auf der Blockchain! Nun sollten da die meisten Transaktionen ephemeral sein, d.h. der Private Key wurde nur einmal verwendet. Dann wäre der Angriff nicht möglich, denn der braucht mindestens vier Signaturen vom selben Key. Und tatsächlich ist das auch für 90% der Signaturen in der Blockchain der Fall. Also haben sie mal geguckt, wie weit sie bei den anderen 10% kommen. Ergebnis:

We broke 762 unique wallets. All of these had a zero balance. Interestingly enough, we could break all these wallets, not because of a linear or quadratic recurrence but because there was at least one repeated nonce in the signatures.

Die Wallets mit Nonce-Recycling hatte schon jemand anderes leergeräumt 🙂

Unter dem Strich blieb kein Fall übrig, der nicht auf Nonce-Doppelverwendung zurückführbar ist. Das könnte aber mehr Glück als Verstand gewesen sein.

 

Edited by RGarbach
  • Thanks 1
  • Like 1
Link to comment
Share on other sites

Interessantes Paper. Danke dafür!

Das Geblubber von Fefe lasse ich mal außen vor. Also bekannt ist ja schon länger, daß Nonce-Reuse bei Signaturen mit demselben Private Key, diesen praktisch trivial ermittelbar macht. Deshalb ist Nonce-Reuse ein No-Go. Deshalb ist Address-Reuse mit einem gewissen Risiko behaftet, wenn eine Nonce-Kollision nicht ausgeschlossen werden kann (funktioniert im Grunde genommen nur zuverlässig, wenn die Nonce wirklich zufällig wäre; wirklich zufällig und Computer beißen sich aber).

So tief bin ich noch nicht in ECDSA hineingestiegen, aber jetzt interessiert mich doch, wie groß und wie genau die Nonce für ECDSA-Signaturen generiert wird.

Spannendes Thema!

 

So wie ich es bisher verstehe, nutzt der Angriff Designschwächen bzw. eine gewisse Korrelation zwischen den verschiedenen Nonces bei multiplen Signaturen mit demselben Private Key. Korrelationen können z.B. bei Verwendung schlechter PRNGs mit zu kleiner Periode o.ä. Schwächen für die Nonce-Generierung auftreten. Nicht so leicht verdaulicher Stoff in dem Paper...

Edited by Cricktor
  • Like 2
Link to comment
Share on other sites

... und was bedeutet das für den ganz normalen User, der an seinen 0,6 BTC arbeitet ganz konkret?

Das ist ganz einfach:

Solange hier in der Richlist noch die Binance- und Bitfinex-Wallet ganz oben steht, ist das überhaupt kein Problem: https://bitinfocharts.com/top-100-richest-bitcoin-addresses.html

Dann ist "Bitcoin" als Gesamtkonzept absolut sicher.

... dass es immer mal wieder Wallets mit fehlerhafter Kryptographie-Implementierung gibt, ist vollkommen normal. In der Welt der Informationstechnologie gibt es Programmierfehler. Und wenn es durch fehlerhafte Software etwas Wertvolles zu stehlen gibt, dann wird das auch gestohlen.

Jeder Laie kann davon ausgehen, dass zahlreiche Hackergruppen daran arbeiten die Coldwallets von Binance und Bitfinex zu hacken. Da muss ein richtiger Run auf diesen milliardenschweren Jackpot ausgebrochen sein.

Aber ebenso sollte klar sein, dass dieser Jackpot nahezu wertlos ist wenn er doch einmal geknackt werden würde.

Link to comment
Share on other sites

vor 1 Stunde schrieb Jokin:

... und was bedeutet das für den ganz normalen User, der an seinen 0,6 BTC arbeitet ganz konkret?

Etablierte Software-Wallets verwenden, am besten auch in Kombination mit einer Hardware-Wallet, die die zentralen kryptografischen Wallet-Geheimnisse sicher vor Malware schützt. Über Jahre gereifte Wallet-Software wird sehr wahrscheinlich anfängliche Implementierungsschwächen abgelegt haben. Open Source Wallets erlauben die Kontrolle, ob kritische Krypto-Bereiche sicher implementiert sind. (Open Source ist keine Garantie für Fehlerfreiheit, aber wenigstens kann man Fehler finden, wenn man dazu in der Lage ist. Bei Closed Source ist es weitgehend eine Black Box.)

Als normaler User muss man beim Ausgeben kein Address Reuse betreiben, da dies auch schon aus Privacy-Gründen nicht empfohlen wird.

  • Like 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.