Apia: Private Keys und Passwörter sicher aufbewahren

Vorstellung

Hallo Forum,
ich möchte Euch von meinem kleinen Projekt berichten, mit dem Private Keys sowie beliebige Passwörter sicher aufbewahrt werden können.

Die Idee dabei ist, dass das Geheimnis in zwei Schlüssel aufgeteilt wird, welche örtlich getrennt aufbewahrt werden. Dies verhindert, dass ein Angreifer durch Diebstahl eines der beiden Schlüssel Zugriff auf das Geheimnis erhält.

Mit einem zweite Schlüsselpaar wird sichergestellt, dass auch nach dem Verlust eines Schlüssels das Geheimnis wieder hergestellt werden kann. Also gibt es insgesamt vier örtlich getrennte Schlüssel.

Beispiel:

Ich verschlüssele ein Geheimnis. Dabei werden zwei Schlüssel erzeugt

echo "Hund" | apia encode MeinLiebslingstier
1;1;MeinLiebslingstier;q3THT1E=;49407;7393d;9f3d3
1;2;MeinLiebslingstier;4wGpK1s=;7393d;49407;9f3d3

Bedeutung:
Protokollversion;Schlüssel-Teil;Beschreibung des Geheimnis;verschlüsselter Teil Base64 encoded;sha256-Teil des aktuellen Schlüssels;sha256-Teil des anderen Schlüssels;sha256-Teil beider Schlüsselteile = Schlüsselpaar-ID

Zum Entschlüsseln benötige ich beide Schlüssel:

(echo "1;1;MeinLiebslingstier;q3THT1E=;49407;7393d;9f3d3"; echo "1;2;MeinLiebslingstier;4wGpK1s=;7393d;49407;9f3d3") | apia decode
Hund

Damit die Schlüssel nicht kompliziert per Tastatur eingegeben werden müssen, generiert apia pdf-Dateien mit QR-Codes:

echo "Hund" | apia encode MeinLiebslingstier | apia create_pdf_priv
Creating pdf... MeinLiebslingstier_9f3d3_KEY1.pdf
Creating pdf... MeinLiebslingstier_9f3d3_KEY2.pdf


Zum Scannen mit einer Webcam werden dann die zwei Schlüssel in beliebiger Reihenfolge eingelesen:

zbarcam --raw | apia decode
Hund

Eigenschaften:

  • Es wird eine hohe Sicherheit dadurch erzielt, dass ein belieber Schlüssel sowohl zerstört als auch kompromittiert werden kann, ohne dass das eigentliche Geheimnis gestohlen wird oder verloren geht.
  • Andererseits ist das Projekt nicht so gut für häufige Transaktionen geeignet, da ja bei jeder Transaktion zwei getrennt gelagerte Papiere zusammengeführt werden müssen - Sicherheit vs Bequemlichkeit.
  • Das Problem der Vererbung kann dadurch gelöst werden, dass der Erbe im Todesfall seinen 2. Teil des Schlüssels durch eine dritte vertrauenswürdige Person (z.B. Notar) erhält.
  • Sicherheit und Bequemlichkeit kann nach eigenem Ermessen variieren. Zum Beispiel:
    • Sehr unsicher, aber bequem: Alle vier A4-Zettel liegen auf dem Küchentisch (dann braucht es auch keine Verschlüsselung…)
    • Ziemlich sicher: Zettel verteilt 1. im Aktenordner „Wichtige Dokumente“, 2. im Passwortmanager im Internet, 3. in einem Ordner „Wichtige Dokumente“ des Erben und 4. in einem Ordner „Wichtige Dokumente“ eines Bekannten.
    • Sehr sicher: Zettel verteilt 1. in Tresor1, 2. in Tresor2 an anderem Ort, 3. in Tresor des Erben und 4. bei einem Notar
  • Das Geheimnis ist getrennt von der Hardware. Hier liegt ein Vorteil gegenüber Hardware-Wallets, denn apia läuft auf beliebiger Hardware, die ggf. sogar vernichtet werden kann, wohingegen bei Hardware-Wallets auf die Hardware vertraut werden muss.
  • Da sowohl das Erstellen als auch das Entschlüsseln ein sensibler Punkt ist, befindet sich die Software auf einem Live-System ohne Internetzugang.
  • Für die Verschlüsselung wird One Time Pad benutzt, ein beweisbar sicheres Verfahren: https://de.wikipedia.org/wiki/One-Time-Pad

Ausprobieren

Wer dieses Projekt in seiner Beta-Version ausprobieren möchte, findet hier eine bootbare ISO-Datei. Herunterladen unter https://www.mungomat.de/apia, Benutzer apia, Passwort: 5k8MwaeabNqkLFs. Dort befindet sich auch eine README-Datei mit mehr Beispielen.

Ich freue mich auf Fragen und Anmerkungen :blush:

2 Like

Hm, für sehr, sehr, sehr, sehr selten benötigte Schlüssel/Passworte klingt das Konzept ja ganz gut, aber für den täglichen oder wöchentlichen Gebrauch ist es wohl leider nichts.

Und wie muss ich mir das Dekodieren genau vorstellen?

Wenn ich ein Passwort brauche, muss ich den Rechner herunterfahren, die Boot-CD starten, die PDFs scannen, das entschlüsselte Passwort händisch notieren, den Rechner wieder herunterfahren, Windows starten und das Passwort eingeben.Richtig?
Man benötigt ja zwingend das Tool und das befindet sich nur auf der Boot-CD.

Oder habe ich etwas missverstanden?

Grüße,

GermanCryptoGuy

Da es stark in eine ähnliche Richtung geht, hier mal ein anderes Konzept zum splitten von Seeds:

Hallo @GermanCryptoGuy,

richtig, es geht um sehr selten benoetigte Passwoerter, also fuer Cold Wallets mit gespeichertem Vermoegen oder MasterPasswoerter eines Keyrings - das Theme des Vererbens kommt ja auch eher selten vor.

Zum Dekodieren:
Ich empfehle einen extra Rechner, Laptop, Tablet etc. Aber es geht natuerlich auch mit dem Online-PC.

Ja, zum Veraeussern seines Vermoegens oder um an das Erbe zu kommen muss tatsaechlich ein Rechner neu gestartet werden. Hier wurde sogar noch die Entfernung der beiden Teilschluessel vergessen - es koennte ja sein, dass die Papiere weit voneinander weg sind.

Im Falle von Bitcoin braucht der Private Key aber den Rechner nicht zu verlassen, denn es reicht mit Hilfe der vorinstallierten Cold-Wallet Electrum eine Transaktion zu signieren. Dieses geht so:

  1. In der Online-Welt mit Electrum eine unsignierte Transaktion mit QR-Code erstellen.
  2. QR-Code der unsignierten Transaktion per Webcam offline einscannen.
  3. Transaktion mit Electrum signieren
  4. Signierte Transaktion in QR-Code umwandeln und z.B. per Handy einscannen
  5. Per Handy die signierte Transaktion ins BTC-Netz schicken

Genau, dieses Tool kann in Kopie auf CD, USB-Stick, Flash-Karte, Festplatte,… liegen. Selbst ohne das Tool lassen sich die Passwoerter entschluesseln, denn das Protokoll habe ich ja hier veroeffentlicht.

Die Vorteile liegen halt in der hohen Sicherheit:
Es bietet Schutz vor einem Desaster eines beliebigen der vier Schluesselteile - sei es Zerstoerung oder Missbrauch. Zudem wird das Problem des Vererbens geloest.

1 Like

@bCyberBasti
Stimmt, das ist ein sehr gutes System - und viele der Top BTC-Adressen benutzen es wohl auch.

Ist es hiermit denn auch moeglich, beliebige Passwoerter zu verschluesseln?

Wie genau meinst du das? Das ist nicht mit den normalen Multi-Sig Wallets zu verwechseln :wink: Mit diesem verfahren kannst du (auch) ganz normale Seeds in mehrere Aufteilen. Das ist dann trotzdem „nur“ ein ganz normales Wallet

Mit dem zugrunde liegendem Verfahren Ja. Siehe z.B. diese Implementierung
https://pypi.org/project/shamir/

Guten Morgen,

natürlich ist diese Vorgehensweise sehr sicher. Nur befürchte ich, dass meine Erben damit hoffnungslos überfordert sind und nur dafür sorgt, dass niemand jemals wieder an meine Kryptos kommt.
Ich habe einen 2. Ledger mit meinem Seed erstellt und mit einem PIN gesichert. Diesen Ledger hat nun die Person ( ist von mir eingewiesen worden) der ich absolut vertraue und der Ledger nun in dessen Schließfach liegt.
Den PIN habe ich in meinem Testament mit entsprechenden Informationen hinterlegt.
Diese Sicherheit ist für mich ausreichend.

1 Like

Hallo @Traveltown,

sicherlich muss jeder fuer sich selbst wissen, wie sicher er es haben will. Und wie immer gilt auch: Sicherheit vs. Bequemlichkeit.

Eine Einweisung braucht es wohl in beiden Faellen. Ich weise darauf hin, dass die URL der Software mit Anleitung in den generierten PDFs mit angegeben ist - im schlimmsten Falle koennte man also einen „Softwareexperten“ um Hilfe fragen. Die Software selber kann ja auch bei den Papieren mit dabei liegen.

@bCyberBasti,

dann waere es wohl sinnvoll, die Multi-Seeds mit in das Projekt aufzunehmen. Immerhin besteht es ja nicht nur aus der eigentlichen Verschluesselung, sondern auch aus dem Konzept, dass jeder beliege Rechner/Laptop/Tablet zu einer lauffaehigen Cold-Wallet gemacht werden kann - ohne irgendwelche Installationen.

Hallo @apia,

nur frage ich mich, was bei meiner Variante unsicher sein soll. Weder mit dem PIN ( den man ja auch noch stückeln könnte), noch mit dem Leger kann man etwas anfangen. Wenn ich Millionen darauf hätte, würde ich mir vielleicht andere Gedanken machen. So ist es für mich absolut ausreichend.

@anon95444098

zwei Dinge fallen mir da ein:

  1. Es muss der Hardware und deren Hersteller vertraut werden. Es koennte also der Hersteller eine Hintertuer eingebaut haben. Bei preparierten Ledgern aus EBay-Kaeufen ist dies auch schon passiert.
  2. Der Seed selber ist nicht vor einem Desaster geschuetzt - naemlich dem Missbrauch. Er liegt vielleicht in einem Safe - dann gilt das selbe aber fuer den Safe-Schluessel (wenn der am selben Ort ist).

Glaube mir, den Ledger habe ich nicht bei eBay gekauft :joy:
Ehrlich gesagt, ist mir das alles etwas zu paranoid. Ist nicht böse gemeint.
Es muss jeder selber für sich entscheiden. Ich kann mit meiner Lösung gut schlafen und darauf kommt es an.