Shamir Secret Sharing: den Unseal-Key auf drei Personen verteilen
Einen einzigen Master-Key hütet kein Mensch verlässlich. Wie Shamirs Verfahren von 1979 ein Geheimnis so auf mehrere Personen aufteilt, dass zwei von drei genügen, keine einzelne aber etwas preisgibt - und warum das mehr als ein esoterischer Krypto-Trick ist.
Inhalt dieses Beitrags
- Problem
- Kurze Antwort
- Tiefgang
- Die Mathematik
- Parameterwahl
- Verwahrung in der Praxis
- Key Ceremony
- Referenz-Implementationen
- Abgelehnte Alternativen und Mythen
- Was Sie jetzt tun sollten
- Wie Dernium hier hilft
- Offene Punkte
- Häufige Fragen
- Wie viele Shares brauche ich, und wie viele darf ich verlieren?
- Ist Shamir auch gegen Quantencomputer sicher?
- Kann ich die Shares einfach auf einen USB-Stick im Tresor legen?
- Was passiert, wenn eine Share beschädigt oder manipuliert ist?
- Ersetzt Shamir einen Passwort-Manager oder ein HSM?
Problem
Irgendwo muss der oberste Schlüssel einer produktiven Infrastruktur verwahrt sein: das Unseal-Geheimnis eines KMS (Key Management System, ein Dienst zur Verwaltung kryptografischer Schlüssel), der Root-Key einer PKI (Public Key Infrastructure, die Verwaltung digitaler Zertifikate), der Wiederherstellungs-Schlüssel für LUKS-verschlüsselte Server (Linux Unified Key Setup, die übliche Festplattenverschlüsselung unter Linux). Die naive Antwort ist "in einem Tresor, ein Mensch hat ihn". Das hat zwei Schwächen:
- Single Point of Failure (einzelne Stelle, deren Ausfall das Ganze lahmlegt). Wenn die eine Person den Schlüssel verliert oder aus einem beliebigen Grund unerreichbar wird (Unfall, Urlaub, Krankheit, ...), kann die Infrastruktur bei einem unerwarteten Ausfall lahmgelegt werden.
- Single Point of Compromise (einzelne Stelle, deren Übernahme alles preisgibt). Wer Zugang zu der einen Person bekommt, durch Zwang, Bestechung, Sozial-Engineering, etc. hat theoretisch ebenso Zugang zum Schlüssel.
Mehrere Kopien desselben Schlüssels an verschiedene Personen zu verteilen, löst das Verlust-Problem, verschärft aber das Kompromittierungs-Problem: jede Kopie ist der gesamte Schlüssel.
Für wen ist das? Für alle, die einen besonders wichtigen Schlüssel sicher verwahren müssen.
Kurze Antwort
Shamir Secret Sharing (ein Verfahren zum Aufteilen eines Geheimnisses, Adi Shamir, 1979) zerlegt ein Geheimnis so, dass man mehrere Teile braucht, um es wiederherzustellen - und einzelne Teile nichts verraten. Im Kern:
- Das Geheimnis wird in N Teile (Shares, also Teilstücke) zerlegt.
- Jede Teilmenge von K Shares genügt, um das Geheimnis zu rekonstruieren.
- Jede Teilmenge von K-1 oder weniger Shares gibt informationstheoretisch nichts über das Geheimnis preis (also nicht nur "schwer zu knacken", sondern beweisbar nichts).
- Typische Wahl bei einem produktiven Unseal (das Entsperren eines verschlüsselten Dienstes): K=2, N=3 - drei getrennt verwahrte Shares, zwei Personen genügen, der Verlust einer Share ist verkraftbar, eine einzelne kompromittierte Share ist nutzlos.
Tiefgang
Die Mathematik
Shamir nutzt die Eigenschaft, dass ein Polynom vom Grad K-1 durch genau K Punkte eindeutig bestimmt ist. Die Konstruktion:
- Das Geheimnis S ist eine Zahl in einem großen endlichen Körper (z.B. GF(p) mit einer 256-Bit-Primzahl p).
- Man wählt ein zufälliges Polynom f(x) vom Grad K-1 über diesem Körper, mit f(0) = S. Die anderen Koeffizienten a_1, ..., a_(K-1) sind gleichverteilt zufällig.
- Die N Shares sind Paare (x_i, f(x_i)) für i = 1, ..., N, mit x_i ungleich 0 und paarweise verschieden.
Mit K Paaren kann man per Lagrange-Interpolation (ein Verfahren, das aus gegebenen Punkten das passende Polynom rekonstruiert) das Polynom rekonstruieren und f(0) = S ablesen. Mit weniger als K Paaren gilt: zu jedem Kandidaten-Wert S' existiert ein Polynom f'(x) vom Grad K-1, das durch die vorhandenen Punkte geht und f'(0) = S' erfüllt. Das heißt: die bekannte Teilmenge legt den Geheimniswert nicht fest, alle möglichen Geheimnisse sind mit den gegebenen Shares kompatibel.
Das ist der entscheidende Punkt. Shamir ist nicht nur "wahrscheinlich sicher mit guten Wahrscheinlichkeiten", sondern beweisbar sicher: ein Angreifer mit beliebiger Rechenkapazität, inklusive Quantencomputer, bekommt aus K-1 Shares keine Information über das eigentlich Geheimnis.
Parameterwahl
K=2, N=3 (Standard): Ein einzelner Verwahrer kann im Ernstfall nicht alleine entscheiden; zwei beliebige genügen; eine verlorene Share ist verkraftbar. Operational der Sweet Spot für die meisten produktiven Setups.
K=3, N=5: Härter. Drei Personen müssen zusammenkommen; bis zu zwei Verluste tolerierbar. Für Fälle, in denen die Hürde "zwei" zu niedrig empfunden wird (Bestechung zweier Personen ist machbar, dreier schon deutlich schwerer).
K=4, N=7: Für sehr hochsensible Setups mit verteilter Organisation. Produktiv ein Mehraufwand, weil vier Menschen gleichzeitig verfügbar sein müssen.
K=N (z.B. 3 von 3): Maximal-Sicherheit gegen Kompromittierung, aber kein Verlust-Puffer. Eine verlorene Share und das Geheimnis ist endgültig weg: nicht praktikabel.
Verwahrung in der Praxis
Ein Share ist ein Byte-String (typisch 32 Byte bei 256-Bit-Geheimnissen). Die Verwahrung:
- Ausdruck auf Papier, jedes Share in einen versiegelten Umschlag.
- Unterschiedliche Aufbewahrungsorte: verschiedene Tresore, verschiedene Gebäude, verschiedene Städte.
- Unterschiedliche Verwahrer: keine zwei Shares beim selben Menschen, keine zwei Shares im selben Stockwerk.
- Protokollierter Bezug: wer holt wann welche Share aus welchem Tresor, dokumentiert mit zweiter Unterschrift.
- Regelmäßige Probeabläufe: mindestens einmal jährlich den Rekonstruktions-Pfad tatsächlich durchspielen, um zu sehen, ob die Shares noch lesbar sind und die Werkzeuge funktionieren.
Die Shares sollten nicht digital verwahrt werden, wenn es sich irgendwie vermeiden lässt. Ein USB-Stick im Tresor ist die Abkürzung zum versehentlich kopierten Share. Papier ist unbequem und genau deshalb sicher: es lässt sich nicht unbemerkt duplizieren.
Key Ceremony
Die Erzeugung der Shares wird oft "Key Ceremony" genannt (ein formalisierter Ablauf zur Schlüsselerzeugung unter Zeugen). Der Ablauf ist formalisiert:
- Mehrere Personen gleichzeitig im Raum, keine Einzelperson mit Alleinzugriff.
- Erzeugung auf einem Offline-Rechner, idealerweise von einem Live-Image bootend (Tails oder ein dediziertes Live-Medium).
- Shares werden einzeln auf Papier gebracht und direkt den jeweiligen Verwahrern übergeben; keine Share bleibt (auch nur mal "kurz") auf dem Schreibtisch liegen.
- Der Erzeugungs-Rechner wird anschließend mit Speicher-Löschen oder Festplatten-Vernichtung aus dem Verkehr gezogen.
- Ein Protokoll dokumentiert den Vorgang, mindestens zwei Unterschriften.
Referenz-Implementationen
- HashiCorp Vault (ein verbreiteter Secrets-Manager) nutzt Shamir standardmäßig für den Unseal-Key; die Parameter sind konfigurierbar, Default K=3, N=5.
- SSSS (Shamir's Secret Sharing Scheme, Unix-Tool): klein, auditierbar, ideal für einmalige Zwecke.
- Keybase KBFS und einige Krypto-Wallets für Nutzerschlüsselverwaltung.
Einige Ökosysteme haben zusätzlich SLIP-39 etabliert: eine standardisierte Kodierung von Shamir-Shares in Wortlisten (ähnlich BIP-39 Mnemonic, den bekannten Wiederherstellungs-Wortlisten von Krypto-Wallets). Das erleichtert das fehlerresistente Abschreiben und Vorlesen.
Abgelehnte Alternativen und Mythen
"Wir geben allen den kompletten Key, ist doch sicherer." Nein. Jede Person mit vollem Key ist eigenständiger Kompromittierungs-Vektor. Shamir reduziert das.
"Wir schreiben den Key in eine Safe-Deposit-Box bei der Bank." Single Point of Failure: Bank-Zugriff, Bank-Insolvenz, regulatorischer Zugriff auf Bank-Unterlagen. Shamir mit Shares bei verschiedenen Institutionen umgeht das.
"Passwort-Manager-Vault mit Team-Sharing." Praktisch, aber die gesamte Geheimhaltung hängt am Passwort-Manager selbst. Eine Kompromittierung dieser Software kompromittiert alle geteilten Geheimnisse gleichzeitig. Shamir ist orthogonal und ergänzend.
"Einfach HSM, da kommt sowieso niemand dran." HSMs (Hardware Security Modules, gehärtete Spezialgeräte für Schlüssel) haben eigene Unseal-Keys. Genau diese Unseal-Keys sind typische Shamir-Kandidaten.
Was Sie jetzt tun sollten
- Listen Sie Ihre "obersten" Geheimnisse auf - Unseal-Keys, Root-Keys, LUKS-Wiederherstellungs-Schlüssel - und prüfen Sie für jedes, ob es heute an einer einzigen Stelle hängt.
- Wählen Sie für jedes kritische Geheimnis Parameter: K=2, N=3 ist für die meisten Setups der vernünftige Startpunkt; höhere Schwellen nur, wo die Hürde "zwei" zu niedrig ist.
- Führen Sie die Erzeugung als Key Ceremony durch: Offline-Rechner, mehrere Zeugen, Shares direkt auf Papier an getrennte Verwahrer, Rechner danach aus dem Verkehr ziehen.
- Verwahren Sie Shares physisch getrennt (verschiedene Personen, Tresore, Orte) und protokollieren Sie jeden Bezug mit zweiter Unterschrift.
- Planen Sie mindestens jährlich einen echten Probe-Rekonstruktions-Durchlauf und eine Rotation bei jedem Personalwechsel ein.
Wie Dernium hier hilft
Dernium setzt Shamir produktiv für den Unseal-Key der internen Schlüsselinfrastruktur ein: 2-von-3, Papier-Shares, getrennte Aufbewahrung bei drei Personen an drei Orten, jährlicher Probe-Rekonstruktions-Durchlauf. Für Kunden mit eigenen Recovery-Anforderungen (z.B. aus Compliance-Gründen) bietet Dernium Note auf Anfrage eine Shamir-basierte Wiederherstellungs-Variante, in der der Kunde N Shares an vertraute Dritte verteilt.
Offene Punkte
Share-Integrität. Die klassische Shamir-Konstruktion gibt keinen Nachweis, dass eine präsentierte Share nicht manipuliert wurde. Verifiable Secret Sharing (VSS, ein Verfahren mit kryptografischem Echtheitsnachweis je Share, Feldman 1987) fügt einen kryptografischen Commit-Pfad hinzu; operational selten gebraucht, aber wer Shares über lange Zeit hält und bei dem eine manipulierte Share beim Rekonstruieren unbemerkt bleiben könnte, sollte VSS kennen.
Proactive Secret Sharing. Nach längerer Zeit können Shares abhanden gekommen sein, ohne dass man es merkt. Proaktive Verfahren erlauben, Shares regelmäßig neu zu ziehen, ohne das Geheimnis selbst zu ändern. Komplexer, selten produktiv eingesetzt, aber für langlebige Geheimnisse eine Überlegung wert.
Operative Disziplin. Die Krypto ist der einfache Teil. Der schwere Teil ist die organisatorische Durchsetzung: Shares bleiben getrennt, Ceremony wird wirklich durchgezogen, Rotationen erfolgen bei Personalwechsel. Wer die Disziplin nicht mitbringt, hat auch mit Shamir nur theoretische Sicherheit.
Häufige Fragen
Wie viele Shares brauche ich, und wie viele darf ich verlieren?
Das legen Sie mit den Parametern K und N fest: N ist die Gesamtzahl der Shares, K die Zahl, die zum Rekonstruieren nötig ist. Bei K=2, N=3 genügen zwei beliebige Shares, und Sie dürfen genau eine verlieren, ohne den Zugriff zu verlieren. Je größer der Abstand zwischen K und N, desto mehr Verluste sind verkraftbar - aber desto mehr Shares müssen Sie auch sicher verwahren.
Ist Shamir auch gegen Quantencomputer sicher?
Ja. Anders als viele kryptografische Verfahren beruht Shamir nicht auf einem Rechenproblem, das ein Angreifer "nur schwer" lösen kann, sondern auf einer informationstheoretischen Eigenschaft: Aus weniger als K Shares folgt mathematisch keinerlei Information über das Geheimnis. Auch unbegrenzte Rechenleistung, inklusive Quantencomputer, hilft dabei nicht.
Kann ich die Shares einfach auf einen USB-Stick im Tresor legen?
Davon ist abzuraten. Digitale Träger lassen sich unbemerkt kopieren, und ein Stick wandert leicht versehentlich in ein Backup. Papier ist unbequem und genau deshalb sicherer: Es lässt sich nicht still duplizieren. Wenn Sie digital verwahren müssen, sollten die Träger genauso streng getrennt und protokolliert sein wie Papier-Shares.
Was passiert, wenn eine Share beschädigt oder manipuliert ist?
Solange Sie noch mindestens K unversehrte Shares haben, rekonstruieren Sie das Geheimnis trotzdem. Problematisch wird es, wenn eine manipulierte Share unbemerkt einfließt - die klassische Shamir-Konstruktion erkennt das nicht von selbst. Wer dieses Risiko absichern will, sieht sich Verifiable Secret Sharing an, das jede Share mit einem Echtheitsnachweis versieht.
Ersetzt Shamir einen Passwort-Manager oder ein HSM?
Nein, es ergänzt sie. Shamir ist für die ganz obersten, selten gebrauchten Schlüssel gedacht, deren Verlust oder Diebstahl eine Katastrophe wäre. Ein Passwort-Manager bündelt dagegen viele Alltags-Geheimnisse an einer Stelle, und ein HSM schützt Schlüssel im laufenden Betrieb - beide haben aber selbst wieder einen obersten Schlüssel, der ein typischer Shamir-Kandidat ist.