Wie lang kann eine Passphrase ("25. Wort") sein?

Meine Internetrecherche auf den Webseiten der Hersteller ergab:

MAXIMALE LÄNGE EINE PASSPHRASE:

  • Bitbox: 149 Zeichen
  • Ledger: 100 Zeichen
  • Coldcard: 100 Zeichen
  • Trezor: 50 Zeichen

Meine Fragen:

  1. Warum ist die mögliche Länge der Passphrase von Hersteller zu Hersteller unterschiedlich?

  2. Ist die Länge der Passphrase nicht ein (BIP-39)-Standard?

  3. Was ist, wenn man einer Wallet mit 70-Zeichen Passphrase, die man beispielsweise mit einer Bitbox erstellt hat, auf einem Trezor wiederherstellen will? (Nicht, dass ich das vorhätte. Ich weiß, die Bitbox ist besser als der Trezor, aber es geht darum, das Prinzip zu verstehen.)

Dank Euch im Voraus für Ihre Antworten!
Traffipax

1 „Gefällt mir“

Habe gerade zu wenig Zeit für die drei Fragen.

Aber generell würde eine Passphrase keinen großen Sinn machen, die „sicherer“ ist als die Seedphrase selbst.

Wenn du die Buchstaben, Zahlen und Sonderzeichen einer normalen Tastatur verwendest, hast du die 256 Bit schon bei einer Passphraselänge von ca. 40 Zeichen erreicht.

Eine längere Passphrase macht also überhaupt nur Sinn, wenn du absichtlich einen kleineren Zeichensatz verwendest (z.B. nur Buchstaben).

Irgendein Limit müssen sie setzen, da für die eingegebene Passphrase wahrscheinlich ein gewisser Speicherplatz vorgesehen ist. Nachdem die maximal sinnvolle Länge je nach verwendetem Zeichensatz meiner Meinung nach im Bereich 30…50 Zeichen liegt (siehe letzter Beitrag), legen sie ihr Maximum halt etwas drüber.

Das BIP39 macht hier keine Vorgabe:

To create a binary seed from the mnemonic, we use the PBKDF2 function with a mnemonic sentence (in UTF-8 NFKD) used as the password and the string „mnemonic“ + passphrase (again in UTF-8 NFKD) used as the salt. The iteration count is set to 2048 and HMAC-SHA512 is used as the pseudo-random function. The length of the derived key is 512 bits (= 64 bytes).

So wie ich die PBKDF2 Funktion verstehe, wird sowieso nur mit HMAC-SHA512 gehasht. Der Hash-Funktion ist es aber egal wie lange der Input ist. Der Output ist immer gleich lang.

Ich würde sagen: Pech gehabt!

Über 70 Zeichen würden nur Sinn machen, wenn man 256 Bit Entropie haben möchte und als Zeichen z.B. nur die Ziffern 0…9 verwendet. Also in meinen Augen gar nicht.

Übrigens zur sinnvollen Länge:

Für mich ist die Passphrase im Wesentlichen ein Diebstahlschutz, wenn man sie getrennt von der Seedphrase aufbewahrt.

Wenn jemand die Passphrase klaut, ist die Seedphrase sicher genug ggü. einer Brute Force Attacke. Wenn jemand die Seedphrase klaut, muss die Passphrase sicher genug sein, damit man ausreichend Zeit hat, um die Coins auf eine neue Wallet zu transferieren. Natürlich vorausgesetzt man merkt, dass jemand die Seedphrase kennt.

Für diesen Anwendungsfall reicht es, wenn die Passphrase wesentlich kürzer ist (z.B. im Bereich von 10 Zeichen). Selbst wenn man davon ausgeht, dass man es nicht merkt, wären 10…20 Zeichen schon sicher genug, damit niemand über Jahre mit Brute Force eine Chance hätte, bzw. sich die Mühe machen würde.

Und: Je länger die Passphrase, desto größer die Gefahr sie falsch einzugeben!

7 „Gefällt mir“

Lieben Dank für Deine aufschlussreichen Antworten!!!
Traffipax

Ich hole das Thema nochmal hoch… Ich bin echt hin und hergerissen wie lange die Passphrase sein soll. Ich hätte ein halbwegs leicht zu merkendes Passwort mit 12 Zahlen/Buchstaben, welches aus meiner Sicht eigentlich recht sicher sein sollte. Die Entropie liegt zwar „nur“ bei 41bit aber immerhin müsste man ja auch noch die 24 Wörter dazu kennen (und man muss wissen, dass überhaupt ne Passphrase genutzt wird).
Als Alternative hätte ich noch eine Passphrase mit 55 Zahlen/Buchstaben/Sonderzeichen mit einer Entropie von 282bit… Aber das einzugeben ist natürlich mehr als anstrengend.

Eine Passphrase zu nutzen, die Sonderzeichen sowie Groß- und Kleinbuchstaben enthält, ist nicht Nötig, da sich dadurch nur die Gefahr erhöht, dass du einen Fehler machst und den Zugriff verlierst. Für Passwörter usw okay… Aber als Passphrase würde ich das nicht benutzen.

Meine Methode ist folgende:

Mit einem Password Manager entweder 20, 24 oder 28 zufällige Zahlen, Großbuchstaben oder Kleinbuchstaben generieren.

Bei Buchstaben achte darauf, dass du keine großen i (I) oder kleine L (l) benutzt, da diese identisch aussehen. Ich würde auch von großen O und kleinen o abraten, da die ebenfalls wie eine Null (0) aussehen.

Diese zufällig generierten Zeichen einfach in mehrere Teile aufteilen,

z.B:
BPSV LYKU LKXL VTRX NNEP NYKB KSBD

Oder:
uoht psaf fvex fxjz glif kece pkoa

Oder:
8729 9187 0798 4482 5367 8601 6957

Dann hat man 5, 6 oder 7 „Wörter“ mit jeweils 4 zufällig generierten Buchstaben oder Zahlen. Diese haben eine starke Entropie von jeweils 85 bis 100 Bit, was als Passphrase ausreichend ist, da sie dir nur Zeit verschaffen soll, deine Coins in eine neue, sichere Wallet zu übertragen im Notfall (wenn dein Seed jemand anderes in die Hände bekommt oder sieht).

Diese speicherst du dann einfach im Password Manager oder druckst sie auf Papier aus und lagerst sie separat von deinem Seed (nicht daneben legen, sonst macht die Passphrase keinen Sinn; es reicht, wenn du sie irgendwo sicher versteckst). Ich würde empfehlen, mehrere Backups zu machen.

Wichtig: Jede andere Zahl oder jeder Klein-/Großbuchstabe leitet dich auf eine andere Wallet weiter. Auch Leerzeichen spielen eine Rolle. Du musst dir also überlegen, ob du die Passphrase mit Leerzeichen nutzt oder ohne. Viel schiefgehen kann da nicht, da du die Passphrase entweder mit oder ohne Leerzeichen eingeben musst. Ich nutze die Passphrase ohne und habe sie aber mit Leerzeichen ausgedruckt, mit einer Notiz, dass in der Passphrase keine Leerzeichen enthalten sind.

Es ist auch nicht schwer, sich solch eine Passphrase zu merken (als zusätzliches Backup und für eine schnellere Eingabe, damit man nicht immer die Zeichen vom Papier ablesen muss). Man kann einfach alle 2-3 Tage ein Wort mit 4 Buchstaben oder Zahlen im Gedächtnis an die anderen hinzufügen, z. B:

Tag 1:
BPSV

Tag 2:
BPSV LYKU

Tag 3:
BPSV LYKU LKXL

Usw…

Nach mehrmaligem Wiederholen im Gedächtnis hat man sie sich gemerkt. Das funktioniert auch mit dem Seed, zumindest bei mir (24 Wörter + Passphrase).

1 „Gefällt mir“

Und 41 Bit Entropie sind nicht sicher, besser zufällig generieren lassen.

Danke für das Feedback.
Die Theorie der Passphrase ist mir bekannt - die Frage bezieht sich einzig und allein darauf, wie „stark“ die Passphrase sein soll. Sie ist ohne den Seed nutzlos, genauso wie der Seed ohne Passphrase nutzlos ist. Ich sehe es aber nicht so wie du, dass die Passphrase mir lediglich „Zeit verschaffen soll“ wenn der Seed kompromittiert ist. Eine Brutforce Attacke bei bekanntem Seed sollte auch dann noch mMn nahezu aussichtslos sein - und das ist mit Sonderzeichen/Kleinbuchstaben/Großbuchstaben/Zahlen einfach eher gegeben - macht die Eingabe aber umständlicher.

80-90 Bit Entropie reichen schon aus. Brute Force macht sowieso keinen Sinn (wenn die Passphrase lang genug ist). Dann kommt eher eine Dictionary-Attacke in Frage, wird aber auch nicht klappen (wenn man zufällig generierte Zeichen nutzt, die in keiner Liste stehen).

Und eine passphrase mit Sonderzeichen wie z.B:
tB@3GkYBD&1_aVk6Ek_nBe%.uZMr

Macht die Eingabe umständlicher und erhöht das Risiko, dass du den Zugriff auf deine Coins verlierst, wegen 3 Bit zusätzlicher Entropie…

Ich habe mal gelesen, dass ein IT-Forensiker ein Passwort gecrackt hat, das 12 zufällige Zeichen (Sonderzeichen, Gross und klein + Zahlen) hatte, in nur 1 Woche… 75 Bit entropy) Wäre das Passwort länger gewesen (mit der gleichen Entropie), hätte das Brute Force nicht geklappt oder viel länger gedauert.

Außerdem kannst du einfach Leerzeichen in deiner Passphrase verwenden, dies erhöht die Entropie auch.

2 „Gefällt mir“