Was bringt Fortego für die Selbstverwahrung bei Bitcoin?

Letztens habe ich mich mit dem Service der Firma Fortego beschäftigt. Was diese bietet im Hinblick auf die Selbstverwahrung.

Es geht hierbei nicht um die Seed-Generierung, was uns seit dem ColdCard Desaster ja schon noch etwas in die Suppe der Selbstverwahrung gespuckt hat.

Wenn jemand sich die Selbstverwahrung zutraut - was technisch ja eigentlich leicht ist -, hat er dennoch ein Problem, die unelektronische Sicherung der 12 oder 24 Wörter.

Wir wissen, dass der Seed einfach eine geordnete Liste von 12 oder 24 zufällig gewählten Wörtern aus einer 2048-Wörter grossen, geordneten Liste, der BIP-39-Liste, darstellt. 12 / 24 Wörter also, die die Basis sind für alles, was man mit Bitcoin je tun kann.

Wir wissen auch, dass wir den Seed hüten müssen wie unseren Augapfel. Aber wie?

Die 12 / 24 Wörter auf säurefreiem Papier. Gut. Aber dann kommt die Putzfrau, der Handwerker - alle haben ein Handy, der Schnappschuss ist schnell gemacht. Oder manche haben sie in Metall gemeisselt. Auch hier, die ubiquitäre Gefahr: Die Kamera des Handys.

Was kann man da tun? Wenn man die Liste schon sichern muss? Auswendig lernen? Nicht so gut, das menschliche Gehirn ist Schwächen unterworfen. Also braucht's wohl doch irgendwo, irgendwann einen Spickzettel.

Man könnte die Liste nach irgendeiner Regel durcheinander mischen. Man könnte die Wörter selbst durch andere Wörter in einer anderen Liste austauschen. Klever, aber: Wörter aus welcher Liste? Wer kennt diese Liste, wenn ich tot bin? Wer kennt die Regel, wie man die BIP-39 Wörter in diese andere Liste hin und zurück übersetzt? Schwierig.

Man könnte jedoch das mit der anderen Liste vereinfachen: es sind einfach wieder die BIP-39 Wörter. Einfach eine Permutation derselben.

Was gewänne man, wenn man die Wörter austauscht?

Die Kopie dieser Liste wäre nicht mehr kritisch, weil sie als Seed nicht mehr funktioniert. Würde jemand diese Liste in ein Wallet importieren, würde wohl meistens eine ungültige Prüfsumme angezeigt. Und wenn sie doch geschluckt würde, deutete sie auf einen Seed hin, der mit dem Ursprungsseed nichts zu tun hat. Man kann also eigentlich beliebig viele Kopien dieser Liste rumliegen lassen - vorausgesetzt, niemand kennt die Mapping-Funktion von Originalwort zu Austauschwort.

Was gewänne man nicht?

Diese Wortersetzung sichert einen nicht vor der sprichwörtlichen 5$ Wrench Attack. Denn in meinem Signiergerät ist ja nach wie vor der richtige Seed drin. Wer mich also zwingen kann, das Signiergerät zu öffnen und zu benutzen, kann mich auch zwingen, meine Funds zu transferieren. Die unvermeintliche Zeitverzögerung kommt meines Wissens erst mit einem Service wie BitVault.

Was handelt man sich ein?

Man muss sich eben diese Mapping-Funktion herstellen oder jederzeit beschaffen können. Und der Zugang zu der muss nun geschützt werden.

Den Zugang zu so einer Mapping-Funktion, das bietet Fortego als Service.

Es beginnt damit, dass man seine Hardware-Wallet eines beliebigen Herstellers schon eingerichtet hat. Ob man die Passphrase benutzt, jetzt schon oder erst später, ist unerheblich, denn es geht nur um den Seed. Der ist in der Wallet, sie ist insgesamt betriebsbereit und man kann den Seed anzeigen lassen.

Nun meldet man sich mit nur einer Email an, die mit der üblichen Opt-In-Methode verifiziert wird. Und schon erscheint eine Liste der BIP-Wörter, in der ich nun meine Originalwörter suche und dann das rechts danebenstehende Wort aufschreibe.

Damit weiss Fortego nur, wie die BIP-39 Liste für genau mich durchgemischt wurde. Was Fortego nicht weiss, ist, welche 24 Wörter meines Originalseed ich gemappt habe. Ob ich also abandon -> target oder about -> script überhaupt und an welcher Position in der Liste genutzt habe, weiss Fortego nicht.

Beispiel:

Ich habe in meinem Originalseed das Wort able. In der Liste der von Fortego für mich gemixten BIP-39 Wörter steht able -> time. Ich schreibe auf time. So mache ich das mit allen 12/24 Wörtern meines Originalseeds und habe danach eine neue 12/24 Wort Liste, die für sich alleine rein nichts mehr über meinen originalen Seed verrät. Sie ist nur auch wieder eine Liste mit allen Elementen aus der BIP-39-Liste, nur halt anders angeordnet.

Kennte Fortego diese neue Liste, müsste sie nicht mehr 2256 Möglichkeiten durchprobieren, sondern "nur" 1212, also 8'916'100'448'256 Möglichkeiten. Bei 24 Wörtern also 2424, 1.33 x 1033 Möglichkeiten. Aber eben, Fortego kennt meine 24 Wörter nicht.

Man hat also durch eine Ersatzliste nichts an der Anzahl der Möglichkeiten geändert.

Fortego kann mir also eine gemischte BIP-39 Liste anbieten, von der ich zwar nicht weiss, wie sie gemischt wurde, aber ich weiss, dass es dieselben Elemente der Ursprungsliste sind - könnte ich sogar kontrollieren. Da wie oben gezeigt, die Möglichkeiten immer noch wie im Original sind, kann Fortego, obwohl sie ja weiss, wie sie genau für mich gemixt hat, dennoch keinen Vorteil daraus ziehen, denn sie weiss und erfährt ja nie, was mein Originalseed war. Eine Brute-Force-Attacke wäre immer noch so schwierig wie auf meinen Originalseed.

Also, nachdem ich also bei Fortego meine Mapping-Tabelle erhalten habe, lässt mich Fortego noch kontrollieren.

Ich kann nun time suchen und sehe, dass es meinem Originalwort able entspricht. Das ist eine Prüfung, die ich zu meiner Sicherheit mache, nichts davon geht zu Fortego, denn ich muss jetzt ja nicht interagieren mit dem Service, ich schaue nur auf den Screen. Dies mache ich nun mit allen gemischten Seedworten und danach muss ich wieder meinen Originalseed gefunden haben.

Dafür habe ich nun einen Sicherheits-Code, den ich wieder liefern muss, um genau meine Mapping-Tabelle wiederherzustellen. Nun kann ich jede Aufzeichnung des Original-Seeds in die Tonne treten, nachdem ich bei Fortego mitgemacht habe. Wenn ich meinen Seed je benutzen möchte, kann ich Fortego befragen. Oder einfach wieder mein Signiergerät öffnen, denn an dem ist ja nichts verändert worden.

Allerdings scheint mir da ein Sicherheitsloch zu sein, denn ich interagiere ja mit einem Webservice beim Suchen der Worte meiner Liste. Vielleicht klicke ich sogar auf diese Zeile ... es wäre leicht mit Javascript, alle meine Aktionen zu verfolgen und daher meine Worte und sogar deren Reihenfolge abzufischen. Ditto dasselbe beim Verifizieren.

Fortego könnte also schon meinen Seed abfischen. Besser wäre ein Weg, bei dem man die Mixliste einfach ausdruckt oder direkt runterladen kann. Das Runterladen als reine ASCII-Liste oder als CSV ist aus meiner Sicht notwendig. Die Liste sollte ohne Umwege direkt auf meiner Platte landen, ohne Zwischenstopp in einer Umgebung wie einem Browser.

Dies werde von Fortego auch nachgereicht.

Bekommt allerdings ein Unberechtigter diese gemixte Liste in die Hand, scheint sie ihm ein Seed zu sein, ist es aber nicht. Er bräuchte noch die Herausgabe der Mapping-Funktion, die Fortego für genau mich erzeugt hat. Diese Information kapselt Fortego in einen Sicherheitscode. "Für mich" heisst, für eine Email-Adresse.

Da Fortego immer einen OneTime-Code an die Email schickt, muss ich nun sicherstellen, dass diese Email-Adresse immer geht. Sonst bin ich vom Service ausgeschlossen. Dann müsste ich Fortego auf dem Rechtsweg angehen.

Den Sicherheits muss ich nun schützen, auch wenn er alleine nichts. Auch nicht, wenn man auch gleich noch die Mixtabelle hat. Nur Fortego kann mit dem Schlüssel die für mich erstellte Mapping-Tabelle wiederherstellen. Ich hätte sie mir zwar ausdrucken können, aber dann läge sie ja bei mir rum .... und das würde die ganze Übung ad absurdum führen.

Nun die Sicht auf Fortego als Third Party Risk? Kann Fortego einen Rug Pull machen? Sie erzeugen meinen Sicherheitscode als Teil des Shamir's Secret Sharing. Nein, denn wie oben hergeleitet, sie könnte auch nur mit Brute Force arbeiten, und da wissen wir ja, damit ist nichts zu erreichen.

Was, wenn ich dement werde? Meine Registrationsemail vergessen oder verloren habe? Oder gebannt werde vom Email-Provider? Die Nachkommen bekommen dann meinen Sicherheitscode nicht mehr ... auch dann bleibt nur der Rechtsweg übrig.

Fortego ist eine GmbH nach dem Schweizer Recht. Das bringt vor allem Pflichten. Auch, dass sie einen Notarservice aufbauen müssen, der einen Teil des Schlüssels verwaltet. Denn es kann auch passieren, dass ich aus Fortegos Sicht ja der Betrüger bin.

Der Notarservice muss auch da sein für den Fall, dass Fortego oder ihre Betreiber von heut auf Morgen tot umfallen. Habe ich dann die Mapping-Funktion nicht dokumentiert, muss ich sie ja erfragen können. Dazu ist der Sicherheitscode ja da. Aber wenn ich niemanden mehr fragen kann? Dafür sei gesorgt, versicherte mir Fortego.

Mein Fazit ist also:

Fortego nimmt mir das Verwalten der Original-Seed-Darstellung ab - ob auf Papier, Metall oder was auch immer. Nicht mehr, aber auch nicht weniger. Was ich anstelle derer verwalten muss, ist die gemischte Wortliste und der Security-Code, keines der beiden nützt alleine irgendwas, nur zusammen.

Deshalb verwaltet Fortego diesen Security-Code bei sich. Das ist das Monetarisierungsmodell. Das Ausser-Haus-Halten des Schlüssels. Wer bezahlt, kann ihn jederzeit herunterladen. Und nach Gebrauch zum Beispiel grad wieder spurlos löschen.

Denn die Mapping-Funktion kann nur mit den 3 Teilen des Schlüssels restauriert werden. Doch auch die restaurierte Mapping-Funktion nicht hilft, meinen Seed zu erschleichen, denn weder mein Originalseed noch die gemischte Wortliste war ja nie aus meinen Händen.

Ist mein Registrationsemail-Account kompromittiert und der Sicherheitscode abgezogen, muss der Angreifer nur noch die gemischte Tabelle beschaffen und ist dann transferfähig. Das bedeutet, das ich dennoch ziemlich gut auf diese gemischte Tabelle aufpassen muss. Denn gehackte Email-Accounts sind nun nicht gerade selten.

Was Fortego bringt: Sie verschleiern meinen Seed. Ich kann die gemappte Liste beliebig viele Male kopieren und sichern. Fortego erfährt nie was von meinem Seed oder meiner gemischten Wortliste. Fortego hilft mir damit beim Externalisieren von Informationen, die man zum Signieren braucht.

Auf der anderen Seite: Mein Signiergerät ist ja nach wie vor unberührt geblieben. Ich kann den Seed noch mit einer Passphrase schützen. Davon weiss Fortego gar nichts. Ein Angreifer muss sich also nach wie vor gar nicht mit Wortlisten abgeben.

Gegen physische Angriffe schützt Fortego nicht, denn das Signiergerät wurde ja nicht verändert, gehärtet oder gesichert.

Interessant wäre natürlich, wenn Support für Services wie BitVault oder Fortego in die Hardware-Wallets dieser Welt als Option eingebaut würde. Denn solange ich ein Signiergerät mit einem Originalseed brauche, bleibt die Schwachstelle die Nutzung dieses Geräts.

Hätten BitBox & Co. direkten Support für solche Services, würde das die Selbstverwahrung massiv verbessern.

Ich persönlich erwarte, dass dies in den nächsten Monaten passiert. Denn nur damit wird die Selbstverwahrung sicherer vor Angreifern.

Verwandte Blog-Einträge

Kommentare (Kommentar-Moderation ist aktiv. Ihr Kommentar erscheint erst nach Prüfung.)
BlogCFC was created by Raymond Camden. This blog is running version 5.9.8.012. Contact Blog Owner