doc:tools_treasurebox
Differences
This shows you the differences between two versions of the page.
doc:tools_treasurebox [2015/06/14 18:40] – created admin | doc:tools_treasurebox [2015/06/20 11:49] (current) – admin | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== The Treasurebox | + | ====== Shared Secrets - Die PGP Schatzkiste ====== |
+ | |||
+ | Man kennt das Problem: Man verwaltet alle möglichen Zugangsdaten für ein ganzes Team. Nun kann man einerseits diese vertraulichen Daten nicht offen verteilen, weil man dadurch nicht mehr übersehen kann, ob, wann und wer nun eigenständig irgendwo herumändert, | ||
+ | |||
+ | Früher hätte man dazu wahrscheinlich einen Umschlag mit den wichtigsten Daten beim Notar hinterlegt mit der Ansage, dass mindestens 5 der 8 Teammitglieder gemeinsam auf der Matte stehen müssen, bevor der Notar den Umschlag rausrücken darf, damit nicht ein Einzelner heimlich Schindluder treibt. | ||
+ | |||
+ | Im digitalen Zeitalter jedoch kann auch hier der Computer eingreifen und mit etwas Mathematik- Zauberei den Job des Notars übernehmen... | ||
+ | |||
+ | ===== Das Prinzip ====== | ||
+ | |||
+ | Man kann sich das Ganze vorstellen wie eine Schatzkiste mit mehreren Schlössern und einem Einwurfschlitz: | ||
+ | |||
+ | Technisch wird die Schatzkiste einfach dargestellt, | ||
+ | |||
+ | |||
+ | ===== Die Anwendung ===== | ||
+ | |||
+ | Umgesetzt ist das Ganze als simples Linux- Shellscript. Dies benötigt noch ein paar mehr installierte Programme (namentlich gpg, ssss, zip), die aber alle über den normalen debian- Packetmanager zu kriegen sind. | ||
+ | |||
+ | |||
+ | Wer selber auch Daten in die Kiste ablegen möchte, sollte sich eine GPG- Umgebung seiner Wahl installieren. Hinzufügen von Dateien geschieht durch einfaches Verschlüsseln der gewünschten Daten und Ablegen derselben auf einem zentralem, dem Team zugänglichen Ort. | ||
+ | |||
+ | |||
+ | |||
+ | Das Script kennt folgende Kommandos | ||
+ | |||
+ | |||
+ | |||
+ | treasurebox.sh | ||
+ | |||
+ | Erzeugt alle Dateien, die man zur Schatzkisten- Verwaltung. Das wären im Einzelnen: | ||
+ | |||
+ | < | ||
+ | |||
+ | < | ||
+ | |||
+ | |||
+ | < | ||
+ | |||
+ | < | ||
+ | |||
+ | < | ||
+ | |||
+ | |||
+ | treasurebox.sh | ||
+ | |||
+ | Dies ist die Stand-alone Variante, um mit gpg und dem öffentlichen < | ||
+ | |||
+ | |||
+ | |||
+ | treasurebox.sh | ||
+ | |||
+ | Hiermit wird nun so eine Kiste wieder geöffnet. Zuerst kopiert man die einzelnen wieder zusammengetragenen Schlüssel zeilenweise in eine Textdatei. Wieviele man braucht, erkennt man übrigens an der =zahl= im Schlüsseltext. | ||
+ | |||
+ | Der Aufruf erzeugt dann < | ||
+ | |||
+ | |||
+ | ===== The Math behind ... ====== | ||
+ | |||
+ | |||
+ | Wie immer ist es meistens ganz einfach, wenn man die richtigen Stellen findet, wo man abkucken kann :-) | ||
+ | |||
+ | Also verschlüsselt werden die Daten ganz konventionell per gpg mit dem public Key, der für die Schatzkiste beim Init erzeugt wird. Da ist ja nichts besonderes dabei. | ||
+ | |||
+ | Auch die Entschlüsselung ist Karo Einfach, nämlich mit dem secret key und der Passphrase der Schatzkiste. Nur den muß mal erst mal haben, und da wirds langsam interessant. Der ist nämlich veschlüsselt im Treasure- File, und zwar diesmal mit symetrischer Verschlüsselung, | ||
+ | |||
+ | Dieser Trick wurde u.a. von Amir Sharon entwickelt (Sharon ist auch das S in RSA) und findet sich in der Literatur als Sharons Shared Secret: | ||
+ | |||
+ | Wer sich noch an seine Schulzeit erinnern kann, erinnert sich vielleicht auch noch an die allgemeine Funktionsgleichung | ||
+ | |||
+ | y = c + a * x + b * x^2 + z * x ^ n | ||
+ | |||
+ | und die Behauptung des Paukers, das man mindestens n Punkte einer Kurve kennen muss, um die Funktionsgleichung einer Kurve n-ten Grades bestimmen zu können. | ||
+ | |||
+ | |||
+ | Sharon macht nun einfach folgendes: Eine Passphrase ist, richtig umgerechnet, | ||
+ | |||
+ | Aus dieser Gleichnung kann man dann soviele Punkte der Kurve berechnen, wie man braucht, um für m Leute einen Schlüssel zu haben. Jeder dieser Leute kriegt dann eine Punktkoordinate als seinen persönlichen Teilschlüssel. | ||
+ | |||
+ | Wenn man dann die Passphase (also c) wieder herstellen will, ist es völlig egal, wieviel verschiedene Leute m es gibt. Man muß nur n Punkte wieder zusammen bekommen, um daraus die Gleichung und damit auch c wieder herstellen zu können. | ||
+ | |||
+ | Und selbst für so'n Quatsch gibts schon fertige Software (namens ssss) ferig als Debian- Package, und die ist es auch, die hier den Zaubertrick vollführt :-) | ||
doc/tools_treasurebox.txt · Last modified: 2015/06/20 11:49 by admin