Shamir Secret Sharing: den Unseal-Key auf drei Personen verteilen

5 Min Lesezeit Serie: infrastructure #krypto#shamir#secret-sharing#ops

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 Krypto-Trick ist.

Problem

Irgendwo muss der oberste Schlüssel einer produktiven Infrastruktur verwahrt sein: das Unseal-Geheimnis eines KMS, der Root-Key einer PKI, der Wiederherstellungs-Schlüssel für LUKS-verschlüsselte Server. Die naive Antwort ist "in einem Tresor, ein Mensch hat ihn". Das hat zwei Schwächen:

  • Single Point of Failure. Wenn die eine Person den Schlüssel verliert oder aus einem beliebigen Grund unerreichbar wird, ist die Infrastruktur lahm.
  • Single Point of Compromise. Wer Zugang zu der einen Person bekommt, durch Zwang, Bestechung, Sozial-Engineering, hat 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.

Kurze Antwort

Shamir Secret Sharing (Adi Shamir, 1979) zerlegt ein Geheimnis in N Teile (Shares) so, dass jede Teilmenge von K Shares ausreicht, das Geheimnis zu rekonstruieren, und jede Teilmenge von K−1 oder weniger Shares informationstheoretisch nichts über das Geheimnis preisgibt. Für einen produktiven Unseal wählt man typischerweise K=2, N=3: drei physisch getrennt verwahrte Shares, zwei Personen genügen zum Rekonstruieren, 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:

  1. Das Geheimnis S ist eine Zahl in einem grossen endlichen Körper (z.B. GF(p) mit einer 256-Bit-Primzahl p).
  2. 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.
  3. Die N Shares sind Paare (x_i, f(x_i)) für i = 1, …, N, mit x_i ≠ 0 und paarweise verschieden.

Mit K Paaren kann man per Lagrange-Interpolation 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 informationstheoretisch sicher: ein Angreifer mit beliebiger Rechenkapazität, inklusive Quantencomputer, bekommt aus K−1 Shares keine Information über das 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, drei 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 weg.

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ässige 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 heißt Key Ceremony. Der Ablauf ist formalisiert:

  1. Mehrere Personen gleichzeitig im Raum, keine Einzelperson mit Alleinzugriff.
  2. Erzeugung auf einem Offline-Rechner, idealerweise amnesisch bootend (Tails oder ein dediziertes Live-Medium).
  3. Shares werden einzeln auf Papier ausgedruckt und direkt den jeweiligen Verwahrern übergeben; keine Share bleibt "kurz" auf dem Schreibtisch liegen.
  4. Der Erzeugungs-Rechner wird anschliessend mit Speicher-Löschen oder Festplatten-Vernichtung aus dem Verkehr gezogen.
  5. Ein Protokoll dokumentiert den Vorgang, mindestens zwei Unterschriften.

Referenz-Implementationen

  • HashiCorp Vault 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). 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 einen 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 haben eigene Unseal-Keys. Genau diese Unseal-Keys sind typische Shamir-Kandidaten.

Wie Svelnor hier hilft

Svelnor 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, jaehrlicher Probe-Rekonstruktions-Durchlauf. Svelnor Audit protokolliert jede Key Ceremony und jeden Unseal-Vorgang revisionssicher mit Merkle-Kette. Für Kunden mit eigenen Recovery-Anforderungen (z.B. aus Compliance-Gründen) bietet Svelnor Note auf Anfrage eine Shamir-basierte Wiederherstellungs-Variante, in der der Kunde N Shares an vertraute Dritte verteilt.

Verifikation

Offene Punkte

Share-Integrität. Die klassische Shamir-Konstruktion gibt keinen Nachweis, dass eine präsentierte Share nicht manipuliert wurde. Verifiable Secret Sharing (VSS, Feldman 1987) fügt einen kryptografischen Commit-Pfad hinzu; operational selten gebraucht, aber wer Shares über lange Zeit hält und 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ässig 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.