Da ich gestern aber ohnehin nochmal einen Test gemacht habe, packe ich es mal beides zusammen, dann wird das detaillierter und damit hoffentlich auch verständlicher.
Ok, also was habe ich gemacht?
Vorbereitung:
- TailsOS image ziehen, hash validieren und mit balenaEtcher einen nigelnagelneuen Tails USB Stick aufsetzen
- Rechner neu starten, TailsOS starten mit Administratorkennwort ohne persistenten Speicher, mit LAN-Kabel, damit kein WLAN code eingegeben (=gespeichert) werden muss
- Mnemonic Code Converter von Github laden, Hash überprüfen
- BitBoxApp herunterladen, Hash überprüfen und installieren
- BIP39 Wörterliste fürs würfeln öffnen
- LAN-Kabel entfernen / Internet trennen
Frage: Sind Hash und PGP-Signatur redundant, also reicht das Prüfen des Hashes aus? Falls nein, wie Prüft man die Signatur unter Tails (hab das mit Kleopatra irgendwie nicht hinbekommen, kennt ihr ein gutes Tutorial?)?
Würfeln:
- Ich habe mit 5 Alltags-Würfeln (Nicht-Casino-Standard) solange gewürfelt bis ich 180 Zahlen 1..4 hatte, 5+6 wurden ignoriert
- Wollte man das Verfahren verbessern könnte man jeweils 30 Zahlen, 1-4 / 2-5 / 3-6 / 4-1 / 5-2 / 6-3, ermitteln und das umrechnen oder einfach mehr würfel nehmen, ich hab es für den Versuch einfach gehalten
- jeweils 6 Würfelwerte wurden zusammengefasst, sodass man mittels der Wörterliste 30 Wörter bestimmen könnte
Aufteilung der 24 Wörter:
- dabei muss darauf geachtet werden, dass bei den 3 Teilen das jeweils 12. Wort nicht auf die selbe Stelle fällt (z.B. 2x 16. der 24 Wörter)
Wörter | | | 1. | 2. | 3. | 4. | 5. | 6. | 7. | 8. | 9. | 10. | 11. | 12. | 13. | 14. | 15. | 16. | 17. | 18. | 19. | 20. | 21. | 22. | 23. | 24. |
________ | | | ___ | ___ | ___ | ___ | ___ | ___ | ___ | ___ | ___ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ |
T1 | | | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 |
T2 | | | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 |
T3 | | | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
Ermitteln der Wörter:
- 4 Wörter (hier 12. + 16. + 20. + 24.) enthalten Bits vom SHA256-Hash und werden somit nicht rein zufällig erzeugt
- alle anderen Wörter können aus der Wörterliste entnommen werden
- das 12. Wort wird über T1 ermittelt, die ersten 11 Wörter werden in den Mnemonic Code Converter eingegeben, die ersten 4 Würfelwerte des 12. Wortes bestimmen den Startpunkt in der Wörterliste, die Wörter werden solange einzeln durchgegangen (max. 16 Wörter) bis ein valider Mnemonic gefunden wurde
- die Wörter 16. und 20. werden analog aus den Teilen T2 und T3 bestimmt
- für das 24. Wort werden die ersten 3 Würfelwerte in Binär umgewandelt und ergeben zusammen einen Wert 1-8 (bzw. 0-7), mithilfe der BitBox02 und der ersten 23. Wörter kann dementsprechend das 24. Wort ausgewählt werden
- die Wörter 25-30 werden durch Leerzeichen getrennt zusammengefasst und ergeben das 25. Wort
- Mittels BIP85 und Index wird ein Unterkonto abgeleitet (=Handywallet mit noch kleineren Beträgen als auf der Mutterwallet mit 24 Wörtern ohne Pw)
- Von diesem Konto werden dann mittels BIP39 weitere Unterkonten erstellt (die BIP39 Passwörter könnten ja z.B. einfach den ursprünglichen BIP85 Indexnummern 1-500 entsprechen)
Idee:
- Im Falle eines Raubes hat man eine Handywallet (deren Seed man nicht kennt / nicht gesichert hat) und einer Decoy-Wallet mit 24. Wörtern auf einer Metallplatte und der dazugehörigen Hardwarewallet in einer Kiste bei sich im Schrank liegen -> wirkt unprofessionell und plausibel
- Außerhalb der Sichtweite des Räubers hat man aber noch 3 Notfallverstecke mit den Teilen T1 - T3 und Datensilos D1 - D3 analog der Dokumentenmappe eines Notfallrucksackes, im versteckten Teil der Datensilos befindet sich auch ein Backup des 25. Wortes
- Das Passwort zu den Datensilos lässt sich aus den versetzt gelagerten Teilen ableiten, T1 und Datensilo D1 lagern zusammen, aus T1 lässt sich das Passwort für D2 und D3 ableiten, mit 2/3 Verstecken lassen sich die 24 Wörter + das 25. Wort rekonstruieren, selbst wenn ein Datenträger beschädigt ist (vorausgesetzt man kennt die Anleitung)
- von der Handywallet lassen sich mittels Indizes bzw. BIP39 Passwörtern (können komplexer=sicherer sein, müssen aber nicht) alle notwendigen Unterkonten ableiten und mittels BIP39-fähiger Hardwarewallet zusammen verwalten (nur ein Seed)
- hier können auch die Master-Passwörter für den täglichen Bedarf abgeleitet werden, welche als Backup aber auch bereits im "übergeordneten" Datensilo D1 - D3 gespeichert sein können
-> ansonsten dürften BIP85 Index oder BIP39 Passwort ja ähnliche Funktionen erfüllen
Wer deine BIP 85 Elternwallet findet, findet mit minimaler Rechenleistung alle Kinderwallets.
Wer deine 24 BIP39 Seed Wörter findet, aber deine BIP39 Passphrase mit hoher Entropie nicht kennt, hat keine Chance deine Wallets zu finden.
Hmm... Wenn es für BIP85 Indizes insgesamt 2^32 Möglichkeiten gibt muss man seine Indizes ja nicht auf die Plätze 1-500 legen... Wenn ich die selben Indizes (z.B. 1-500) als Passwörter für BIP39 nehme dürfte der Schutz da auch nicht wesentlich höher sein, oder?
Mehr Sicherheit erhalte ich ja nur wenn die BIP39 Passwörter mehr Entropie bekommen was den Prozess insgesamt verkompliziert?!
Was ich meinte ist, dass man bei BIP85 einen schönen einfach zu handhabenden Mnemonic bekommt mit dem man ein Konto wieder herstellen kann. Das mittels kryptischen private Key zu machen dürfte nicht mehr standard sein (weil fehleranfälliger) und ich selbst wüsste auf Anhieb auch gar nicht wie ich das machen müsste.