Analoge Verschlüsselung einer 24 Wörter SeedPhrase

Ich habe hier eine Idee umgesetzt und möchte diese hier vorstellen.
Jeder, wer dieser Idee folgt tut dies in Eigenverantwortung. Für mich selbst habe ich diese Idee schon umgesetzt und bin davon überzeugt, daß dieses Verfahren sicher ist. Bevor jemand für sich diese Idee Umsetzt, bitte ich zuerst genau zu verstehen wie diese Verschlüsselung funktioniert und erst einmal selbst, mit eigenen Beispielen zu Proben. So lange, bis es verstanden ist. Erst dann daran zu gehen und für sich diese Idee umsetzen.

Zum Probieren kannst du diese Seite Nutzen,

um dir Seeds zu generieren.

Ich weiss, einige sind dem gegenüber nicht wohl gesonnen. Hier gibt es aber eine Möglichkeit, selbst anzupassen, wie einfach alles sein soll um es sich zu merken und trotzdem sicher zu machen. Es liegt an jedem selbst.
Seine 24 Wörter aufzuschreiben und zu verstecken halte ich für fahrlässig. Einige Methoden wurden hier im Forum schon genannt, welche nicht schlecht sind, mir aber bei weitem nicht reichen, um analog ein Backup zu erstellen.

Konstruktive Kritik ist erwünscht. Bitte beachtet, dass ich mit diesem Post dazu beitragen möchte, dass es sicherer wird, für jeden. Danke.

[PDF Download hier] NEU
(Sync.com | Control Panel)

Vor so etwas kann man eigentlich nur warnen!
Die meisten Bitcoin gehen nicht verloren weil dem Eigentümer die Seed Phrase gestohlen wurde sondern weil er durch irgendwelche 9xklugen Tricks besonders sicher unterwegs sein wollte und am Ende seinen Seed aber nicht mehr zusammen bekommen hat.

Über eine ausreichend lange Passphrase mit Groß- und Kleinbuchstaben, Zahlen und Sonderzeichen ist jeder Seed gut genug geschützt.

Wem es nicht ausreicht, 3 Kopien des Seeds (ohne darauf notierter Passphrase) an sicheren Orten zu verstecken, der kann den Seed von mir aus auch in einem Bild verstecken und digital oder in der Cloud ablegen. http://www.openstego.com

Alles andere ist in meinen Augen Coinverlust mit Ansage.

6 „Gefällt mir“

Danke für deine Kritik. :+1:
Kannst du mir Beispiele nennen von den Jenigen, die durch ein solches oder ähnlichen Backup ihre Coins verloren haben? Und was genau du für gefährlich hälst, weil du „warnen“ tust? Hast du denn Verstanden wie es funktioniert?

Wie bereits gesagt bietet eine ausreichend lange Passphrase mit Groß- und Kleinbuchstaben, Zahlen und Sonderzeichen genug Sicherheit um den Seed an sich für jemand anderen wertlos zu machen.
Eine zusätzliche Verschlüsselung ist überhaupt nicht notwendig und man läuft damit nur Gefahr einen Fehler zu machen.

Du sprichst selber den Punkt der Nachlassregelung an.
Jemandem einen Seed zu hinterlassen mit dem Hinweis auf die an einem anderen Ort befindliche Passphrase wird für manchen Erben schon zur challenge werden.
Wenn dieser dann aber auch noch Deinen Schlüssel auflösen muss um überhaupt erst an den Seed zu kommen wird das zu dem Zeitpunkt möglicherweise zur unüberwindbaren Hürde.

Ein Seed Kärtchen kann man sichtgeschützt (hinten & vorne schwarz) einlaminieren und irgendwo verstecken, wo es niemand findet. Auch kein Einbrecher. Durch die Einlaminierung hat man die Sicherheit, dass niemand anderes die Wörter gelesen hat (schließlich hätte er dann die Laminierung aufschneiden müssen).
Die Gefahr des Diebstahls der Wörter besteht in meinen Augen überhaupt nicht.
Kein Einbrecher schraubt bei einem Einbruch einen Heizungskörper auseinander, entfernt die Fußleisten um unter dem Laminat zu suchen oder öffnet mit einem Schraubendreher das Gehäuse des Garagentoröffners, weil er darin Deinen Seed vermutet.

Einbrecher sind von Natur aus dumm wie Brot. Sie haben nur die Fertigkeit, schnell in Deine Wohnung zu kommen. So ein Einbruch ist in 5 Minuten durch und es werden Wertgegenstände wie Schmuck und Bargeld gesucht.
Du befasst Dich hier mit Problemen die in der Realität überhaupt nicht relevant sind.

2 „Gefällt mir“

Nachtrag: Coins gehen natürlich am häufigsten durch phishing verloren, weil der User seinen Seed aufgrund einer Email auf der vermeintlichen Webseite des Wallet Herstellers oder sonst wo eingegeben hat.

Vor dieser Dummheit schützt Deine Verschlüsselung der 24 Wörter auch nicht.

2 „Gefällt mir“

Danke für deine Sichtweise. Meine Fragen wurden aber nicht beantwortet. Auch wird außer Acht gelassen, was ich in dem PDF anspreche, dass es es nichts nutzt, etwas zu verstecken wenn man es bei einer möglichen Flucht nicht mit sich führt, weil es daheim versteckt ist oder umständlich immer mit sich zu tragen. Die Relevanz von einem solchen evtl. Problem kann sich unvorhersehbar ändern. Auch dies erwähnte ich mit anderen Worten im PDF.
Dein Nachtrag hat aber nichts mit dem von mir erstellten Beitrag zu tun, welcher davor schützt, dass niemand die Seedphrase aus dem erstellten Backup lesen kann.

  1. zu kompliziert —> Gefahr dass du / Erben das nicht mehr rekonstruieren können
  2. vermutlich zu geringe kryptographische Absicherung um es Public zu machen. Ein Kryptographie Experten Team könnte es evtl. rückwärts rechnen. Die Mühe wird sich vermutlich keiner bei einem einzelnen Code machen aber hohe Sicherheit geht anders.
2 „Gefällt mir“

So wie

2920315914

= das Wort Bitcoin?

Danke für deine Kritik, BTC_Quest :upside_down_face:
Bitte was genau ist kompliziert?
Es sind drei Sachen die man sich merken muss.

Vermutlich zu geringe kryptographische Absicherung um es Public zu machen.“ Was denn nun? Wenn du dieses System genauer betrachtest, wirst du keinen Ansatzpunkt finden, welcher sich rückwärts rechnen lässt, wenn doch, dann nenne ihn mir bitte, wenn du so etwas behauptest. Wenn du dir einen komprimiertes Backup ansiehst, wo/wie würdest du beginnen es zu entschlüsseln?

Die Mühe sich sein Backup sicher zu machen, können Menschen sein, die mehr abzusichern haben als nur Taschengeld im Portfolio.

„hohe Sicherheit geht anders.“ Wie?
Ich hätte gerne Beispiele für analoge Verschlüsselung die einfacher und sicherer sein soll.

@KrisenSicher Nein. Nicht wie das Wort Bitcoin.

Ich finde es wichtig, solche Sachen zu bereden, auch um ein Gefühl dafür zu bekommen, wie Menschen auf derartiges reagieren und sehen. Bitte versteht den Inhalt dieses Thema auch als Angebot, als eine Möglichkeit für jeden. Niemand muss. Darüber zu sprechen und seine Gedanken darüber hier zu teilen ist willkommen … ich danke jedem, der/die sich hier daran beteiligt :slightly_smiling_face:

Meinst du das ernst? Du glaubst eine sichere Chiffre entwickelt zu haben? Hast du irgendeine Vorstellung was für eine krasse mathematische Leistung und Anstrengung hinter so etwas steckt? :smiley:

Niemand in diesem Forum wäre ansatzweise dazu in der Lage sich in dieser Richtung etwas neues auszudenken! Dazu muss man komplett crazy sein (im positiven und mathematischen Sinne).

Ich schaue mir deine PDF später mal an und schreib was dazu. Wenn ich die Zeit finde schreib ich dir auch ein Python Skript was das Verfahren bricht, es sieht auf den ersten Blick nämlich mehr wie eine Codierung aus die Security through obscurity betreibt.

4 „Gefällt mir“

Du kannst ja Mal ein frisches Wallet erstellen und ein paar Sats daraufschicken. Dann den seed analog verschlüsseln und hier teilen. Wer es schafft deine Verschlüsselung zu knacken bekommt die Sats die auf der Wallet sind

7 „Gefällt mir“

Ich habe mir nichts neues erdacht, ich hatte eine Idee und vorhandenes genutzt.

Wenn es ein Angreifer tatsächlich schaffen sollte, alle lesbaren Blöcke zu finden, unter denen sich mind. auch ein fake Block befindet welcher 4 falsche Wörter der BIP39 enthält, hat jener Angreifer 7 Blöcke vor sich mit jeweils 4 Wörtern.

Wie soll der Angreifer herausfinden, welche Blöcke gültig sind, bzw welcher Block ungültig?
Denn das muss dieser.Davon abgesehen, in welcher Reihenfolge werden diese richtig gestellt, um den Seed korrekt abzubilden?
Das Problem von mind. einem ungültigen Block (man kann bis zu 3 ungültige Blöcke generieren, welche Wörter der BIP39 enthalten), wecher erst indentifiziert werden muss. Und wie sollte das gehen, wenn zusätzlich auch noch 2 Wörter aus der Seedphrase gültiger Blocke falsch sind? Deren Wörter unbekannt sind und auch deren Positionen in den gültigen Blöcken und in der Reihenfolge im Seed! Lasse es bitte in deinen Gedanken durchspielen. Ich sehe hier keinen Ansatzpunkt.

Aber ich gehe auf den Vorschlag von @Kilian ein und werde ein Wallet mit sats füllen. Es werden 500 Euro bis dato entsprechen, wo ich den Transfer tätige. Ich werde diesbezüglich hier Screenshots als Beweis liefern

1 „Gefällt mir“

Du hast dir ja wirklich viel Mühe gemacht, dir so etwas zu überlegen und aufzuschreiben.

Gerne, dafür würde ich den Spieß aber gerne mal umdrehen.

Wie von @Achim schon erwähnt gibt es einige bewährte, bis dato sichere Verfahren, mit denen man Gefahren einer einfachen Sicherung der 24 Wörter ausschließen kann:

  • Passphrase
  • Mnemonic Split
  • Multi Sig
  • Shamir’s Secret Sharing

Mit Problemen bzw. Gefahren meine ich beispielsweise solche Dinge:

  • Zu kompliziert für Vererbung (Komplexität des Verfahrens)
  • Verwendung nicht-bewährter kryptographischer Verfahren
  • Vertrauen ggü. einzelnen Parteien notwendig (andere Haushalte, Hersteller, Bank etc.)
  • Komplettverlust bei Diebstahl, Verlieren oder Vergessen einer einzelnen Sicherung
  • Komplettverlust wegen Einzelfehler bei der Sicherung (z.B. Codierung ohne Fehlerkorrektur)
  • Verlust durch Zerstörung, äußere Einflüsse, Alterung
  • Vergessen eines Schlüssel, Passworts
  • Beschreibung des Verfahrens nicht mehr verfügbar
  • Keine integrierte Plausible Deniability
  • etc.

Es gibt für mich nun zwei Möglichkeiten:

  1. Dein Verfahren löst auch nicht mehr Probleme als die schon existierenden Verfahren.
  2. Dein Verfahren löst mehr Probleme als die schon existierenden Verfahren.

Fall 1)
In diesem Fall sind wir uns sicher einig, dass es schlauer ist auf bewährte Verfahren zu setzen. Diese sind hundertfach beschrieben, erklärt und beispielhaft demonstriert worden. Es gibt also keinen Grund ein neues Verfahren einzusetzen.

Fall 2)
In diesem Fall wäre es wert, dein Verfahren näher zu beleuchten und weiter zu vergleichen. Probleme wären dann mehr als bisher gelöst, aber evtl. bringt dein Verfahren weniger Features mit.
Es kann auch sein, dass du mehr Probleme löst, aber auf eine wesentlich komplexere und fehleranfälligere Art.
Oder dass einfach andere Probleme gelöst werden; man müsste also entscheiden welche Probleme wichtiger sind.

Könntest du uns also vielleicht zuerst mal zusammenfassen, welche Probleme von deinem Verfahren, aber nicht von etablierten Verfahren gelöst werden?

An sich eine schöne Idee. Vor allem für den, der die 500 € erbeutet.

Aber mal angenommen, niemand kommt an das Geld. Glaubst du wirklich das ersetzt die Jahrzehnte lange Bewährung der wissenschaftlich begründeten und erforschten Verfahren?

3 „Gefällt mir“

Ich schon.

@bit01 Dein Verfahren ist extrem unsicher. Warum?

Weil ich es gerade mit Python gebrochen habe. Alles was ich dafür brauche ist der verschlüsselte Block. Die Permutation innerhalb der Blöcke, die Information welche Blöcke die richtigen sind oder die absichtlich falschen Wörter die versteckt sind bieten keine Sicherheit.

Mir hat diese „Kryptanalyse Lite“ gerade sehr viel Spaß gemacht und hoffe dass man hier was mitnehmen kann. :smiley:

Für alle interessierten die damit rumspielen wollen (und meinen Anfängercode verfeinern möchten), hier könnt ihr das Jupyter Notebook dazu runterladen: https://sutterseba.s-ul.eu/oG2DsjhD

Als Beispiel habe ich einfach das aus dem PDF genommen, unsere Ausgangslage ist also:

Was wir kennen:

  • Das Verfahren

    Das ist auch üblich so, ansonsten wäre das ein Verstoß gegen das Kerckhoffs’sche Prinzip. Die Sicherheit einer Chiffre darf auf keinen Fall auf ihrer Geheimhaltung beruhen. Du meintest aber dass das Verfahren trotzdem noch sicher ist, sonst hättest du es ja auch nicht veröffentlicht.

Was wir nicht kennen:

  • Den Schlüssel, also
    • Die gültigen Blöcke
    • Die richtige Reihenfolge der Blöcke
    • Absichtlich versteckte Wörter die falsch sind
    • Welche Blöcke permutiert wurden und in welche „Richtung“

Los geht’s.

Wir schreiben uns erstmal diesen Zahlensalat in einen halbwegs sinnvollen Datentyp. (Ja, ich weiß, hier hätte ich eigentlich Numpy nutzen sollen…)

Wir sehen hier eine Liste in der jeweils die Blöcke (auch Listen) mit ihren Viererpärchen an Zahlen stehen. Diese Zahlen übersetzen wir jetzt erstmal ins Alphabet:

Einige Wörter machen jetzt bereits Sinn, andere nicht.

Jetzt permutieren wir alle Wörter die noch keinen Sinn ergeben in alle Richtungen (also von Rechts nach Links, von Oben nach Unten, und so weiter…). Sobald ein Wort einen Sinn ergibt, merken wir es uns, falls alle Richtungen keinen Sinn ergeben, landet das Wort nicht auf der Merkliste. → Brute Force.

Wir bekommen 6 Blöcke mit BIP39 Wörtern, und drei leere Blöcke. Genau was wir haben wollten:

Screenshot 2022-05-25 at 12.48.00

Jetzt schmeißen wir die leeren Blöcke raus und erweitern die Wörter (mit Hilfe der Wordlist) auf ihre eigentliche Länge.

Wir haben jetzt 6 Blöcke die wir nur noch unterschiedlich Permutieren müssen, also in alle möglichen Anordnungen schieben, bis die daraus resultierende Mnemonic gültig ist. Der Suchraum ist hier jediglich 6! = 720, was ein Kinderspiel ist.

Darauf habe ich @bit01 auch schon hingewiesen:

Wir laufen jetzt mit Hilfe von itertools über alle möglichen Anordnungen und überprüfen in jedem Schritt ob die Checksumme und damit die Mnemonic gültig ist. Das hast du, @bit01, wahrscheinlich nicht bedacht.

Und heraus bekommen wir eine wunderschöne Mnemonic:

Geld wäre an dieser Stelle (also nach wenigen Mikrosekunden) weg:

\text{q.e.d.}

13 „Gefällt mir“

Und das, bevor die 500 € drauf waren. Ehrenmann! :grin:

P.S.:

@bit01, damit wäre dein Verfahren an diesem Punkt gescheitert:

Man sollte nicht den Aufwand, die mathematisch saubere Basis und die jahrelange Bewährung der etablierten Verfahren unterschätzen.

2 „Gefällt mir“

Wie jetzt, die bekomme ich nicht? :see_no_evil:

1 „Gefällt mir“

Ich hätte @sutterseba die 500 Öcken gegönnt :stuck_out_tongue_winking_eye:
Ich hätte die Zeit und den Nerv nicht, da etliche Stunden zu investieren, um das Konzept überhaupt durchzulesen und dann zu coden…


Deshalb heißt es doch immer: Don't run your own crypto

2 „Gefällt mir“

Danke für das Testen! :slight_smile:
Respekt. Allerdings musst du eingestehen, dass du nicht den richtigen Seed gefunden hast und somit das Experiment gescheitet ist. In dem gefundenen Seed sind nicht die echten fehlenden Wörter „cool“, sondern die falschen, quasi die letzte Hürde als Schutz. Wenn du dir nun vorstellst, dass du in dem von mir erdachten Verfahren auch 3 ungültige Blöcke mit BIP39 Wörter nutzen kannst, nicht nur einen Block wie in dem PDF beschrieben, sieht die Sache noch schwieriger aus. Ich meine, man sollte 3 Blöcke verwenden.
Ich werde mein Angebot, einen verschlüsselten komprimierten Seedphrase „Master“ Block hier zum Entschlüsseln anbieten. Die Wallet ist erstellt und der Seed wird verschlüsselt.

Du willst es nicht verstehen.

Zwei der Wörter auszutauschen und nach dem „richtigen“ Wort zu suchen rettet hier überhaupt nichts mehr! Die Checksumme macht dir hier jedes mal einen Strich durch die Rechnung. Vor allem weil es zunächst schwierig ist diesen Austausch überhaupt durchzuführen und zwei gültige Phrasen zu finden.

Ich möchte nämlich darauf hinweisen dass deine Beispielmnemonic, also das „richtige Ergebnis“, nicht mal existiert weil die Checksumme ungültig ist:

Auch wenn man „meine“ Mnemonic nimmt und ski, echo austauscht:

Nein, das machst du bitte nicht.

Solltest du hier wirklich eine „verschlüsselte“ Mnemonic teilen die mit 500€ scharf ist, dann entfernen wir das. Solche Spielchen kann man mit echten Verfahren machen, aber nicht mit einem Verfahren zu dem bereits ein Skript vorgefertigt zum Download bereit steht.

Du würdest deine 500€ einfach nur in den Sand setzen, sofern derjenige nicht ein Auge zudrückt und das Geld zurück gibt.