Seedphrase - Passphrase (25. Wort)

Hallo zusammen,

nachdem ich einige Lektüre zur Passphrase gelesen habe, möchte ich kurz mein jetziges Verständnis hier zusammenfassend darstellen und euch um kurzes Feedback bitten.

  1. Die Passphrase hat bietet mehr Sicherheit im Falle des „Diebstahls“ der Seed-Phrase und sollte getrennt von dieser aufbewahrt werden.

  2. M.E. reicht eine 10-stellige Passphrase (Mix Groß-Kleinbuchstabe, Ziffern, Sonderzeichen) hier aus.

  3. M.E. kann ich diese mit meinem „Brain-Wallet“ sichern.

  4. Einen deutlichen Vorteil sehe ich zurzeit, den ich bisher noch nirgends gelesen habe:
    Mit einer Seedphrase alleine besteht ein sehr unwahrscheinliches Risiko, dass diese von verschiedenen Personen aufgrund der eingeschränkten „bip39 word list“ mehrfach entstehen kann. Mit der Passphrase kann ich dieses Risiko nochmals reduzieren, nahezu gegen 0 reduzieren, da in Kombination mit meiner „kryptischen Passphrase“ „eigene“ Keys erzeugt werden. Richtig?

Vielen Dank schon mal an alle die antworten!
Heiko

Ist alles richtig. Trotzdem wird für Anfänger davon abgeraten. Mir hat folgender Thread zu Deiner Frage geholfen:

Edit: Auf die Brain-Wallet würde ich mich nicht verlassen. Jedes Stück Papier (zu Hause, besser noch eine Steel Wallet) ist beständiger als das Brain bei einem Schlaganfall oder anderem Unglück.

2 „Gefällt mir“

Zu 1. Mehr Sicherheit ist relativ, du könntest auch deine Seed-Phrase splitten.

Zu 3. Du solltest auch an deine Erben denken.

Zu 4. Mit 24 Wörtern ist die Chance so gering, dass ich da keine Bedenken hätte

In der Theorie ist das korrekt, allerdings unerheblich.

Die Anzahl der Atome im Universum wird auf etwa 10^85 geschätzt.
Die Anzahl der möglichen Seeds ist 2^256 ~ 10^78. Das ist unwesentlich weniger.

Ich kann sehr gut verstehen, dass die Größe dieser Zahlen nicht besonders intuitiv zu erfassen ist. Schließlich sind sie sehr einfach zu notieren. Eine Zahl mit 100 Stellen ist schnell hingekritzelt. Da ist man verleitet zu denken, ein Computer könne alle diese Zahlen mal eben überprüfen. Das ist aber (zum Glück) ein Trugschluss.

Zu 3.: Imho ein großes NEIN!

(Gründe wurden in diesem Forum schon mehrfach diskutiert.)

Nein… nichtmal in der Theorie ist das korrekt, da es ohnehin „viel wahrscheinlicher“ ist, dass 2 Leute die gleichen Privatekeys bekommen (da „nur“ 2^160 Möglichkeiten).

Deswegen bringt eine Passphrase hierfür keine zusätzliche Sicherheit und das Risiko dass 2 Leute ich keys teilen wird NICHT gegen 0 reduziert.

Edit: Hatte nen Denkfehler. Es gibt 2^160 ADRESSEN, nicht PKeys. ABER! An meiner Aussage ändert das nichts, da es egal ob mit oder ohne passphrase nur 2^256 Pkeys gibt und man dadurch nciht mehr Sicherheit erzeugt.

Du KANNST, es ist aber eine sehr dumme Idee ^^

3 „Gefällt mir“

Es hat einen Grund warum du diesen Vorteil nirgends liest: Es ist kein wirklicher Vorteil einer Passphrase.

Aus zwei Gründen:

  1. Die Wahrscheinlichkeit eine Mnemonic mit 24 Wörtern zu erraten und auf einer benutzten Wallet zu landen ist unfassbar niedrig. Sie ist so niedrig, dass du sie komplett ignorieren kannst.

    Bitte schau dir dieses Video dazu an, es ist essentiell das richtig verstanden zu haben:

    2^{256} sieht übrigens so aus, du kannst ja mal versuchen das in Worten auszudrücken :smiley:

    115792089237316195423570985008687907853269984665640564039457584007913129639936
    
  2. Wenn ich mit roher Gewalt nach Bitcoin suchen möchte, dann suche ich direkt nach einem privaten Schlüssel (256 bit), auf dessen Adresse was drauf liegt, anstatt den Umweg über die Mnemonic zu gehen. Alleine die Mnemonic zum Seed abzuleiten ist deutlich teurer, als direkt von einem Private Key die Adresse auszurechnen (was man über die Mnemonic ja sowieso machen müsste).

    Macht einfach keinen Sinn den ganzen „Baum“ abzuleiten wenn man direkt an der Wurzel ansetzen kann, verstehst du?

    Und dein Private Key hat leider auch mit Passphrase „nur“ 256 bit.

    @skyrmion zeigt das hier ausführlich:

    Das steht übrigens auch im verlinkten Passphrase-Beitrag nochmal.

3 „Gefällt mir“

Download (8)

Wie oft man dieses Argument hört. Es ist wahrscheinlicher, dass du random auf deine Tastatur hämmerst und damit einen Algorithmus zur Entschlüsselung von SHA-256 programmierst.

3 „Gefällt mir“

Und in der harten Bitcoin-Realität ist es sogar noch schlimmer. :slight_smile:

Wie @renna geschrieben hat gibt zwar ca. 2^{256} Private Keys, aber durch den RIPEMD160 Hash nur 2^{160} Adressen. D.h. für jede Bitcoin Adresse gibt es im Mittel ca. 2^{96} gleichwertige Private Keys, mit denen man das Guthaben transferieren kann.

Im Endeffekt hat man bei Bitcoin also sogar nur eine Anzahl von ca. 2^{160} effektiv unterschiedlichen Schlüsseln. Trotz 512 Bit Seed, 256 Bit Private Key und optionaler Passphrase.

Ich denke nicht, dass das ein Denkfehler ist. Vielleicht habe ich aber auch einen Denkfehler. :grin:

3 „Gefällt mir“

Also ist es über 70.000.000.000.000.000.000.000.000.000 mal einfacher als gedacht! :grin:

2 „Gefällt mir“

Ist eigentlich ein Seed, der aus den 24. Wörtern plus Passphrase abgeleitet wird auch ein Seed, der aus anderen 24 Wörtern direkt abgeleitet werden kann?

Meine Überlegung dazu: die Möglixhkeiten aller Kombinationen der 24 Wörter bilden den Pool der Seeds. Also muss doch auch die Ergänzung mit einer Passphrase Teil desselben Pools sein.
Oder habe ich da einen Denkfehler? Hatte angenommen, dass die Passphrase die Sicherheit nur insofern verbessert, dass ein Bekanntwerden der 24 Wörter kein direktes Problem mehr ist. Technisch ist aber keine kryptographische Verbesserung dadurch erreicht.
Ist das richtig?

1 „Gefällt mir“

Der Seed hat 512 Bit, d.h. so einfach kann man das nicht sagen.

Aber wenn du dir einen resultierenden Private Key mit seinen 256 Bit ansiehst, dann kannst du diesen sowohl mit 24 Wörtern + Passphrase, oder alternativ mit anderen 24 Wörtern erreichen.

Dein Gedankengang ist also nicht falsch. Er entspricht dem Schubfach-Prinzip (engl. Pigeonhole-Principle). Wenn du beliebig viel Entropie erzeugst (24 Wörter + Passphrase), aber nur 2^{256} Schubfächer hast (Private Keys), dann muss es zu Kollisionen kommen.

Angenommen die Kombination an verwendeten Hash-Funktionen vom Mnemonic zum Private Key wäre zumindest für „kleine“ Zahlen injektiv, d.h. sie würde von 2^{256} unterschiedlichen Eingangswerten niemals zwei auf den gleichen Ausgangswert abbilden. Dann gäbe es pro Ableitungspfad zu jedem Private Key genau eine Kombination von 24 Wörtern.

Die SHA Hashfunktionen sind zwar nicht injektiv, aber sie sind in der Praxis ausreichend kollisionsfrei, so dass das für unsere Überlegungen hier eine gute Annahme ist.

2 „Gefällt mir“

Als Einstieg in das Thema Hashfunktionen

3 „Gefällt mir“

Vielen Dank. Folglich ist also die kryptographische Sicherheit durch die Passphrase tatsächlich nicht erhöht und lediglich der Verlust (das Bekanntwerden) der 24 Wörter abgemildert.

2 „Gefällt mir“

Unter der Annahme dass der SHA-512 second-pre-image resistant ist, tatsächlich nein! :grin:

Natürlich trifft man eine solche Annahme immer unter der Formulierung praktisch unmöglich. Aber wenn wir den Realismus mal beiseite schieben und uns auf alle Annahmen verlassen:

Die Erfolgsrate einen Seed der mit einer Passphrase m enstanden ist mit einer anderen Passphrase m' zu erhalten liegt bei 2^{-512} → Ist also theoretisch möglich (Wie gesagt: Realitätsferner geht es nicht).

Du fragst jetzt aber danach diesen Seed mit Passphrase ausschließlich durch die Mnemonic nochmal zu erhalten, also ohne Passphrase. Bei einem einfachen Black-Box Angriff müsstest du im schlimmsten Fall 2^{512} mal ausprobieren, hast aber nur 2^{256} Möglichkeiten durch die begrenzte Wordlist. Die Wahrscheinlichkeit dass du so einen Seed findest liegt also bei 50% natürlich nicht 50%, unter der Annahme dass alle Hashwerte gleichverteilt sind (und unter der Annahme dass du Gott bist).

Ich wünsche viel Erfolg bei der Kollisionsforschung! :see_no_evil:


(Trifft natürlich jetzt nur auf den Seed zu)

2 „Gefällt mir“

Die Wahrscheinlichkeit wäre 2^{256} / 2^{512} = 2^{-256}, also wesentlich geringer als 50 %. Da müsstest du noch mehr Gott sein, als vorher schon.

In der Praxis ist die Anzahl an möglichen Seeds aber nicht wirklich relevant, wenn die Private Keys auf 256 Bit beschränkt sind. Und bei Private Keys wäre die Wahrscheinlichkeit relativ groß, passende 24 Wörter zu einem zufällig gewählten Private Key zu finden, der aus 24 Wörtern + Passphrase entstanden ist.

Natürlich nur wenn man viel Zeit hat, oder schon wieder Gott ist. :slight_smile:

2 „Gefällt mir“

Dank euch. Ich finde diese Anwendung der Wahrscheinlichkeitsrechnung sehr interessant, da sie dem intuitiven Verständnis oft widerspricht. Bin leider nicht so in den Algorithmen der Hash Funktionen drin. Da ich aber Mathe studiert habe, helfen mir gerade die Bezüge hinsichtlich Injektivität und Surjektivität sehr weiter.
Wenn ich mal viel Zeit habe schreibe ich ein Buch mit dem Titel: „Verblüffende Mathematik am Beispiel der Kryptographie“ :smiley:

1 „Gefällt mir“

Um darauf zu kommen müsste man nur noch mit Exponenten umgehen können… Schande über mein Haupt :sweat_smile:

Nach meinem Kenntnisstand wird das 25. Wort immer(?) als derivation path verwendet. Ich lasse mich gerne nochmal korrigieren @renna.

Ne steht doch oben… Die passphrase/das 25. wort ändert den seed weil der eingabewert beim hashing verändert wird

Abgeleitet wird meines wissens nach erst danach

1 „Gefällt mir“