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:

Die Aufteilung der drei kryptographischen Funktionen

  1. Verschlüsseln von Daten,
  2. Unterschreiben von Daten und
  3. 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

  1. die Identität einer anderen Person, wenn ihr Name in der oder den Benutzerkennung(en) des Schlüssels X verwendet wird, und
  2. 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:

Weitere Informationen:

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:

  1. Sämtliche Schlüssel, die in die Grafik integriert werden sollen, müssen im persönlichen Schlüsselbund enthalten sein.
  2. Die IDs aller aufzunehmender Schlüssel werden in eine Textdatei id_liste geschrieben.

  3. 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
  4. 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:

    1. NEATO (Details siehe Kamada und Kawai, Information Processing Letters 31:1, April 1989):

      $ neato -Goverlap=false -Tpng -v < netz.dot > netz-neato.png
    2. 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:

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:

4.2. Datenschutz

Auf dem Schlüsselserver werden folgende Angaben eines OpenPGP-Schlüssels veröffentlicht:

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,

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.

OpenPGP (last edited 2015-01-09 21:20:24 by Mathias)