Home
Über die LugBE | Mailing List | Treff & Events | Projekte | lost+found | Support

LugBE GPG Web of Trust

Digitale Signaturen, Verschlüsselung bei der LugBE

Am 19. Juni 2003 fiel der Startschuss für ein Web of Trust für LugBE-Mitglieder und -Freunde. An diesem Abend fand sich ein gutes Dutzend LugBE'ler im Beaulieu ein, um gegenseitig ihre GPG-Keys zu verifizieren und anschliessend zu signieren.

GPG (gnupg, Gnu Privacy Guard) ist die Open-Source-Implementation von PGP (Pretty Good Privacy), einem Public-Key-Verfahren, das hauptsächlich zur Verschlüsselung und zum fälschungssicheren Unterschreiben von Mails verwendet wird. (Man kann damit aber auch Dateien auf der Festplatte verschlüsselt ablegen oder sie so verschlüsseln, dass nur ein einziger Empfänger sie lesen kann.)

Für die meisten Mail-Programme gibt es schon Plugins, die entweder direkt auf ein installiertes gnupg zugreifen oder mit den selben Algorithmen arbeiten. Wie die Verschlüsselung in den Mailfluss integriert wird, hängt daher stark von den jeweils verwendeten Programmen ab.

Entscheidend für die Sicherheit dieses Public-Key-Verfahrens, bei dem die Teilnehmer sich jeweils gegenseitig ihre Keys zukommen lassen, ist (neben der inzwischen anerkannten Sicherheit des Verschlüsselungsalgorithmus) die Vertrauenswürdigkeit der Keys. Diese werden nämlich von den andern Teilnehmern mit ihrem eigenen Key signiert, und anhand dieser Signatur kann dann ein Dritter entscheiden, ob er dem Key vertrauen will und an seinen Besitzer evtl. vertrauliche Nachrichten verschicken. Dies könnte er dann tun, wenn er dem Key desjenigen vertraut (d.h. ihn in verifizierter Form bereits auf der Festplatte gespeichert hat), der den Key signiert hat. Dieses Netzwerk von Vertrauensbeziehungen wird eben "Web of Trust" genannt.

Gesicherte, verifizierte Keys sind also Grundvoraussetzung für das Funktionieren dieses Netzwerks. Um einen ersten Grundstock solcher vertrauenswürdiger Keys in einem neuen Web of Trust zu erhalten, werden sog. Keysigning Parties abgehalten. Die Anleitung, nach der wir damals unsere Keysigning-Party durchgeführt haben, kann man hier nachlesen.

Ziel der Party ist es, dass die Teilnehmer/innen gegenseitig ihre GPG-Keys austauschen. Diese (Public) Keys braucht man, wenn man jemandem eine verschlüsselte Information schicken will, oder eine angebliche Unterschrift überprüfen.

Wichtig ist dabei folgendes: Die lokalen Keysigning-Events und Webs of Trust sind keine in sich geschlossenen Netzwerke. Wer dem Web of Trust beitritt, tut dies im Prinzip auf einer weltweiten Ebene. Denn früher oder später werden sicher in einzelnen Keys Signaturen von Leuten auftauchen, die nicht Mitglied der lokalen Community sind - und diese anhand von bekannten Signaturen beurteilen zu können ist ja auch einer der Zwecke des Web of Trust. Umgekehrt werden neu eingeführte Keys für Dritte verifizierbar, wenn sie einen (oder mehrere) der signierenden Keys bereits kennen, sie aber nicht über die lokale LUG erhalten haben. Das LugBE Web of Trust ist also klarerweise nur ein kleiner, nicht weiter begrenzter Teil des großen, internationalen; man kann es als Eintrittspforte verstehen.

Nun kann man natürlich nicht jedes Mal, wenn jemand neu dem Web of Trust beitreten will, wieder mit allen eine neue Keysigning Party abhalten - und das ist ja auch nicht nötig. Es reicht schon, wenn einige von den bestehenden Mitgliedern des Web of Trust den Key des Neumitglieds signieren (auch hier gilt natürlich wieder: je mehr, desto besser), damit die andern den Key als vertrauenswürdig ansehen können. Und das, bzw. der dazu nötige Informationsaustausch, kann auch außerhalb einer Keysigning-Party z.B. an einem LugBE-Treffen geschehen.

Beitritt zum LugBE Web of Trust

Es gelten im Grunde die gleichen Spielregeln wie bei der Keysigning-Party, nur dass es keinen Moderator gibt (die Verantwortung liegt jetzt bei den Mitgliedern des Web of Trust) - das vorgängige Verschicken der Keys erübrigt sich also. Gleich bleibt, dass der Key zuvor auf den öffentlichen Keyserver geladen werden muss (wwwkeys.ch.pgp.net), und dass der/die neu Beitretende den Fingerprint seines Keys (Ausdruck, mindestens 3 Stück) sowie gültige Identifikationsdokumente mitbringen muss (Alternativ ist auch eine Bestätigung der Identität durch drei bisherige Mitglieder des Web of Trust möglich).

Am Treffen muss der/die neu Beitretende jetzt noch 3 bisherige Mitglieder des Web of Trust finden, die seinen Key signieren. Dazu brauchen sie den ausgedruckten Fingerprint seines Keys, und er muss sich ihnen gegenüber identifizieren. Je genauer diese Sachen genommen werden, desto besser ist die Vertrauenswürdigkeit des ganzen Netzwerks - daher hier auch gleich ein Aufruf an die bisherigen Mitglieder: Die Integrität des Web of Trust lässt sich mit ein paar einfachen Maßnahmen sicherstellen. Macht keine Staatsaffäre draus, wenn mal ein/e Neue/r mit seinem Key kommt, aber nehmt es auch nicht auf die leichte Schulter.

(Warum der Aufwand mit drei Bisherigen? Wie schon gesagt, die Vertrauenswürdigkeit des Web of Trust steht und fällt mit der Vertrauenswürdigkeit der verwendeten Schlüssel und dass sie wirklich dem-/derjenigen gehören, an den/die man die vertrauliche Information später einmal schickt. Es ist eine Frage der Fairness und des Anstands gegenüber den andern Mitgliedern, dass beim Neueintritt für alle eine plausible Erstkontrolle gemacht wird - vergesst nicht, dass die ersten Mitglieder sich immerhin ein gutes Dutzend mal kontrollieren ließen, bevor ihre Schlüssel akzeptiert wurden.)

Zu Hause werden die bisherigen Mitglieder den neuen Key vom Server laden, anhand der ausgedruckten (und hoffentlich vom Treffen mitgenommenen ;-) Angaben verifizieren, mit ihrem Key signieren und wieder auf den Server hochladen. Damit ist der neue Key den andern im Web of Trust in puncto Vertrauenswürdigkeit gleichgestellt, und andere Mitglieder, die den Key später einmal herunterladen (etwa, um seinem Besitzer vertrauliche Informationen verschlüsselt zu schicken, oder um die Signatur eines von ihm geschickten und signierten Mails zu überprüfen), werden das anhand der Signaturen der andern Mitglieder erkennen.

So, genug der Theorie: unten findet ihr eine Schritt-für-Schritt-Anleitung zum Beitritt zum LugBE Web of Trust. Bei Fragen wendet euch bitte an die Liste lugbe at lugbe.ch, so bekommen alle die Fragen und Antworten mit.


--- BEGIN TUTORIAL ---

Voraussetzungen:
  • gnupg (www.gnupg.org)
  • evtl. Internetzugang (f. Mail und Schlüssel-Upload)
1) Jeder Teilnehmer, der noch keinen hat, erstellt ein eigenes Key-Pair mittels # gpg --gen-key und den dabei durchlaufenen Fragen. Keysize 2048. # gpg --list-secret-keys liefert danach Angaben zum gerade erzeugten Key. z.B.: sec 1024D/C01BAFC3 2000-09-21 Demo User <demo@nonexistent.nowhere> ssb 2048g/7A4087F3 2000-09-21 Bei Bedarf können weitere Email-Adressen in den Key aufgenommen werden. Dies mit dem Kommando # gpg --edit-key <Key-ID> (Key-ID wäre in diesem Fall C01BAFC3) Command> adduid [...] Command> save 2) Der Public Key wird daraufhin auf einen der öffentlichen Keyserver übertragen. Wir verwenden per default folgenden Keyserver: wwwkeys.ch.pgp.net Das Kommando lautet danach: # gpg --keyserver wwwkeys.ch.pgp.net --send-key <Key-ID> (Key-ID wäre in diesem Fall wieder C01BAFC3). Dies setzt natürlich voraus, dass gerade Internet-Connectivity besteht. 3) Jetzt braucht ihr nur mehr den sog. Fingerprint eures Keys zu ermitteln und auszudrucken (mindestens 3mal) # gpg --fingerprint <Key-ID> gibt den Fingerprint aus. Diesen druckt ihr jetzt mindestens 3mal aus (ein paar in Reserve schaden sicher nicht). Druckt am besten die ganze Ausgabe des obigen Kommandos aus, da steht dann auch gleich der Name, den ihr beim Erzeugen des Keys angegeben habt. 4) Folgende Sachen bringt ihr bei nächster Gelegenheit an ein LugBE-Treffen mit. - Fingerprint und Key-ID (ausgedruckt) - Pass/ID 5) Am Treffen selbst geht's dann wie folgt: a) Ihr sucht euch jemanden, der bereits Mitglied im Web of Trust ist. Entweder fragt ihr jemanden vom Vorstand, die sollten zumindest ein paar Namen kennen, oder ihr versucht es mit einer lauten Rundumfrage. Natürlich kann man das auch schon vorgängig via Email koordinieren. Jedenfalls solltet ihr mindestens drei bisherige Mitglieder finden. b) Denen gebt ihr jetzt eure ausgedruckten Fingerprints und identifiziert euch (mit Pass/ID oder durch Aussagen von 3 anwesenden Mitgliedern) c) Falls ihr gerade den Key der andern Mitglieder mitnehmen wollt, dreht sich das Verfahren um - dazu müssen aber auch die andern ihre Keys ausgedruckt dabei haben (selten, wenn nicht abgesprochen, z.B. über EMail) und sich euch gegenüber identifizieren können. Für euch ist die Sache damit fürs erste erledigt. 6) Für die, die eure Keys mitgenommen haben, gehts dann zu Hause irgendwann weiter: Der Public Key des/r neuen Teilnehmer/in wird vom Keyserver heruntergeladen: # gpg --keyserver wwwkeys.ch.pgp.net --recv-keys <Andere-Key-ID> (Die Andere-Key-ID ist die des neuen Keys) Dann wird der Fingerprint überprüft: # gpg --fingerprint <Andere-Key-ID> Die Ausgabe dieses Kommandos MUSS mit dem Fingerprint auf dem Ausdruck übereinstimmen!! Wenn das so ist, kann man den Key mittels # gpg --sign-key <Andere-Key-ID> signieren. Dabei kann man getrost angeben, dass man die Identität des Besitzers eingehend geprüft hat und den Key als "exportable" deklarieren. Anschließend muss noch der signierte Public Key zurück auf den Keyserver übertragen werden: # gpg --keyserver wwwkeys.ch.pgp.net --send-key <Andere-Key-ID> Falls die Angaben nicht übereinstimmen, entfernt man statt dessen den Key mittels # gpg --delete-key <Andere-Key-ID> wieder. Ein freundlicher Mensch würde jetzt das aspirierende Neumitglied auf die Unstimmigkeiten hinweisen. 7) Jetzt ist, wenn alles gut ging, der neue Key Teil des Web of Trust, und andere können anhand der Signaturen beurteilen, wer den Key als vertrauenswürdig eingestuft hat. # gpg --list-sigs zeigt für jeden Key in eurem Keyring an, wer ihn signiert hat. Wenn darunter mindestens drei euch bekannte Signaturen sind, könnt ihr davon ausgehen, dass der Key vertrauenswürdig ist. (Wobei die Zahl drei hier meinen persönlichen Vorlieben entspricht. Natürlich kann jeder selbst entscheiden, welchem Key er vertraut.) 8) Zwar können jetzt alle andern überprüfen, ob der neue Key vertrauenswürdig ist, das Neumitglied kann das umgekehrt aber nicht tun - er/sie hat ja noch keine verifizierten Keys importieren können. Dafür gibt es mehrere Lösungen: a) Ihr tauscht eure Keys gleich beim ersten Treffen aus. Dazu müssen aber auch die bisherigen Mitglieder den Fingerprint ihrer Keys dabei haben sowie Pass/ID. Wenn das so ist, kann der/die Neue mit den Keys der Bisherigen gleich verfahren wie oben beschrieben. Anhand dieser Keys kann er/sie dann auch bei den Keys der anderen Web-Mitglieder entscheiden, ob sie vertrauenswürdig sind und sie ggf. importieren. b) Ihr macht euch einen Termin aus, an dem die Bisherigen ihre Keys dabeihaben. Den neuen Key können sie trotzdem vorher schon signieren wie oben beschrieben. An dem nächsten Treffen drehen sich dann einfach die Rollen um. Wie auch immer es gemacht wird, anhand der jeweiligen Signaturen kann jetzt auch das neue Mitglied weitere Keys verifizieren. 9) Wenn das alle gemacht haben, haben wir dann unser eigenes schönes "Web of Trust" (wie schon gesagt, das ist natürlich nicht wirklich "unser" WoT - davon gibt es nur eines, und das ist weltweit!) und können verschlüsselt und signiert in der Gegend herummailen, ohne dass uns irgendjemand dabei über die Schulter schauen oder Mails fälschen kann. Und das ist doch schon mal ein Anfang, oder ?! Und wir werden immer mehr! Die Ideen zu diesem Vorgehen stammen übrigens von http://www.cryptnet.net/fdp/crypto/gpg-party.html, wo noch weitere Anregungen zum Thema zu finden sind waren (Seite gibt es nicht mehr). --- END TUTORIAL ---

Webmaster at lugbe.ch

Die Artikel dieser Seite stehen unter Copyleft ihrer jeweiligen Autoren. Ihre Nutzung, Wiedergabe etc. untersteht den Bedingungen der GNU Free Documentation License (http://www.gnu.org/copyleft/fdl.html), wo nicht explizit anders vermerkt.