OpenPGP Notizen
1. Anleitung
Das OpenPGP Key Management HowTo beschreibt ausführlich die Konfiguration von GnuPG sowie das Erzeugen, das Bestätigen, die Modifikation und das Zurückziehen von OpenPGP-Schlüsseln. Zu Grunde liegt das Szenario, dass jeder Anwender zwei Schlüssel besitzt:
einen Arbeitsschlüssel, der auf Computern in eher unsicheren Umgebungen (Laptop, Smartphone, etc.) für das Ver- und Entschlüsseln von Daten sowie für das Erstellen und Überprüfen von Unterschriften zuständig ist und
einen Offline-Schlüssel, der auf einem sicheren Computer bzw. in einer sicheren Umgebung aufbewahrt und nur für das Bestätigen anderer Schlüssel (Signaturen) benötigt wird.
Die Aufteilung der drei kryptographischen Funktionen
- Verschlüsseln von Daten,
- Unterschreiben von Daten und
- Bestätigen der Echtheit anderer Schlüsseln
auf zwei Schlüssel hat viele (auch sicherheitsrelevante) Vorteile und klingt nur vordergründig recht kompliziert.
2. OpenPGP Key Signing Party
Bei einer Key Signing Party bestätigen Teilnehmer gegenseitig die Echtheit ihrer OpenPGP-Schlüssel. Das bedeutet, ein Teilnehmer bestätigt
- die Identität einer anderen Person, wenn ihr Name in der oder den Benutzerkennung(en) des Schlüssels X verwendet wird, und
dass diese Person versichert, Eigentümer des jeweiligen Schlüssels zu sein ("Ja, Schlüssel X ist mein Schlüssel!").
Diese beiden Bestätigungen drückt der Teilnehmer später nach der Key Signing Party darin aus, indem er mit seinem Schlüssel "den Schlüssel X" dieser Person "unterschreibt" und so eine oder mehrere Signaturen auf dem Schlüssel X erstellt. (Dies ist eine recht laxe Ausdrucksweise: es werden nämlich keine Schlüssel unterschrieben, sondern die einzelnen Benutzerkennung(en) eines Schlüssels.)
Dieses Verfahren dient der besseren Einbindung der Schlüssel in das Web of Trust.
Eine Key Signing Party läuft stets nach einem standardisierten Verfahren ab:
Die "Ad Hoc"-Methode eignet sich, wenn es nur wenige Teilnehmer gibt.
Die "Sassaman-Efficient"-Methode hat sich bei Veranstaltungen mit sehr vielen Teilnehmern bewährt, etwa auf Konferenzen.
Die "Sassaman-Projected"-Methode kann guten Gewissens eigentlich nicht empfohlen werden, da kein Teilnehmer die Ausweispapiere der jeweils anderen Teilnehmer persönlich überprüfen kann.
Weitere Informationen:
Jonathan Oxer, keysigning.org, 2009
Neil Schneider, Key Signing Party, 2005
V. Alex Brennen, The Keysigning Party HOWTO, 2008
David E. Ross, OpenPGP Key-Signing Party, 2008
3. Web of Trust
Ein Web of Trust oder Netz des Vertrauens bildet die Bestätigungen (Signaturen) von OpenPGP-Schlüsseln ab und damit die Beziehungen zwischen den Schlüsseln. Dies kann man auch grafisch darstellen. Eine ausführlichere Beschreibung gibt es in den Wikipedia-Artikeln Web of Trust und GnuPG.
Hinweis:
Damit das Web of Trust funktioniert, ist es wichtig,...
...die Bestätigungen für den eigenen Schlüssel (Signaturen), die man von anderen erhalten hat auf einen Schlüsselserver hochzuladen.
Damit stehen diese auch anderen zur Verfügung. Einem selbst nützen die Bestätigungen anderer wenig da man ja weiß, wer man ist und man seinen eigenen Schlüssel kennt
...die Schlüssel von anderen regelmäßig von Schlüsselservern zu synchronisieren.
- Dadurch sind die Schlüssel im lokalen Schlüsselbund stets auf dem neuesten Stand was neue Bestätigungen (Signaturen), neue Benutzerkennungen, etc. betrifft, die der Eigentümer in der Zwischenzeit hochgeladen hat.
Auf Aspekte des Datenschutzes wird im Abschnitt Schlüsselserver eingegangen.
Das Web of Trust einiger LUG IN-Mitglieder zeigt die folgende Grafik (Stand: 9. Januar 2015):
Am 23. Juni 2014 wurde über das Web of Trust diskutiert und vereinbart, es durch gegenseitige Bestätigungen zu verbessern. Der Anfangszustand war noch sehr lückenhaft:
Die Grafiken wurden mit sig2dot (Paket signing-party) und den Graphviz Layout-Programmen erstellt. Die einzelnen Schritte sind:
- Sämtliche Schlüssel, die in die Grafik integriert werden sollen, müssen im persönlichen Schlüsselbund enthalten sein.
Die IDs aller aufzunehmender Schlüssel werden in eine Textdatei id_liste geschrieben.
Mit sig2dot wird die Datei netz.dot erstellt:
$ LC_ALL=C.UTF-8 gpg --batch --list-sigs $(cat id_liste) | sig2dot -a -b > netz.dot
Die Datei netz.dot wird in eine PNG-Grafik umgewandelt; es sind natürlich auch andere Ausgabeformate möglich. Dabei können verschiedene Algorithmen verwendet werden. Je nach Anzahl der Schlüssel und Komplexität des Netzes haben sich die beiden folgenden Verfahren praktisch bewährt:
NEATO (Details siehe Kamada und Kawai, Information Processing Letters 31:1, April 1989):
$ neato -Goverlap=false -Tpng -v < netz.dot > netz-neato.png
TWOPI (Details siehe Wills, Symposium on Graph Drawing GD'97, September 1997):
$ twopi -Goverlap=false -Tpng -v < netz.dot > netz-twopi.png
Ein Skript, das alle obigen Schritte automatisch erledigt (und noch etwas mehr), gibt's auf Nachfrage bei Mathias. Falls in den obigen Grafiken ein Schlüssel vergessen wurde, bitte ebenfalls melden.
Weitere Informationen:
Henk P. Penning, Analysis of the strong set in the PGP web of trust. Die Seite enthält Hintergrundinformationen und wird regelmäßig aktualisiert.
Auf der folgenden Seite kann man einen OpenPGP-Schlüssel, dessen Bestätigungen und Einbindung ins Web of Trust analysieren.
http://pgp.cs.uu.nl/stats/<Schlüssel_ID>.html
Die Analyse basiert auf Daten von Schlüsselservern und wird wöchentlich aktualisiert. Neue Bestätigungen wirken sich also nicht sofort aus.
4. Schlüsselserver
4.1. Allgemeines
Um einen OpenPGP-Schlüssel zu einem Namen oder einer E-Mail-Adresse zu finden, gibt es analog zum Telefonbuch sog. Schlüsselserver. Dort kann - und sollte! - man den eigenen Schlüssel hochladen und dies auch regelmäßig dann wiederholen, wenn man von Dritten Bestätigungen des eigenen Schlüssels (Signaturen) erhalten hat.
Technisch gesehen gibt es nicht nur den einen Schlüsselserver. In der Konfiguration von Anwendungen wie z. B. dem E-Mail-Programm werden statt dessen häufig Pool-Adressen verwendet, in denen jeweils mehrere physikalische Server zusammengefasst sind. Die meisten dieser Server synchronisieren ihre Daten untereinander regelmäßig, so dass es letztlich (fast) egal ist, mit welchem man arbeitet. Empfohlen wird der Pool
hkps.pool.sks-keyservers.net
Hinweis:
Wegen der Datensynchronisation ist es nicht möglich, Informationen oder Bestandteile eines Schlüssels von Schlüsselservern zu löschen. Sie können jedoch ungültig gemacht und zurückgezogen (revoked) werden. Die Details sind im OpenPGP Key Management HowTo beschrieben.
Weitere Informationen:
Übersicht über verschiedene Pools und Erläuterungen
Statistiken zu Pool-Servern und OpenPGP-Schlüsseln auf Schlüsselservern
4.2. Datenschutz
Auf dem Schlüsselserver werden folgende Angaben eines OpenPGP-Schlüssels veröffentlicht:
- die Benutzerkennung(en) mit Namen und E-Mail-Adresse, die ausschließlich der Schlüsseleigentümer festgelegt hat,
- die Bestätigung(en) der Echtheit des Schlüssels durch Dritte (Signaturen),
- Eine solche Bestätigung ist die Aussage:
Schlüssel A bestätigt zum Zeitpunkt T1 die Echtheit des Schlüssels B und optional ist diese Bestätigung bis zum Zeitpunkt T2 gültig.
- das eigentliche Schlüsselmaterial (die "Mathematik").
Aus diesen Daten wird das Web of Trust konstruiert, das dabei hilft, die Echtheit von OpenPGP-Schlüsseln zu beurteilen.
Die technische Konstruktion des Schlüsselserver-Systems hat Schwächen im Hinblick auf den Datenschutz (siehe z. B. Wikipedia). Diese wirken sich teilweise auch auf das Web of Trust aus. Im Vergleich zu sozialen Netzwerken muss man jedoch ganz nüchtern feststellen, dass das Web of Trust von OpenPGP-Schlüsseln per Definition keine Aussagen über soziale Kategorien zulässt. Das bedeutet,
- keine Aussagen über soziale Bindungen, Beziehungen oder wer wen wie gut kennt,
- keine Aussagen über Sympathien, Charakter, sozialen Status, usw.,
- keine Aussagen über Einstellungen, Haltungen und Meinungen,
- keine Aussagen über (Kommunikations-)Gewohnheiten und wer mit wem wie oft über welches Medium kommuniziert.
Eine Profilbildung auf Basis des Web of Trusts ist daher nur sehr eingeschränkt möglich. Die letzte Einschätzung und Abwägung muss dennoch allein der jeweilige Anwender treffen.