Forschung. Schlüsselableitung
BIP32-Escalation des Parent-Schlüssels ohne Hardened-Modus
Eine wenig bekannte Eigenschaft von BIP32 besagt, dass ein xpub in Verbindung mit einem einzelnen, nicht gehärteten untergeordneten privaten Schlüssel den übergeordneten Schlüssel offenlegen kann – ein echtes Risiko und für den Besitzer gleichzeitig eine Möglichkeit zur Wiederherstellung.
Hierarchisch-deterministische BIP32-Wallets leiten aus einem Seed einen ganzen Schlüsselbaum ab. Die meisten Menschen wissen, dass der Baum nach unten verläuft – vom übergeordneten zum untergeordneten Element. Weniger bekannt ist, dass er unter bestimmten Bedingungen auch nach oben durchlaufen werden kann. Diese Seite dokumentiert die nicht-abgesicherte Eskalationseigenschaft: Was sie ist, warum sie für die Sicherheit von Bedeutung ist und wie sie bei der Wiederherstellung einer Wallet hilft.
So funktioniert die HD-Ableitung
In einer BIP32-Wallet leitet jeder Schlüssel über eine Einwegfunktion, die den übergeordneten Schlüssel mit einem Chaincode und einem Index kombiniert, Unter-Schlüssel ab. Es gibt zwei Varianten: die „hardened“ Ableitung (Indizes über 2³¹), für die der übergeordnete private Schlüssel erforderlich ist, und die „non-hardened“ Ableitung, die anhand des übergeordneten öffentlichen Schlüssels durchgeführt werden kann. Die nicht-gehärtete Ableitung macht einen xpub so nützlich – ein „Watch-Only“-Server kann neue Empfangsadressen generieren, ohne jemals einen privaten Schlüssel zu besitzen.
Die Eskalationseigenschaft
Hier liegt die Schwachstelle. Bei der nicht-gehärteten Ableitung ist die Beziehung zwischen einem untergeordneten privaten Schlüssel und seinem übergeordneten Schlüssel umkehrbar, wenn man auch den öffentlichen Schlüssel des übergeordneten Schlüssels (den xpub) kennt. Konkret bedeutet dies: Sind der xpub und ein beliebiger nicht-gehärteter untergeordneter privater Schlüssel bekannt, lässt sich der private Schlüssel des übergeordneten Schlüssels berechnen – und daraus der gesamte Teilbaum. Ein durchgesickerter untergeordneter Schlüssel plus ein öffentlicher xpub führen zur vollständigen Kompromittierung dieses Zweigs.
Warum dies ein Sicherheitsrisiko darstellt
Dadurch werden zwei scheinbar sichere Dinge zu einer gefährlichen Kombination. Das Weitergeben einer xpub für Buchhaltungszwecke oder zur reinen Beobachtung erscheint harmlos, und die Offenlegung eines einzelnen untergeordneten privaten Schlüssels wirkt wie ein begrenzter Verlust, der sich auf eine einzige Adresse beschränkt. Zusammen sind sie das jedoch nicht: Ein Angreifer, der im Besitz der xpub ist und nur einen einzigen, nicht gehärteten untergeordneten Schlüssel erlangt, kann zum übergeordneten Schlüssel aufsteigen und jede Adresse in diesem Konto leerräumen. Dies ist ein classic , in dem sich zwei für sich genommen geringfügige Sicherheitslücken zu einer vollständigen Kompromittierung verbinden, und genau deshalb gibt es an den Kontogrenzen die gehärtete Ableitung.
Wie dies bei der Wiederherstellung Ihrer Schlüssel hilft
Dieselbe Eigenschaft erweist sich als Segen, wenn Sie als Eigentümer versuchen, an Ihr eigenes Geld wiederherzustellen. Wenn Sie die xpub des Kontos und auch nur einen einzigen nicht gehärteten untergeordneten privaten Schlüssel besitzen – vielleicht einen einzelnen exportierten Schlüssel oder den Schlüssel einer Adresse, den Sie noch haben –, lassen sich der übergeordnete Schlüssel und der gesamte Zweig rekonstruieren. Ein unvollständiger, fragmentarischer Satz an Schlüsselmaterial, der nutzlos erscheint, kann durch Eskalation eine gesamte Wallet wiederherstellen. Dadurch wird die Situation „Ich habe nur einen alten privaten Schlüssel und eine xpub“ von einer Sackgasse zu einer vollständigen Wiederherstellung.
Wann dies gilt
Die Voraussetzungen sind spezifisch: Die Ableitung muss nicht-gehärtet sein (gehärtete untergeordnete Schlüssel geben keinen Aufschluss über den übergeordneten Schlüssel), man benötigt den korrekten xpub für den übergeordneten Schlüssel sowie einen echten privaten Schlüssel eines direkt darunter liegenden untergeordneten Schlüssels. Viele Wallets verwenden gerade auf Kontoebene eine gehärtete Ableitung, um genau dies zu verhindern, sodass dies nicht überall möglich ist – doch dort, wo ein Wallet eine nicht-gehärtete Ableitung verwendet, ist dies ein leistungsstarker und oft übersehener Weg.
Beurteilung eines Falles
Um festzustellen, ob eine Eskalation vorliegt, muss das Ableitungsschema der Wallet ermittelt werden – welche Software sie erstellt hat und ob der betreffende Zweig gehärtet wurde oder nicht – und anschließend muss bestätigt werden, dass die xpub tatsächlich dem übergeordneten Schlüssel des von Ihnen gehaltenen untergeordneten Schlüssels entspricht. Da die mathematischen Berechnungen exakt sind, ist die Rekonstruktion deterministisch, sobald diese Fakten übereinstimmen: Entweder ergibt sich der übergeordnete Schlüssel korrekt, oder die Eingaben stimmen nicht überein – ohne jegliches Rätselraten dazwischen.
Sich schützen
Die Lehre für die Sicherheit ist einfach: Behandeln Sie Ihre xpub als vertrauliche Information, nicht als öffentlich zugänglich, und geben Sie niemals einen einzelnen privaten Unter-Schlüssel preis, solange die zugehörige xpub jemandem bekannt ist. Wenn Sie eine xpub zwecks reiner Beobachtung weitergeben müssen, sollten Sie sich bewusst sein, dass bereits ein einziger durchgesickerter, nicht abgesicherter Unter-Schlüssel das Konto gefährdet. Verwenden Sie nach Möglichkeit Wallets, die an den Kontogrenzen abgesichert sind, sodass selbst eine durchgesickerte xpub und ein durchgesickerter Unter-Schlüssel nicht zu einer Eskalation kombiniert werden können.
Ein konkretes Beispiel
Stellen Sie sich eine Wallet vor, die einem Buchhalter einen reinen xpub zur Nachverfolgung eingehender Zahlungen zur Verfügung stellte und vor Jahren separat den privaten Schlüssel einer Adresse exportierte, um einen kleinen Restbetrag abzuheben. Für sich genommen schien beides keine Rolle zu spielen – ein xpub gibt keine Schlüssel preis, und der Schlüssel einer Adresse stellt nur ein Risiko für diese eine Adresse dar. Wenn diese Adresse jedoch ein nicht gesichertes „Kind“ des gemeinsam genutzten xpub war, lassen sich aus beiden zusammen der übergeordnete Schlüssel und jede darunterliegende Adresse rekonstruieren. Dieselbe Rechenlogik, die es einem Angreifer ermöglichen würde, diese Kombination auszunutzen, ist es auch, die es dem rechtmäßigen Eigentümer, der nach dem Verlust der HauptBrieftasche beide Teile besitzt, ermöglicht, wieder Fuß zu fassen und alles in diesem Zweig wiederherzustellen. Dies ist der deutlichste Beweis dafür, warum diese Eigenschaft gleichzeitig eine Gefahr und eine Rettungsleine darstellt.
Unsere Dokumentation
KeychainX hat in realen Wiederherstellungsfällen eine nicht gehärtete Eskalation genutzt, um Wallets aus fragmentarischem Schlüsselmaterial wiederherzustellen, und wir dokumentieren dies hier, da diese Methode sowohl als Wiederherstellungswerkzeug als auch als Risiko unterschätzt wird. Sie reiht sich in unsere umfassendere Arbeit zur Schlüsselableitung ein, einschließlich der forensischen Untersuchung der Trezor-Ableitung. Wenn Sie einen xpub und einen vereinzelten privaten Schlüssel besitzen, gehen Sie nicht davon aus, dass diese nutzlos sind.
Häufig gestellte Fragen
Welches Schlüsselmaterial benötigen Sie?
Im Idealfall die xpub des Kontos sowie mindestens einen nicht gehärteten untergeordneten privaten Schlüssel. Aus diesen beiden Schlüsseln lässt sich – sofern die Ableitung nicht gehärtet ist – der übergeordnete Schlüssel sowie der gesamte Zweig rekonstruieren.
Was ist eine nicht gehärtete BIP32-Eskalation?
Eine Eigenschaft, bei der man ausgehend von einem übergeordneten erweiterten öffentlichen Schlüssel (xpub) und einem beliebigen nicht gehärteten untergeordneten privaten Schlüssel den übergeordneten privaten Schlüssel – und damit den gesamten Zweig – berechnen kann.
Ist es sicher, meine XPUB-Nummer weiterzugeben?
Nicht ganz. Für sich genommen ist eine XPUB nur zur Anzeige bestimmt, doch in Kombination mit einem einzigen durchgesickerten, nicht gehärteten untergeordneten privaten Schlüssel legt sie den übergeordneten Schlüssel und jede Adresse in diesem Konto offen. Behandeln Sie die XPUB daher als vertrauliche Information.
Inwiefern hilft mir das dabei, meine Brieftasche wiederzufinden?
Wenn Sie den xpub und auch nur einen einzigen nicht gehärteten untergeordneten privaten Schlüssel besitzen, lassen sich der übergeordnete Schlüssel und der gesamte Zweig rekonstruieren – wodurch aus fragmentarischem Schlüsselmaterial eine vollständige Wiederherstellung möglich wird.
Gilt das immer?
Nein. Dazu sind eine nicht gehärtete Ableitung und die entsprechende xpub erforderlich. Wallets, die auf Kontoebene gehärtet sind, blockieren dies, sodass dies nur für bestimmte Konfigurationen gilt.
Wie viel kostet die Wiederherstellung?
Erfolgsabhängig: Ein Prozentsatz des wiedererlangten Wertes, jedoch nur, wenn wir die Geldbörse wiederfinden – und keine Vorauszahlung.
Einen xpub und einen verirrten privaten Schlüssel aufbewahren?
Aus diesen Fragmenten lässt sich durch Eskalation möglicherweise eine vollständige Wallet wiederherstellen. Teilen Sie uns mit, über welches Schlüsselmaterial Sie verfügen – wir erstellen innerhalb von 24 Stunden eine ehrliche Einschätzung.