Key-Signing-Party

Am 20.07.2012 um voraussichtlich 16:00 Uhr veranstalten wir eine Key-Signing-Party in 25.12.O2.33. Wenn Du mitmachen möchtest und schon weißt worum es geht, dann überspring ruhig die kommenden Abschnitte und lies erst bei System weiter. Ansonsten wird hier auch alles nochmal erklärt. Eine Anmeldung findet sich schließlich dann ganz unten. Wer spontan vorbei kommen will, sollte sich ein paar Schnipsel mit seinem PGP-Key mitbringen.

Was für Schlüssel sollen denn da unterschrieben werden?

Wie du sicherlich schon einmal gehört hast, werden Emails mit dem Protokoll SMTP verschickt. SMTP unterstützt aber keinerlei Authentifizierung oder Verschlüsselung. Wenn also keine weiteren Maßnahmen getroffen werden, kann jeder mit deiner Absenderadresse E-Mails verschicken oder auch (insofern er an der richtigen Stelle im Netzwerk zuhören kann) deine E-Mails lesen. Du glaubst uns nicht? Dann benutz mal Google… In der Rechnernetze-Vorlesung von Herrn Mauve wird das Verfahren ebenfalls gezeigt und auch SMTP genauer erklärt. Diese beiden Probleme lassen sich durch PGP lösen. PGP steht dabei für Pretty Good Privacy und erlaubt das Signieren (also eine digitale Unterschrift) und Verschlüsseln von Daten, insbesondere also auch von Emails. Hierfür benötigt man jedoch Schlüssel bzw. Keys – und um diese dreht sich die ganze Party.

Wie funktioniert PGP?

PGP ist ein sogenanntes Public-Key Verfahren. Bei diesen Verfahren benötigt jeder Teilnehmer genau zwei Schlüssel: seinen öffentlichen und seinen privaten Schlüssel. Der öffentliche Schlüssel kann jeder Person bekannt sein, der private Schlüssel muss geheimgehalten werden. Das Tolle an Public-Key Verfahren ist, dass man Daten, welche mit dem öffentlichen Schlüssel verschlüsselt wurden, dann mit dem privaten entschlüsseln kann. Auch das Prüfen einer mit dem privaten Schlüssel erstellten Signatur funktioniert dann mit dem öffentlichen Schlüssel (in beiden Fällen funktioniert es umgekehrt auch, das ergibt nur keinen Sinn). Diese Beschreibung ist stark gekürzt, aber genauere Informationen dazu kannst Du sicherlich in den Kryptokomplexitätstheorie Vorlesungen von Herrn Rothe bekommen 😉

Was muss ich tun, um PGP zu benutzen?

Aus PGP wurde der offene Standard OpenPGP entwickelt und dieser wird schließlich durch GnuPG (GPG) umgesetzt. GnuPG gibt es unter anderem für Linux, Mac OS X und Windows. Zur einfachen Benutzung von PGP (für E-Mails) empfiehlt es sich, ein Plugin für sein E-Mail-Programm zu installieren, welches sowohl die Verwaltung der eigenen und fremden Schlüssel als auch das Signieren, Verifizieren, Ver- und Entschlüsseln von E-Mails erledigt. Außerdem brauchst du natürlich ein eigenes Schlüsselpaar (eine Schritt für Schritt Anleitung folgt weiter unten), um deine eigenen E-Mails zu signieren und die öffentlichen Schlüssel all derjenigen, denen du verschlüsselte E-Mails schicken möchtest.

Aber wofür ist denn nun die Party, und warum sollen Schlüssel unterschrieben werden?

Die Party hat genau genommen zwei Vorteile. Zum einen bekommt man auf einen Schlag eine ganze Menge öffentlicher Schlüssel und kann (bzw. sollte) verifizieren, dass diese Schlüssel auch demjenigen gehören, der behauptet, der Besitzer zu sein. Diese Möglichkeit einen Schlüssel zu bekommen, um sich sicher zu sein, dass er der richtigen Person gehört, besteht leider nicht immer. Daher werden die Schlüssel nicht nur ausgetauscht, sondern eben auch unterschrieben. Eine Unterschrift ist nichts anderes als eine mit Deinem Schlüssel erstellte Signatur eines anderen Schlüssels. Du bezeugst damit, dass Du geprüft hast (anhand von amtlichen Lichtbildausweisen), dass der Besitzer des Schlüssels wirklich der ist, für den er sich ausgibt. Durch diese Unterschriften wird das sogenannte Web of Trust gebildet. Im Allgemeinen nimmt man an, dass man glauben kann, dass jemand der Besitzer eines Schlüssels ist, wenn die Kette von einem selber zu der anderen Person maximal die Länge drei hat.

Beispiel: Unser Fachschaftsmaskottchen Knut möchte dem Physikmaskottchen Qwawak eine verschlüsselte E-Mail schicken. Leider hat Knut Qwawaks Schlüssel aber nicht. Der erste Schritt für Knut ist, den Schlüssel von einem öffentlichen Schlüsselserver herunterzuladen. Nun prüft er, wer Qwawaks Schlüssel unterschrieben hat. Nehmen wir an, Ratty hätte diesen Schlüssel unterschrieben. Leider kennt Knut auch Rattys Schlüssel nicht, wiederum prüft er, wer Rattys Schlüssel unterschrieben hat und stellt fest, dass Tigga diesen Schlüssel unterschrieben hat. Tiggas Schlüssel hat Knut selber überprüft und ist sich Tiggas Identität sicher. Aufgrund der Kette Knut – Tigga – Ratty – Qwawak vertraut Knut (in gewissen Maßen) nun dem Schlüssel von Qwawak und kann ihm eine verschlüsselte Email schicken. (Dieses Beispiel geht davon aus, dass sämtliche Fachschaftsstofftiere amtliche Lichtbildausweise haben.)

Wie erstelle ich einen PGP-Key (Schritt für Schritt)?

Mit Enigmail:

  1. Installiere dir GnuPG (unter Linux im Allgemeinen dabei, unter Windows siehe hier: http://gpg4win.de/)
  2. Installiere dir Thunderbird und Enigmail, denke daran Thunderbird anschließend neu zu starten.
  3. Sobald das geschehen ist, sollte in deinem Thunderbird-Menü ein Eintrag OpenPGP erscheinen. In diesem Menü klickst du auf „Schlüssel verwalten“.
  4. Es öffnet sich ein Fenster, welches vermutlich zum größten Teil leer ist. Klicke auf „Erzeugen“ → „Neues Schlüsselpaar“.
  5. Es öffnet sich erneut ein Fenster (siehe unten).


    Bei 1 Wählst du die E-Mail-Adresse aus, mit welcher du PGP nutzen möchtest (du kannst später weitere hinzufügen). Bei 2 solltest du eine Passphrase eingeben, damit dein privater Schlüssel nicht unverschlüsselt auf deiner Festplatte liegt. Bei 3 kannst du einen Kommentar zu deinem Schlüssel angeben, zum Beispiel was für eine E-Mail-Adresse das ist (Uni, Privat, Arbeit, …). Bei 4 kannst du angeben, wann dein Schlüssel ablaufen soll. Es ist natürlich immer möglich einen Schlüssel für ungültig zu erklären. Hierfür muss er aber als ungültig auf Schlüsselservern gespeichert sein. Damit er irgendwann auch gelöscht werden kann, benötigt er ein Ablaufdatum. Daher ist die Angabe eines solchen Datums sinnvoll, wenn auch nicht notwendig. Falls du auf den Reiter Erweitert klickst, kannst du dort die Art und die Schlüsselstärke einstellen – die vorgegebenen Werte (RSA, 2048) sollten ausreichen.
  6. Durch einen Klick auf „Schlüssel erstellen“ werden die Schlüssel dann erstellt. Dies kann einige Zeit dauern und in dieser Zeit solltest du aktiv etwas an deinem Rechner tun, damit der Zufallszahlengenerator genug Futter hat.
  7. Nachdem deine Schlüssel erstellt wurden, wirst du gefragt, ob du ein Widerrufszertifikat erzeugen möchtest. Mit diesem Zertifikat kannst Du dich gegenüber Schlüsselservern als Besitzer eines Schlüssels ausweisen und diesen zurückziehen (also ungültig machen). Dies solltest du machen, falls dein Schlüssel mal verloren geht (z.B. weil dein Laptop gestohlen wurde). Du solltest das Widerrufszertifikat nicht dort speichern wo der Schlüssel auch gespeichert ist. Ein (verschlüsselter) USB-Stick im Schrank ist zum Beispiel eine gute Lagerstätte.
  8. Du bist fertig. Wenn du nun auf „OpenPGP“ → „Schlüssel verwalten“ klickst, wirst du deinen eigenen (öffentlichen) Schlüssel sehen. Durch einen Rechtsklick auf deinen Schlüssel kannst Du nun noch verschiedene nützliche Dinge tun:
    • den Schlüssel auf einen Schlüsselserver hochladen (damit er auch von anderen gefunden werden kann)
    • den Schlüssel zurückziehen (ungültig machen)
    • ein Widerrufszertifikat erstellen
    • weitere E-Mail-Adressen hinzufügen (BenutzerIDs verwalten…)
    • den Schlüssel exportieren oder in die Zwischenablage kopieren
    • dir anzeigen lassen, wer deinen Schlüssel schon unterschrieben hat

    und einiges mehr. Probier ruhig mal rum (aber lösch ihn nicht :-)).

Linux, über die Konsole:

Man kann Schlüssel natürlich auch ohne grafische Tools erstellen. Zuerst muss ebenfalls GnuPG installiert werden. Zur Schlüsselerstellung verwendest du unter Linux einfach den Befehl:
gpg --gen-key
Dieser fragt dann alle von Dir benötigten Daten ab. Die Anmerkungen zu den Einstellungen gelten analog zu oben. Auch die ganzen Dinge die Du mit Deinem Key machen kannst gehen über die Konsole ebenfalls, dies zu erklären würde aber den Rahmen sprengen – man gpg hilft weiter.

Mac OS X:

Wenn Du Mac OS X benutzt folge bitte den Anweisungen auf https://www.gpgtools.org/.  Uns wurde berichtet, dass gpgtools gut funktioniert und auch viele (von Email unabhängige) weitere Funktionen rund um PGP bietet.

System

Folgender Ablauf ist für die Party vorgesehen:

  1. Du meldest dich über das unten stehende Formular an und schickst uns damit auch einen öffentlichen Schlüssel (Schlüssel entweder mittels Enigmail oder
    gpg --export --armor --export-options export-minimal <KeyID>
    exportieren). Dir wird dann die ID des hochgeladenen Schlüssels sowie sein Fingerprint angezeigt. Bitte prüfe diese Daten sofort und melde dich per E-Mail bei uns, falls sie falsch sind.
  2. Einen Tage vor der Party wird hier eine Datei mit allen Schlüsseldaten veröffentlicht. Lade diese bitte herunter und
    1. berechne  den SHA256-Hash der unveränderten Datei und schreibt diesen auf (z.B. mit sha256sum (Linux, OS X) oder dem hier (Windows)),
    2. prüfe nochmal, dass die Daten zu deinem Schlüssel korrekt sind und
    3. drucke die Datei aus (es ist wichtig, dass Du die Datei selber ausdruckst, damit wir Dich nicht betrügen können).
  3. Komm pünktlich zur Party und bringe den Ausdruck (wichtig!), den Hash (wichtig!), zwei Lichtbildausweise (z.B. Führerschein und Perso – auch wichtig!) und einen Stift (nicht ganz sooo wichtig) mit.
  4. Auf der Party wird einer von uns den Hash der Datei vorlesen. Stimmt der von dir berechnete Hash und der vorgelesene Hash nicht überein, so kannst du mit deinem Ausdruck leider nicht teilnehmen.
  5. Anschließend werden wir fragen ob alle Schlüsseldaten korrekt sind. Stimmen deine Daten nicht, so kannst du leider nicht teilnehmen. Sollte einer der Teilnehmer sagen, dass seine Schlüsseldaten nicht stimmen, so wird er von der Liste gestrichen.
  6. Der Spaß kann beginnen 😉

Falls du vergessen hast, uns deinen Schlüssel zu schicken, aber trotzdem mitmachen möchtest

… gehst du erstmal in mindestens n-1 von n Ecken eines Raumes (runde Räume zählen nicht, Räume mit weniger als zwei Ecken auch nicht) und schämst dich. Anschließend führst du die Schritte 2A und 2C durch. Danach kannst du sogenannte „Schnipsel“ drucken. Auf diesem Schnipsel sollten genau die gleichen Daten zu deinem Schlüssel stehen wie in unserer Datei. Also dein Name, die SchlüsselID, der Fingerprint, sowie alle BenutzerIDs, die dazugehören. Solche Schnipsel kannst du zum Beispiel auf http://keysheet.net/ erstellen. Diese Schnipsel bringst du dann zur Party mit und bringst sie unters Volk. Auch dafür solltest du zwei amtliche Lichtbildausweise dabei haben!

Was dann zuhause passiert

Erklären wir auf der Party und wird hier auch in Kürze beschrieben. Vom Prinzip her werden zuhause die Keys heruntergeladen, signiert und diese Signaturen an die Besitzer geschickt.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.