Passphrase benutzen oder lieber nicht?

Hallo Leute,

ich stelle mir grad die folgende Frage:

Ist es wahrscheinlicher, dass jemand meine Passphrase errät, als dass jemand die 24 Wörter meiner Seed-Phrase errät?

Denn ich dachte mir, dass wenn ich ne Passphrase mit bspw. 30 völlig random Zeichen, Buchstaben (klein, groß) und Sonderzeichen benutze, dass es dann so wahrscheinlich zu 99,999999…% unmöglich ist, dass jemand meine Passphrase errät.

Nun weiß ich ja aber u.a. dank des Forums, dass die Anzahl der 24-Wort-Seeds der Anzahl der Atome im Universum entspricht (wobei ich es mir eigentlich kaum vorstellen kann, dass 24 random Wörter aus einer Liste von etwas über 2000 Wörtern eine so unfassbar große Anzahl an Kombinationsmöglichkeiten hervorbringt, aber dafür ist wahrscheinlich einfach nur mein 2. Wahl-Gehirn zu klein :grin:)

Demzufolge ist es ja dann wohl viel wahrscheinlicher, dass jemand meine 30 Zeichen Passphrase errät (obwohl meinem Gehirn das schon mehr oder weniger unmöglich erscheint), als dass jemand meine 24 Wörter errät?

Das Problem ist, dass wir (Menschen) schlecht darin sind, Zufall zu produzieren. Wenn du dir eine Passphrase ausdenkst, dann ist die nicht zufällig, sondern irgendwie so geartet, dass du sie dir merken kannst und sie für dich zufällig erscheint. Das ist ein großer Unterschied.

Unter der Annahme oben: Ja.

Im einzelnen hängt das natürlich von der Länge und Zufälligkeit des Passworts ab. Theoretisch könntest du ja auch einen 24 Wort Seed als Passphrase verwenden, oder auch 48 Wörter. Die wären dann natürlich schwerer zu erraten.

Ach ja, jetzt wo Du’s sagst :see_no_evil:

Es geht mir halt um die alte, schon 1000 mal durchgekaute Frage, ob man seiner Seed-Phrase noch mehr randomness durch eine Passphrase hinzufügen sollte oder ob es sich nicht lohnt dieses zusätzliche Tippfehler-Risiko einzugehen, weil der 24-Wort-Seed alleine schon im Prinzip unerratbar ist.

(wobei Letzteres irgendwie nur schwer in meinen Schädel reingeht, aber wenn dem wirklich so ist mit „Anzahl der Atome im Universum“, dann ist es ja wirklich unerratbar. Ich würde es schon für im Prinzip unmöglich erachten zweimal das selbe Sandkorn an einem Strand, ach was rede ich, in einer Sandkiste zu picken und das ist ja nur ein Bruch-Bruch-Bruch-Superbruchteil von „Atome im Universum“)

Am wichtigsten ist, dass niemand an deinen Seed kommt. Betrachte die Passphrase als Bonus und nicht als Ersatz.

Die Wahrscheinlichkeit, dass jemand, der deinen Seed gestohlen hat und Werte von der Wallet abgezogen hat, noch nach sämtlichen Passphrase Wallets sucht, ist eher gering.

Du musst auch bedenken, dass dich eine Passphrase nicht gegen das Risiko des zufälligen Erratens sichert.

Natürlich tut sie das, wenn jemand deine Wörter errät. Aber eben nicht, wenn jemand Wörter generiert, die auf deine Wallet in der Kombination Seed+Passphrase kommt. Bitcoin hat „nur“ 256 bit. Die Passphrase kann also die maximale Anzahl an Zeichen haben und doch gibt es die Möglichkeit, dass jemand random mit neuen Wörtern auf deine Wallet kommt.

Die Passphrase schützt nur, wenn du deinen Seed verlierst. Und das sollte nicht passieren.

Hab ich das jetzt richtig verstanden, dass es ein und die selbe wallet gibt, die sowohl mit einem „Set A von 24 Wörtern“ + Passphrase, als auch mit einem „Set B von 24 Wörtern“ ohne Passphrase generiert wird? (ich hoffe das war jetzt verständlich was ich meine)

Einfach weil es mit den 24 Wörtern so nahezu unendlich viele Möglichkeiten gibt, dass selbst eine random Passphrase damit „abgedeckt“ ist?

Der erste Teil Stimmt. Der zweite so fast.

Das „Problem“ sind die 256 bit.

Erstellst du ein Passwort für einen Login, steigt die Sicherheit mit Länge des Passworts.

Bitcoin hat aber immer eine feste Passwortlänge, die Länge des Schlüssels.

Du könntest eine Wallet mit einem einzigen Wort der 2048 Wortliste erstellen. Die Schlüssel wären 256 bit stark.

Du könntest 1000 Wörter der Liste verwenden, doch die Sicherheit wäre immer noch bei 256 bit.

Der 256 bit Schlüssel ändert sich nur, wenn du die Berechnungsgrundlage ändert. Aber länger wird er nie. Die Menge an 256 bit Schlüsseln ist in der Theorie endlich. Daher könnte jemand „einfach“ alle Seeds durchsuchen. Praktisch ist das (noch) unmöglich.

Vieles wurde schon gesagt.
Dass jemand Deine 24 Wörter errät ist extrem extrem extrem extrem unwahrscheinlich, aber prinzipiell ist es trotzdem möglich, dass eine andere Wallet den gleichen Seed erstellt.

Die Passphrase kann man mit einer brute force Attacke versuchen zu „erraten“.
Bei 30 Zeichen (klein / groß / Sonderzeichen) ist das allerdings wieder unmöglich, weil die Rechenzeit dafür einfach zu lang ist. Bei 6 Zeichen ist es in vertretbarem Zeitrahmen machbar.

Wenn Du jeglichen, auch noch so unwahrscheinlichen Zufall ausschließen willst, dann musst Du auf MultiSig wechseln. Bei MultiSig ist ein Script hinterlegt, dass z.B. mindestens 2 Private Keys die Transaktion signieren müssen. Da kann man dann nicht mehr zufällig drauf kommen. Ausgeschlossen.

Du brauchst nicht unbedingt 2 oder 3 Hardware Wallets um eine MultiSig Wallet anzulegen.
Du könntest auch mit einer einzigen BitBox02 arbeiten und Dir 3 verschiedene Passphrases überlegen.
Das brauchen dann auch keine ewig langen Passphrases zu sein. 6 Zeichen reichen und die letzte Stelle nummerierst Du von 1-3 durch.
Kann man auch per brute force nicht knacken weil keiner weiß wie die MultiSig Wallet konstruiert ist.

Einziger Nachteil: Du musst, wenn Du coins versenden willst, die BitBox02 dann immer nochmal vom Rechner entfernen, wieder neu anmelden und dabei eine andere Passphrase eingeben um mit 2 Schlüsseln signieren zu können.

Mit Sparrow funktioniert das einwandfrei: Anleitung von ShiftCrypto

1 „Gefällt mir“

Man kann sagen:
Es ist nicht schwieriger 24 Wörter + Passphrase zu erraten als nur 24 Wörter zu erraten.
Denn man würde sowieso nicht die 24 Wörter erraten, sondern direkt die Bitcoinadresse da die 24 Wörter theoretisch 256bit Möglichkeiten haben, eine Bitcoinadresse aber nur 160bit.
Also mehr als 160bit geht nicht.

Die Passphrase ist nur dazu da, sicherheit zu bieten in dem Fall wo jemand die 24 Wörter bereits kennt.
Sowas hier:

ne Passphrase mit bspw. 30 völlig random Zeichen

Macht daher eher keinen sinn. Weil die Zufälligkeit hast du bereits in den 24 Wörtern.
30 random zeichen kann man sich nicht merken. Also muss man sie aufschreiben.
Schreibt man sie zusammen mit den 24 Wörtern auf, dann weiss ein Angreifer genau dann die Passphrase wenn er auch die 24 Wörter weiss. Schreibt man es separat auf, dann kann man auch einfach den Seed splitten. (OK 12 Wörter erraten die noch fehlen, = 128bit wäre theoretisch etwas einfacher als eine Passphrase mit 160 bit zu erraten, aber praktisch unmöglich.).

Ich würde eine Passphrase benutzen, einfach weil ich den Seed im klartext aufbewahre.
Aber die Passphrase sollte eher nicht zufällig sein, sondern da steht im Vordergrund dass man sie selber nicht vergisst. Und da ist selbst sowas wie „ich bin vorname nachname!!!“ besser als nix. Denn derjenige der den Seed entdeckt ist ja nicht unbedingt ein experte und es geht hier nur darum die zeit zu verlängern die man hat um die Bitcoin auf einen neuen Seed zu bewegen. Und es geht darum sie auf gar keinen fall zu vergessen. Daher darf die nichts zufälliges enthalten finde ich.

1 „Gefällt mir“

Erstmal danke für eure Antworten, die ich mir jetzt noch ein paar Mal durchlesen werden, um dann hoffentlich alles zu raffen :grin:

Aber zusammengefasst könnte man also Folgendes sagen:

Wenn ich verhindern will, dass jemand meinen private key errät/zufällig auswählt, dann würde es nichts bringen 24 Wörter + Passphrase zu wählen, da es andere 24 Wörter ohne Passphrase gibt die ebenfalls genau für meinen seed+Passphrase generierten privatekey „codieren“. Richtig? D.h. jemand müsste nicht meinen original 24 Wörter-Seed + Passphrase erraten, sondern „nur“ einen anderen 24 Wort-Seed ohne Passphrase, der auch passt.

Ich bin also durch eine Passphrase nicht komplett raus aus der 24 Wörter-„Gefahrenzone“, sondern noch komplett drin, nur dass halt andere 24 Wörter als die meines Original-Seeds erraten/zufällig ausgewählt werden müssen.

Lange Rede kurz: Um mich vorm Erraten zu schützen bringt mir die Passphrase gar nichts, da nach wie vor „nur“ 24 Wörter und nicht 24 Wörter + Passphrase erraten werden müssen?

Ja, so müsste das sein.
Oh einen Grund gäbe es noch für eine passphrase, und der wäre dass die 24 wörter vielleicht ja doch nicht 256bit möglichkeiten haben, oder garnicht zufällig sjnd weil der zufallsgenerator der hw wallet das aus versehen oder mit absicht so macht.
Dann fügt man mit der passphrase noch etwas hinzu.

@RenHoek

Du musst dir wegen der Sicherheit (aufgrund v. Erratbarkeit) deines Seed Phrases keine Sorgen machen – ob mit Passphrase oder ohne.

Die Passphrase hat einen anderen Zweck. Es geht dabei nicht darum, mehr Entropie (Unvorhersagbarkeit) in den Seed zu bekommen. Der Seed ist schon zufällig und wird durch die Passphrase auch nicht länger.

Eine Passphrase kann sinnvoll sein, wenn man unter einem Seed mehrere Konten halten will um seinen Bestand zu verschleiern. Das ist meiner Meinung nach der einzige sinnvolle Anwendungsfall.

Ja, ne. Denn wenn es zwar eine unvorstellbar große, aber dennoch begrenzte Anzahl an privaten Schlüsseln gibt und diese ausnahmslos mit den 24 Wörtern „erreicht“ werden können, dann dürften durch die Passphrase ja keine weiteren keys dazukommen.

Ja, dafür wird’s wohl gedacht sein oder halt um seine 24 Wörter für eine begrenzte Zeit zu schützen, wenn sie durch Einbruch entwendet worden sind.

Das ist korrekt, aber wenn das bedeutet, dass das Passwort lediglich im Kopf existiert, würde ich davon abraten – halte es also nicht für einen sinnvollen Anwendungsfall.

Nee, nee, wenn dann die 24 Wörter in Kopie an zwei verschiedenen Orten lagern (falls ein Set gestohlen wird) und die Passphrase an einem dritten und vierten Ort lagern + im Kopf.

1 „Gefällt mir“

Ja das mein ich ja. mein „ja so ist das“ bezog sich auf deinen vorherigen beitrag.

Ja, ich wollte Dein „Ja, so MÜSSTE das sein“ nur nochmal argumentativ bestätigen, weil „müsste“ ja nicht so 100 %ig sicher ist.

Wobei ich nochmal so drüber nachgedacht habe und irgendwie wieder am Zweifeln bin. Denn wenn durch die 24 Wörter bspw. 100 mögliche Adressen generiert werden könnten (ja, tatsächlich sind es nahezu unendlich viele mehr), dann müssten doch z.B. nur durch das Hinzufügen einer „1“ als Passphrase die Anzahl der möglichen Adressen auf 200 steigen. Es sei denn die Anzahl der Adressen ist tatsächlich auf die 24 Wort-Adressen beschränkt, aber das weiß ich eben nicht.

Wobei GBC ja sagte:

Und eine Begrenzung der Schlüssellänge müsste ja eigentlich auch eine Begrenzung der Schlüsselanzahl bedeuten, da man mit Längenbegrenzung ja irgendwann alle möglichen Zeichenkombinationen „aufgebraucht“ hat. Aber sind da die Passphrase-Zeichen inkludiert oder nicht? :face_with_spiral_eyes:

Das ist kein Problem.

Worauf Du hinaus möchtest sind Kollisionen. Und ja, in der Theorie sind diese möglich, aber eben verdammt unwahrscheinlich. Stichwort: Pigeonhole Principle.

Angenommen, Du hast n Eingaben und m Schlüssel. Unter der Voraussetzung, dass n > m ist, dann muss es mehrere Eingaben geben, die zu dem selben Schlüssel führen. Bei der SHA256 Funktion ist das natürlich genau so. Sie hat eine output size von 256 bits. Natürlich gibt es aber theoretisch und praktisch viel mehr Inputs. Zum Beispiel durch optionale Passphrasen. Dennoch bleibt die output size gleich. Du gewinnst also auf mathematischer Ebene nicht wirklich eine größere Sicherheit.

Das ist es, was @Makowski hiermit meinte:

1 „Gefällt mir“

D.h. dass es in SELTENEN Fällen vorkommen kann, dass ein „24 Wort-Seed“ zu einer „24 Wort-Seed + Passphrase“-Adresse führt? Oder führt letztlich zu JEDEM „24 Wort-Seed + Passphrase“ irgend ein 24-Wort-Seed?

Selten ist hier einfach ein sehr irreführendes Wort. Praktisch vernachlässigbar trifft es besser. Es ist aktuell keine Kollision bekannt, auch wenn theoretisch möglich.

Stell Dir 10 Kästen und 10 Tauben. In jede Kiste passt eine Taube. Bei 11 Tauben müssen in einer Kiste 2 Tauben sitzen. Eine Kollision.

Die Anzahl der Kästen gibt der SHA-256 Algorithmus vor. Durch optionale Passphrasen kann ich theoretisch zieeeeeemlich viele Wallets erstellen. Aber eben maximal den Zielraum von 256 bits, also 2^256 Kästen. Im Prinzip kann ich aber in der Theorie mehr als 2^256 Tauben züchten, womit zwangsläufig mehrere Tauben zu ein und derselben Kiste fliegen.

Ich würde gerne eine übersetzte Antwort auf Deine Frage auf stackoverflow zitieren:

Die übliche Antwort lautet: Wie groß ist die Wahrscheinlichkeit, dass ein Asteroid in der nächsten Sekunde auf der Erde einschlägt, die Zivilisation, wie wir sie kennen, auslöscht und ein paar Milliarden Menschen tötet? Man kann argumentieren, dass jedes unglückliche Ereignis mit einer geringeren Wahrscheinlichkeit eigentlich nicht sehr wichtig ist.

Wenn wir eine „perfekte“ Hash-Funktion mit der Ausgangsgröße n haben und p Nachrichten zu hashen haben (die Länge der einzelnen Nachrichten spielt keine Rolle), dann beträgt die Kollisionswahrscheinlichkeit etwa p2/2n+1 (dies ist ein Näherungswert, der für „kleine“ p gültig ist, d. h. wesentlich kleiner als 2n/2). Bei SHA-256 (n=256) und einer Milliarde Nachrichten (p=109) beträgt die Wahrscheinlichkeit zum Beispiel etwa 4,3*10-60.

Ein massenmordendes Weltraumgestein kommt im Durchschnitt etwa alle 30 Millionen Jahre vor. Daraus ergibt sich eine Wahrscheinlichkeit von etwa 10-15, dass ein solches Ereignis in der nächsten Sekunde auftritt. Das ist um 45 Größenordnungen wahrscheinlicher als die SHA-256-Kollision. Kurz gesagt, wenn Sie SHA-256-Kollisionen beängstigend finden, haben Sie die falschen Prioritäten.

In einer Sicherheitssituation, in der ein Angreifer die zu hashenden Nachrichten auswählen kann, kann der Angreifer wesentlich mehr als eine Milliarde Nachrichten verwenden; Sie werden jedoch feststellen, dass die Erfolgswahrscheinlichkeit des Angreifers immer noch verschwindend gering sein wird. Genau darum geht es bei der Verwendung einer Hash-Funktion mit einer 256-Bit-Ausgabe: Damit kann das Kollisionsrisiko vernachlässigt werden.

Natürlich setzt das alles voraus, dass SHA-256 eine „perfekte“ Hash-Funktion ist, was noch lange nicht bewiesen ist. Dennoch scheint SHA-256 recht robust zu sein.

Lange Rede, kurzer Sinn.
Mache Dir lieber Gedanken/Sorgen darüber, dass in der nächsten Sekunde ein Asteroid die Menschheit auslöscht, als über eine Kollision des SHA-256 Algorithmus. :slight_smile:

1 „Gefällt mir“