Relevant? An 8-year vulnerability affecting Bitcoin signing process identified, over 900 addresses affected

Hallo, ist dies für Normalbürger relevant?

Hier greift nahezu exakt das gleiche Fazit wie in diesem Beitrag:

2 „Gefällt mir“

Aus dem Link des TE:

This ECDSA signature algorithm is critical in ensuring that only the sender of the coin is the true owner. At the same time, it protects against double-spending and fraud.

Wirklich?! Dann brauchen wir doch die Blockchain garnicht mehr, die Umweltsau! :stuck_out_tongue:

Zum Artikel von @sutterseba:
Einmal mehr: Hervorragende Arbeit, vielen Dank!

Zum Thema:
Ist ja nicht das erste Mal:

Sony PS3 hack

In 2010, the hacker group fail0Overflow demonstrated that they could break the security methods of the Sony PS3. They achieved recreating Sony’s private key, and then break the signatures on the hypervisor and on the signed executables.

The core problem related to a lack of randomisation in the generation of a randomisation factor used within the signing processing (ECDSA). They did this by reversing the public key of the signature to give the private key. In fact, there was no actual randomisation involved and the seed value stays the same for each signing.

(Quelle: Not Playing Randomly: The Sony PS3 and Bitcoin Crypto Hacks | by Prof Bill Buchanan OBE | ASecuritySite: When Bob Met Alice | Medium)

So macht man eine echte Zufallszahl :stuck_out_tongue:

3 „Gefällt mir“

Es ist ein bisschen schade, dass der Inhalt des zugrundeliegenden Papers etwas untergeht, da der Autor des Artikels auf crypto[.]news die Thematik einerseits nicht verstanden hat und andereseits versucht, sie künstlich zu dramatisieren.

Kurz zu einigen Punkten des Artikels, der fast von vorne bis hinten falsch ist…

A new research finding has picked out vulnerabilities in the new class of Bitcoin Elliptic Curve Digital Signature Algorithm (ECDSA) signature that entities have, since 2015, been using to steal funds from unsuspecting users, skimming over 222 bitcoin (BTC) over the years.

Das hört sich an, als wäre die neue Angriffsmethode seit 2015 verwendet worden, um Coins zu stehlen.

Stattdessen haben die Forscher interessanterweise festgestellt, dass alle Adressen zu denjenigen Signaturen, welche die entdeckte Schwachstelle aufweisen, bereits leergeräumt wurden. Und zwar wegen anderer, bereits lange bekannter Schwachstellen bei der kryptographischen Implementierung, oder nicht zufälligen Private Keys („Brainwallets“).

Es wird sogar noch interessanter, was im Artikel gar nicht erwähnt wird. Es deutet einiges darauf hin, dass all diese Adressen von der gleichen Person bestohlen wurden (Pseudonym „amaclin“ auf bitcointalk und bitcoin stackexchange).

Amaclin verwendet in dem Script, mit welchem die Coins der Opfer auf eigenen Adressen transferiert werden, offenbar eine eigene und für normale Zwecke sehr schlechte ECDSA Implementierung. Diese Implementierung weist zufällig genau die Schwachstelle auf, die die Forscher nun aktuell entdeckt haben. Amaclin kann es egal sein, da die Coins sowieso nur ein einziges Mal wegtransferiert (geklaut) werden.

The weakness occurs when the signature nonce is generated by concatenating half of the bits of the message hash together with half of the bits of the secret signing key.

Soweit richtig.

Für jede einzelne ECDSA Signatur wird eine geheime Zufallszahl benötigt („Nonce“). Sobald so eine Nonce für unterschiedliche Transaktionen mehrfach verwendet wird, oder falls die Nonce bekannt wird, kann man auf den Private Key zurückrechnen.

Aufgrund von Problemen mit schlechten Zufallsgeneratoren in der Vergangenheit, werden heutzutage bei Bitcoin praktisch nur noch Nonces verwendet, die nicht durch einen Zufallsgenerator erzeugt werden, sondern aus Hashes von Private Key und zu signierender Message. Solche deterministischen Nonces sind für außenstehende praktisch zufällig, da sie den Private Key nicht kennen und aus Hashes auch nicht zurückrechnen können.

Der neue Angriff funktioniert aber nur dann, wenn die Nonce einfach halb/halb aus Message- und Private-Key-Teilen zusammengesetzt wird (ohne Hashing). Also ein sehr spezieller Fall, der wohl von den großen Wallets nicht verwendet wird, da das korrekte Vorgehen z.B. in IETF RFC 6979 standardisiert ist.

In this way, the attacker can proceed to create fake ECDSA signatures that appear to be valid.

Angreifer kennen nach erfolgreichem Angriff den Private Key, können also echte, gültige Signaturen erstellen.

To execute this “lattice-based attack,” researchers said the attacker could recover the sender’s ECDSA private keys only if they knew the nonce used to generate a single signature.

Mit der neuen Methode muss man die Nonce eben gerade nicht kennen. Man benötigt nur einzelne Signaturen, wie sie für jede Transaktion in der Blockchain stehen.

Die Forscher haben sämtliche vergangene Bitcoin-Transaktionen durchforstet (ca. 2 Mrd. Signaturen) und dabei alle Signaturen aufgedeckt, bei denen die Nonce nach obigem Muster aufgebaut war.
Die Nonce muss man dabei nicht kennen, aber der spezielle Aufbau sorgt dafür, dass der Angriff funktioniert. Einen erfolgreichen Angriff erkennt man daran, dass sich aus dem berechneten Private Key der bekannte Public Key berechnen lässt.

A nonce in Bitcoin is a unique, random number generated by a miner that’s used to create a hash.

Der Autor verwechselt hier die Nonce bei den ECDSA Signaturen mit den Nonces beim Mining.

The new finding reveals that custom ECDSA signatures in the blockchain network are vulnerable and can leak funds, true identities, and the sender’s location. During the investigation, nearly 90,000 vulnerable custom ECDSA signatures were identified. These were created by 900 different addresses that have since moved 222 BTC.

Wie gesagt scheinen alle betroffenen Signaturen tatsächlich wohl nur von einer Person bzw. einer einzelnen angreifbaren ECDSA Implementierung zu stammen, die diese 893 Adressen bestohlen hat. Die Adressen waren alle schon leer.

Alle anderen Adressen, von denen schon einmal transferiert wurde sind offenbar sicher. Es wurden schließlich alle Signaturen analysiert.

Also alles in allem kein besonders hilfreicher Artikel. Interessant finde ich persönlich allerdings das Paper.

Einerseits wegen der speziellen Methode eine Nonce zu erzeugen, die evtl. nur von einer Person verwendet wurde, der es auch nicht auf Sicherheit ankommt.
Andererseits weil klar wird, dass es prinzipiell Angriffe auf Signaturen gibt, deren Nonce nach einem gewissen Schema aufgebaut ist.

Die Bitcoin Core Bibliothek libsecp256k1 hält sich an RFC 6979 und hasht die Eingangsdaten für die deterministische Nonce, ist also nicht wie beschrieben angreifbar.

Bei der Bitbox wird der Fork libsecp256k1-zkp verwendet, in dem unter anderem das ECDSA Sign-to-Contract Feature implementiert wurde („Anti-Klepto-Protokoll“). Dabei steuert die Wallet Software (hier: Bitbox App) nachweisbar einen Teil der Zufälligkeit zur Nonce bei, die aber weiterhin auf der HW Wallet (hier: Bitbox) berechnet wird. Auch hier wird nochmal gehasht.

Trotz des Hashings steuert die Software bei Sign-to-Contract aber wie gesagt einen Teil zur Nonce bei. Ich wüsste zwar nicht wie das jemals ausgenutzt werden sollte, aber durch dieses Feature nimmt eine potentiell kompromittierbare Software prinzipiell Einfluss auf die Nonce. Auf jeden Fall mindestens einen Gedanken wert, den sich aber sicher viele schon gemacht haben.

7 „Gefällt mir“