GnuPG: Netz des Vertrauens

Ich erwähnte schon das Netz des Vertrauens („Web of Trust“). Ein OpenPGP-Nutzer vertraut einem anderen, indem er seine Schlüssel signiert. Das „Vertrauen“ bezieht sich hierbei auf das Wissen, dass genau dieser Nutzer auch hinter diesem Schlüssel steckt und kein Man-in-the-Middle oder eine Spaßidentität. Das Vertrauen bezieht sich hier also nicht auf persönliches Vertrauen. Somit kann man auch ohne Bedenken fremde Personen und ihre Schlüssel überprüfen und sie dann signieren. Durch starke Verwebungen im Vertrauensnetz wird es auch schwer, dieses wieder zu zerstören: Ein kompromittierter (geknackter) Schlüssel bringt nicht das gesamte System zu Fall.

Keysigning-Partys Bearbeiten

Keysigning-Partys (kurz: KSP) sind leider viel zu seltene gesellschaftliche Ereignisse. Auf dem Linuxtag in Karlsruhe und auf dem Chaos Communication Congress waren im Jahr 2004 wohl größere Ereignisse dieser Art. Keysigning-Partys haben den Zweck, dass sich jeder der Identität des Anderen vergewissert und dessen Schlüssel signiert. Die Motivationen sind unterschiedlich: Die Stärkung und Ausweitung des Vertrauensnetzes, das Erhöhen des eigenen Ranges in Schlüssel-Analysen, ... – für einige ist es auch einfach nur eine Art Sport, möglichst viele Signaturen zu ergattern. Wenn Sie viele Signaturen haben, haben auch Menschen, die Sie nicht signiert haben, einen Anhaltspunkt, dass Sie auch wirklich Sie sind: Wenn Alice zwar den Schlüssel von Bob signiert hat, und Bob den von Chris, kann Alice auch dem Schlüssel von Chris vertrauen, auch wenn sie ihn nicht kennt. Allerdings ist das noch kein Grund, Sie einfach so ohne Kontrolle zu signieren, denn das würde eine Abschwächung des Vertrauensnetzes bedeuten, da die Schwelle zum Signieren sinkt – Ihre ganzen Signaturen könnten ja auch von Menschen sein, die mit Ihnen unter einer Decke stecken... Nebenbei kann man auf Keysigning-Partys einige neue, vielleicht auch interessante, Leute kennen lernen. Durch Keysigning-Partys werden auch manchmal mehrere kleinere Vertrauensnetze zu einem großen zusammengeführt bzw. vom so genannten „Strong Set“ aufgesogen.

Wie laufen also solche Keysigning-Partys ab? Meist steht alles Wichtige dazu auf der Website einer solchen Veranstaltung und meist ist dort auch ein Link auf die GnuPG Keysigning-Party-Anleitung zu finden. In dem ist eigentlich alles Wichtige beschrieben, trotzdem hier eine kurze, grobe Zusammenfassung...

Als erstes sollte man seinen öffentlichen Schlüssel an den Koordinator (Veranstalter, Organisator, ...) oder auf einen Schlüsselserver schicken – das ist von Party zu Party unterschiedlich. Bei der Lösung über den Schlüsselserver muss man sich dennoch anmelden, da der Aufwand einer Party riesig wäre, wenn alle unangemeldet kämen. Vom Veranstalter wird zu gegebenem Zeitpunkt eine Liste veröffentlicht, die alle Teilnehmer enthält. Diese Liste ist, wenn sie im Internet veröffentlicht wird, auszudrucken und mitzunehmen. Manchmal wird sie auch direkt vor der Veranstaltung unter den Teilnehmern verteilt.

Auf den Listen befindet sich nicht nur der Name und die Schlüssel-ID der Teilnehmer, sondern auch die Fingerprints. Der Fingerprint ist übersetzt der elektronische Fingerabdruck des Schlüssels und eigentlich nichts anderes als die MD5-Prüfsumme. Die Schlüssel-ID ist bei DSA-Schlüsseln übrigens einfach der letzte 16- bzw. 8-stellige Teil des Fingerprints. Es gilt nun vor bzw. bei der Party den eigenen Fingerprint (Ausgabe mit gpg --fingerprint eigeneID) mit dem auf der Liste zu vergleichen und abzuhaken. Ein Stift ist bei einer Keysigning-Party also auch von Vorteil (wird auch in der Anleitung extra genannt). Im ersten Teil der Party bestätigt jeder lautstark, dass der Fingerprint auf der Liste mit dem eigenen übereinstimmt. Stimmt er nicht, dann ist er zu berichtigen oder einfach nicht abzuhaken.

Im zweiten Teil geht es ans Vergleichen der Identität der Teilnehmer. Alle nehmen einen amtlichen Ausweis heraus und dann wird reihum oder zentral (z.B. über eine Projektion des Ausweises an die Wand) verglichen. Beim Vergleichen sollte der Name auf der Liste mit dem Namen auf dem Ausweis und das Gesicht auf dem Ausweis ungefähr mit dem realen Gesicht übereinstimmen. Wenn ja (beim Photo-Gesicht-Vergleich muss man meist tolerant sein), gibt es ein Häkchen, sonst nicht.

Auf Keysigning-Partys sind aus Sicherheitsgründen keine Laptops zugelassen, und so geht die Arbeit erst im Nachhinein richtig los: das Signieren. Also man nimmt sich etwas Zeit und signiert (--sign-key) alle Teilnehmer, bei denen zwei Häkchen sind und bei denen der Fingerprint auf der Liste mit dem von GnuPG angezeigten Fingerprint übereinstimmt. Als nächstes sendet man den signierten Schlüssel entweder auf einen Schlüsselserver oder per E-Mail zu dem Teilnehmer selbst (meist bevorzugt).

Da Signieren und Verschicken die aufwändigsten Schritte darstellen, gibt es dafür einige Skripte und Hilfen im Netz. Ich hab diese allerdings noch nicht getestet und kann nicht viel zur Funktionsweise sagen:

  • der von u.A. Peter Palfrader geschriebene CABot, eine Perl-Skriptsammlung, scheint relativ beliebt zu sein, denn er begegnete mir schon recht häufig. Einfach zu installieren (auch apt-get install cabot in Debian), gepflegt und gut dokumentiert, aber recht komplex bzw. umfangreich.
  • caff von Peter Palfrader hat den CAbot allerdings in letzter Zeit etwas abgelöst.
  • ksp-sign ist ein Ruby-Skript von und für mich (Stephan Beyer). Potenziell gefährliche und unsichere Betaversion. ;-)
  • signing-party bzw. apt-get install signing-party enthält das Skript gpg-mailkeys IDs, womit das Verschicken recht einfach fällt.
  • Beschreibung, wie man „schnell und einfach“ signiert und ein Perl-Skript, das die signierten Schlüssel an ihre Eigentümer mailt – von Thomas Themel, 2001
  • gpgsigs ist ein Perl-Skript, das einem vor einer Keysigning-Party auflistet, wen man aus dem Party-Schlüsselbund schon signiert hat.

Zertifizierungsstellen (Certification Authorities, CA) Bearbeiten

In Anlehnung an die PKI gibt es auch w:Zertifizierungsstellens für PGP.

c't CA Bearbeiten

Im Rahmen der Krypto-Kampagne der Computerzeitschrift c't wurde auch eine Zertifizierungsstelle aufgesetzt. Deren Schlüssel lässt sich besonders einfach überprüfen, da er in jeder c't neben dem Impressum auf Seite 14 abgedruckt ist. Signieren lassen kann man seinen Schlüssel auf Veranstaltungen, auf denen Heise (c't) vertreten ist. Dort findet dann die Überprüfung der Personalien statt. Eine Anleitung zum genauen Verfahren der Signierung finden Sie hier.

CAcert Bearbeiten

CAcert hat sich zum Ziel gesetzt das Netz des Vertrauens auf das PKI-Verfahren zu übertragen. Hierdurch wird es möglich kostenlose Server- und Client-Zertifikate anzubieten. Es werden im Rahmen dieses Projektes auch PGP-Schlüssel signiert. Der Fingerprint wird u.a. im „Linux Magazin“ unter dem Impressum veröffentlicht.

DFN-PCA Bearbeiten

Das DFN betreibt eine Zertifizierungsstelle als Pilotprojekt. Zur Zeit ist nur Zertifizierung durch die Mitarbeiter möglich. Die DFN-PCA sitzt in Hamburg. Anleitung zum Antrag eines Zertifikates Der Fingerprint wird u.a. im Linux-Magazin unter dem Impressum veröffentlicht.

Schlüssel-Analysen Bearbeiten

Im Internet stößt man ab und zu auf Analysen bestimmter Vertrauensnetze. Einige Schlüsselserver-Betreiber lassen ihre Skripte sogar den gesamten Schlüsselbestand analysieren. Das Ergebnis sind oft Tabellen oder sonderbare Graphen. Einige Begriffe möchte ich dazu schnell klären.

Pfad
Der Pfad ist ein möglicher Weg, um über die Signaturen eines Schlüssels zu einem anderen zu gelangen. Von Interesse ist meist der kürzeste Pfad.
Distanz
Die Distanz eines Schlüssels zu einem anderen Schlüsseln beschreibt die Länge des kürzesten Pfades, d.h. die Anzahl der „Stationen“, um von einem Schlüssel zum anderen zu gelangen.
MSD
Die „Mean Shortest Distance“ ist die durchschnittliche Distanz eines Schlüssels zu allen anderen analysierten Schlüsseln.
Rank
Der Rank (Rang) ist die Platzierung eines Schlüssels innerhalb einer analysierten Menge. Die Rangordnung geht meist von den MSDs aus, d.h. der Schlüssel mit der kleinsten MSD ist auch der erste.
Strong Set
Die, wörtlich, „starke Menge“ ist die größte Menge der Schlüssel, die einen Pfad zu einem anderen Schlüssel in dieser Menge haben – oder kurz: das größte abgeschlossene Netz des Vertrauens.

Beispiele für Schlüssel-Analysen im Internet:

  • Pfade und Statistiken einzelner Schlüssel (über Formular eingebbar).
  • Jason Harris erstellt u.a. eine Top 1000 und eine Top 50 aller Schlüssel (geordnet nach MSD). Haben Sie sich schon entdeckt?
  • eine Analyse über die Entwicklung vom Strong Set, von Henk Penning.
  • Auf der sig2dot-Homepage findet man Graphen verschiedener Vertrauensnetze.
  • „Leaf Of Trust“-Graphiken mit dem Vertrauensnetz von Jörgen Cederlöf

BigLumber.com Bearbeiten

BigLumber.com hat, wie ich finde, eine besondere Erwähnung verdient: Es bietet alles, was man braucht, um Keysignings zu organisieren. Als signierwilliger Mensch fügt man dort seinen Schlüssel hinzu, gibt sein Land und die nächst größere Stadt ein und schon ist man von anderen Signierwilligen auffindbar, kann sich treffen und signieren. Ebenso kann man geplante Keysigning-Partys eintragen und BigLumber verwaltet auf Wunsch sogleich den Party-Schlüsselbund, wodurch sich jeder selbst anmelden kann, ohne dass der Koordinator sich darum kümmern muss. Über einen RSS-Feed bleibt man immer über die neuesten Anmeldungen informiert. Nachteil ist das sehr lange Passwort, das sich kein Mensch merken kann. Aber dafür wird es einem verschlüsselt gesendet...