Brute Force Search Space bezeichnet die Menge der Möglichkeiten, die beim Erraten eines Geheimnisses ausprobiert werden können. Stellen Sie sich vor, Sie hätten das Passwort Ihrer eigenen verschlüsselten Sicherung vergessen. Jeder Tipp ist ein Kandidat, und Sie müssen erkennen können, ob er die Sicherung richtig entschlüsselt. Mehr gleich wahrscheinliche Möglichkeiten und aufwendigere Prüfungen erschweren normalerweise die Suche. Bei einer echten Wallet muss allerdings zuerst klar sein, was genau gesucht wird.
Das Passwort einer Sicherung, ein privater Schlüssel zum Ausgeben von Bitcoin und die Eingabe des Generators, der diesen Schlüssel erzeugt hat, sind verschiedene Dinge. Sowohl die Kandidaten als auch ihre Prüfung unterscheiden sich. Hat ein fehlerhafter Generator nur aus wenigen Eingaben gewählt, kann die Suche leichter sein, als die Länge des erzeugten Schlüssels vermuten lässt. Ein Angreifer kann diese begrenzten Eingaben ausprobieren, statt sämtliche mathematisch möglichen Schlüssel durchzugehen. Bevor wir Möglichkeiten zählen, müssen wir deshalb die Entstehung des Geheimnisses verstehen. [1] [3]
Nehmen wir 16 gleich wahrscheinliche Möglichkeiten an, von denen genau eine richtig ist. Wir prüfen sie nacheinander, ohne einen Versuch zu wiederholen. Manchmal gelingt es früh, manchmal erst am Ende; im Durchschnitt sind es 8,5 geprüfte Kandidaten. Für eine allgemeine Anzahl N lautet die Beziehung E = (N+1)/2. Bei konstant 2 Versuchen pro Sekunde ergibt das durchschnittlich 4,25 Sekunden. Der Bruchteil eines Versuchs gehört zum Durchschnitt, nicht zu einer einzelnen Suche. Das veranschaulicht das Prinzip und ist keine gemessene Wiederherstellungszeit einer Bitcoin-Wallet. [1]
Lieblingswörter, Namen und leicht merkbare Muster kommen häufiger vor als zufällige Kombinationen. Ein Angreifer kann daher mit wahrscheinlicheren Kandidaten beginnen. Ein fehlerhafter Generator, der manche Ergebnisse bevorzugt, verursacht ein ähnliches Problem. Der Durchschnitt aus dem vorigen Beispiel gilt dann nicht mehr. Min-Entropie beschreibt die Erfolgschance des besten ersten Tipps. Sie bestimmt allein aber weder den gesamten Suchaufwand noch einen garantierten Zeitpunkt des Erfolgs. Eine Kandidatenzahl ohne die zugehörigen Wahrscheinlichkeiten bleibt unvollständig. [1] [2]
Die Prüfung eines Tipps muss nicht augenblicklich geschehen. PBKDF2 leitet aus einem Passwort und weiteren Eingaben einen Schlüssel ab. Wiederholte Berechnungen erhöhen den Aufwand für jeden Tipp. Eine weitere Eingabe ist das Salt, meist ein öffentlicher Wert, der Ableitungen voneinander unterscheidet. Unterschiedliche Salts verhindern, dass dieselbe vorberechnete Ergebnistabelle einfach wiederverwendet werden kann. Ein Salt ist kein zusätzliches geheimes Passwort und ersetzt keine starke Eingabe. Zur Geschwindigkeitsschätzung müssen die konkrete Funktion, ihre Einstellungen und die Hardware bekannt sein. [3]
BIP39 wandelt Wiederherstellungswörter und eine optionale Passphrase, also ein zusätzliches Passwort, in einen Seed um. Das ist der geheime Ausgangswert für die Ableitung der Schlüssel. Dafür verwendet es PBKDF2 mit HMAC-SHA512 als interner Rechenfunktion und 2048 Iterationen, also Wiederholungen. Das Ergebnis ist ein 512-Bit-Seed. Der Salt-Parameter besteht hier aus dem Text „mnemonic“, gefolgt von der Passphrase. Ein zusätzliches Geheimnis stammt somit aus der Passphrase selbst. Jede Passphrase ergibt einen gültigen Seed; die Prüfsumme der Wörter bestätigt also nicht die richtige Passphrase. Bei der Wiederherstellung Ihrer eigenen Wallet erkennen Sie diese etwa an einer bekannten Adresse mit den passenden Einstellungen zur Schlüsselableitung. Ein langes Ergebnis macht ein schwaches Passwort nicht stark. [4]
Manche mathematischen Verfahren gehen über das bloße Raten einzelner Werte hinaus. Bei der Elliptische-Kurven-Kryptografie (ECC) lässt sich aus dem privaten Schlüssel ein öffentlicher berechnen. Den privaten Wert in umgekehrter Richtung zu finden, ist die schwierige Aufgabe, die als diskretes Logarithmusproblem bezeichnet wird. SEC 2 beschreibt die Parameter der Bitcoin-Kurve secp256k1. Das bloße Zählen aller 256-Bit-Folgen erfasst deshalb nicht sämtliche Angriffswege. NIST SP 800-57 unterscheidet Schlüssellänge und Sicherheitsstärke, also den unter bestimmten Annahmen geschätzten Aufwand zum Brechen des Schutzes. Ein mathematischer Ansatz ist nicht automatisch praktisch einfach. [5] [6]
Mehrere Prozessoren können unabhängige Versuche unter sich aufteilen. Wie viel das bringt, hängt auch vom Speicher und der Organisation der Berechnung ab. Die Mining-Hashrate misst Mining-Berechnungen, nicht den PBKDF2-Durchsatz oder die Geschwindigkeit von ECC-Operationen. Außerdem ist eine Website-Anmeldung etwas anderes als eine Sicherungskopie. Ein Dienst kann nach Fehlversuchen den Zugang begrenzen. Wer eine Kopie der verschlüsselten Datei besitzt, kann Kandidaten dagegen offline auf dem eigenen Rechner prüfen. Die Anmeldegrenzen der Website halten solche Versuche allein nicht auf. [3] [6]
Wer den gesamten Seed erhält, muss keinen riesigen Suchraum mehr durchsuchen. Schadsoftware oder ein Fehler im Programm, das die Schlüssel verarbeitet, können zum selben Ergebnis führen. Sicherheit endet deshalb nicht bei der Wahl eines unvorhersehbaren Geheimnisses: Speicherung und Verwendung zählen ebenfalls. Fragen Sie bei Angaben zur Knackzeit, welcher Angriff angenommen wird, was der Angreifer bereits weiß und wie die Geschwindigkeit gemessen wurde. Eine große Zahl garantiert weder die Sicherheit eines Geräts noch die erfolgreiche Wiederherstellung einer verlorenen Wallet. [6]
Für ein möglichst vollständiges Bild lies diesen Eintrag zusammen mit Cryptographic Entropy, Entropy Bit, Private Key, Seed Phrase. Auf diesen Eintrag verweisen außerdem Entropy Bit, Random Number Generator.