ADMIN 11/13 stellt die besten Lösungen vor und klärt, ob Browser-Plugins, Anonymisierer sowie Verschlüsselung wirklich helfen. Weitere Themen: Small ... (mehr)

Master- und Sub-Keys

An dieser Stelle soll nicht der bekannte Prozess der GPG-Schlüsselgenerierung beschrieben werden. Entsprechendes kann man an vielen Stellen nachlesen. Stattdessen soll hier diskutiert werden, wie man Master-Keys mit Sub-Keys verwenden kann, um die Sicherheit noch zu erhöhen.

Im ersten Szenario verwendet man einen Master-Key zum Unterschreiben und einen Sub-Key für die Verschlüsselung. Der sogenannte Signing-Key bestätigt die Identität und baut ein Vertrauensnetzwerk auf (durch Sammeln von Unterschriften von Personen, die die eigene Identität bestätigen). Mit dem zweiten Schlüssel (Encryption-Key) werden Dokumente entschlüsselt, die an einen selber gerichtet sind. Beide Schlüssel können unabhängig voneinander verwaltet werden. So kann man einen Signing-Key haben, der nie ausläuft, wogegen der Encryption-Key nur bis zu einem bestimmten Zeitpunkt gültig ist.

Um den Encryption-Key zu ändern, fügt man einfach einen neuen Sub-Key hinzu. Das geht mit

PGP edit-key myid

und dem Befehl »addkey« , der nach dem Prompt einzugeben ist. Dabei kann man den bevorzugten Algorithmus und die Schlüsselänge wählen. Danach gibt man »save« ein, um den Schlüssel zu sichern. Um einen Key auslaufen zu lassen, tippt man »key n« wobei n der Index des Keys in der Liste ist und anschließend »expire« , um damit das Ablaufdatum einzustellen ( Abbildung 2 ).

Abbildung 2: Das Generieren eines Encryption-Sub-Keys.

Um den neuen Key anstelle des alten zu verwenden, muss der neue Public-Key veröffentlicht werden. Das ist für Leute, die mit einem korrespondieren wollen, etwas unbequem, denn sie müssen den bei sich gespeicherten Schlüssel austauschen. Das Ganze funktioniert aber recht geradlinig: Weil der neue Sub-Key mit dem existierenden Master-Key signiert ist, braucht es keine zusätzlichen Signaturen. Die Beteiligten vertrauen ja bereits dem Master-Key. Den abgelaufenen Key sollte man übrigens nicht entsorgen, man braucht ihn immer noch, um damit ältere Dokumente zu entschlüsseln.

Will man die Sicherheit noch weiter steigern, kann man auch einen Sub-Key für das Unterschreiben anlegen (wie für das Verschlüsseln). Der Hauptvorteil dabei ist, dass man nun diese beiden Sub-Keys auf dem hauptsächlichen Computer für die tägliche Arbeit speichern kann, während man den Master-Key getrennt davon an einem sicheren Ort aufbewahrt. Davon sollte es auch ein Backup geben und auch das Backup muss sicher verwahrt werden. Der Master-Key wird dann gelegentlich noch gebraucht, um andere Schlüssel zu signieren, um neue Sub-Keys zu kreieren und alte zurückzurufen. Wenn nun der Rechner gestohlen oder gehackt wird, ist der Master-Key weiter sicher. Ja, selbst wenn der Master-Key gestohlen würde, bräuchte man immer noch das dazugehörige Passwort, um ihn benutzen zu können. Aber das ist sicher leichter zu knacken als die Verschlüsselungsverfahren.

Sind die neuen Keys erzeugt, kopiert man das Verzeichnis »~/.gnupg« an einen sicheren Ort. Nun muss von dem täglich genutzten Rechner der Master-Key entfernt werden, was ein klein wenig schwieriger ist. Zu Anfang exportiert man (wie in Listing 2 zu sehen) jeden Sub-Key unter Angabe seiner ID in ein separates File. Dann exportiert man den Master-Key mit

Listing 2

Exportieren der Sub-Keys

 

gpg --export 01234567 > pubkeys

wobei 01234567 die ID des Master-Keys ist. Nun entfernt man den Master-Key (nicht ohne sich zu überzeugen, dass ein Backup existiert) und importiert die anderen Keys wieder, wie es Listing 3 zu sehen ist.

Listing 3

Entfernen und Re-Importieren des Master-Keys

 

Tippt man jetzt »gpg -K« , zeigt die Sec-Zeile »sec#« , was bedeutet, dass der Master-Key hier nicht mehr installiert ist. Wollte man den Master-Key hier wieder verwenden, geht das mit

gpg --home=Speicherort d. Master Keys -K

Um die Public-Keys auf einen öffentlichen Key-Server zu laden, verwendet man

gpg --sendkey --keyserver my.preferred.keyserver MASTERKEY_ID

Schließlich kann ein Tipp beim Verwenden der Sub-Keys noch nützlich sein. Der oben beschriebene Prozess erzeugt einen Sub-Key und unterschreibt ihn mit dem Master-Key, um so kenntlich zu machen, dass er zum Master-Key gehört. Aber der Sub-Key unterschreibt nicht den Master-Key, um zu verdeutlichen, dass er vom öffentlichen Schlüssel besessen wird. In der Theorie könnte ein Angreifer einen Signature-Sub-Key auf seinen eigenen Schlüssel anwenden, was bedeuten würde, dass er sowohl vom eigenen Master-Key wie auch vom Master-Key des Angreifers verifiziert werden könnte. Der Angreifer könnte allerdings mit einem solchen Key nicht unterschreiben und dieser Umstand würde den Betrug auch aufdecken.

Abbildung 3: Erweiterte Einstellungen für Enigmail unter Thunderbird.

Damit es allerdings gar nicht erst soweit kommen kann, gibt man am besten nach »gpg --edit-key« ein: »cross-verify« . Dazu muss man Zugriff auf den Master-Key haben. Der Schlüssel und alle später erzeugten Sub-Keys sind nun cross-zertifiziert.

Um Mails und Dokumente sicher zu verschlüsseln, ist GPG ganz bestimmt keine schlechte Wahl. Am nützlichsten ist die Software aber in der Zusammenarbeit mit anderen Applikationen. Am häufigsten werden das Mail-Clients sein, doch es gibt auch GPG-Plugins für Browser oder auch für Jabber-Clients und -Server.

Ähnliche Artikel

comments powered by Disqus
Mehr zum Thema

Android-Passwortmanager weitgehend unsicher

Sicherheitsexperten eines Fraunhofer-Instituts haben Android-Passwortmanager untersucht und sind zu einem ernüchternden Ergebnis gelangt.

Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023