Sitzung: Jeden Freitag in der Vorlesungszeit ab 16 Uhr c. t. im MAR 0.005. In der vorlesungsfreien Zeit unregelmäßig (Jemensch da?). Macht mit!

Keysigning-Party 2005: Unterschied zwischen den Versionen

(Funktionsweise/Theorie)
(Funktionsweise/Theorie)
Zeile 10: Zeile 10:
  
 
=== Funktionsweise/Theorie ===
 
=== Funktionsweise/Theorie ===
<b>TODO: Beispiele prüfen und ergänzen...</b>
 
  
 
Bei PGP/GPG verden zwei grundsätzlich verschiedene Verschlüsselungsverfahren miteinander kombiniert, die <i>symmetrische</i> und die <i>asymetrische</i> Verschlüsselung. Das Ergebnis ist dann eine sogenannte <i>hybride</i> Verschlüsselung.
 
Bei PGP/GPG verden zwei grundsätzlich verschiedene Verschlüsselungsverfahren miteinander kombiniert, die <i>symmetrische</i> und die <i>asymetrische</i> Verschlüsselung. Das Ergebnis ist dann eine sogenannte <i>hybride</i> Verschlüsselung.

Version vom 25. Januar 2005, 18:20 Uhr

Wir planen demnächst eine PGP Keysigning Party durchzuführen. Diese Seite soll der Planung dieser Veranstaltung dienen und einige Informationen zu PGP, dem Prinzip des Web-of-Trust und dem Ablauf des Keysignings dienen.

Einführung

TODO

Problemstellung

  1. Ein Dokument X soll einem Geschäftspartner P zugestellt werden, ohne dass Fremde den Inhalt erkennen können.
  2. Die Geschäftsleitung möchte eine Anweisung X an die Mitarbeiter geben, wie in Zukunft in bestimmten Situationen gehandelt werden soll. Es muss sicher sein, dass die Geschäftsführer A und B die Absender sind und nicht der unzufriedene Mitarbeiter U.
  3. Man möchte der Überwachung nach der neuen TKÜV entgehen...?

Funktionsweise/Theorie

Bei PGP/GPG verden zwei grundsätzlich verschiedene Verschlüsselungsverfahren miteinander kombiniert, die symmetrische und die asymetrische Verschlüsselung. Das Ergebnis ist dann eine sogenannte hybride Verschlüsselung.

Bei der symmetrischen Verschlüsselung wird zum Verschlüsseln wie zum Entschlüsseln der selbe Schlüssel verwendet. Diese Verfahren sind sehr schnell und eignen sich sehr gut, um große Datenmengen zu verschlüsseln. Leider muss man dazu eine Möglichkeit finden, dem Empfänger neben den Daten auch den Schlüssel zukommen zu lassen, ohne dass andere ihn abfangen können. Beispiele sind AES, Blowfish. siehe auch Wikipediaeintrag

Bei der asymetrischen Verschlüsselung existieren zwei unterschiedliche Schlüssel, ein öffentlicher, mit dem Daten verschlüsselt werden können und ein privater, mit dem die Daten wieder entschlüsselt werden können. Über ein mathematisches Verfahren ist dabei sichergestellt, dass die Daten nur mit dem geheimen Schlüssel wieder entschlüsselt werden können. Der Vorteil liegt in der Möglichkeit, jedem den öffentlichen Schlüssel zukommen zu lassen, jedoch ist das Verfahren so rechenaufwändig, dass es zum Verschlüsseln großer Datenmengen nicht brauchbar ist. Beispiele: RSA, ElGamal. siehe auch Wikipediaeintrag

Beide Verfahren werden nun verbunden, so dass die Vorteile vereint werden können: Schnelligkeit beim Ver- und Entschlüsseln sowie Sicherheit bei der Schlüsselübergabe: Zunächst wird ein Zufälliger Session-key erzeugt, mit dem dann die geheimen Daten symetrisch verschlüsselt werden. Dieser Schlüssel wird nun mit dem öffentlichen Schlüssel des Empfängers asymetrisch verschlüsselt, und ihm zusammen mit den (verschlüsselten) Daten zugestellt. Der Empfänger entschlüsselt mit seinem geheimen Schlüssel den Session-Key und kann damit die eigentlichen Daten entschlüsseln.

PGP/GPG

Web of Trust

Oft ist es nicht möglich, allen Korrespondenzpartnern direkt zu begegnen... TODO


Key Signing Parties

TODO

Organisatorisches

TODO

Wann und wo findet die Keysigning Party statt?

Der Termin steht noch nicht fest, die Raumfrage wird entschieden, wenn die Anzahl der Teilnehmer fest steht. Bei wenig Teilnehmer können wir sie im FR 5046 durchführen.

Wer organisiert das ganze?

Was muss ich vor der Keysigning-Party machen?

  1. Erzeuge Dir ein PGP-Schlüsselpaar, wenn noch keins vorhanden ist (gpg --gen-key)
  2. Schicke Deinen öffentlichen Schlüssel an den PGP-Keyserver http://subkeys.pgp.net (gpg --keyserver subkeys.pgp.net --send-keys 0xEIGENE_KEYID) [optional, jeder bekommt ihn im Keyring von der Freitagsrunde]
  3. Schicke uns bis zum XX.XX.2005 eine Mail mit Deinem Schlüssel an [1] (gpg --armor --export 0xEIGENE_KEYID > EIGENE_KEYID.asc)
  4. Solltest Du den Termin verpasst haben, bereite für jeden Teilnehmer einen Papierstreifen vor, auf dem die Ausgabe von gpg --fingerprint --show-key 0xEIGENE_KEYID abgedruckt ist.
  5. Lade nach dem XX.XX.2005 + 7 Tage den Keyring aller eingesandten Schlüssel von www.freitagsrunde.de/keysigning/blah/ksp-fr05.asc sowie die Liste aller Teilnehmer mit Fingerprints von www.freitagsrunde.de/keysigning/blah/ksp-fr05.txt herunter.
  6. Drucke die Textdatei aus, z.B. Doppelseitig, 2 Seiten A5 pro Seite A4 (man a2ps)
  7. Bilde mit gpg --print-md sha1 ksp-fr05.txt und gpg --print-md md5 ksp-fr05.txt die Prüfsummen über die Teilnehmerliste und trage sie im Ausdruck gut lesbar ein.

Was muss ich zur Keysigning-Party mitbringen?

  • Geduld
  • noch mehr Geduld und Ruhe
  • einen (zuverlässigen) Stift
  • Den Ausdruck der Teilnehmerliste mit fingerprints und Prüfsummen
  • (im Winter) warme Jacke und Hose...

Wie läuft die Keysigning Party ab?

Zu Beginn der Party werden als Erstes die MD5 und SHA1 Prüfsummen über die Ausgedruckten Teilnehmerlisten verglichen. Dazu werden die Prüfsummen vom Organisator etwa an eine Tafel geschrieben. Stimmen die selbst generierten Prüfsummen mit denen der anderen überein, kann man davon ausgehen, dass alle Teilnhmer eine aktuelle Liste als Grundlage benutzen.

Danach (etwa 10 Minuten nach dem offiziellen Beginn...) wird begonnen, laut und vernehmlich alle Anwesenden und AnwesendInnen zu fragen, ob die Fingerprints Ihrer Schlüssel auf dem Ausdruck korrekt sind. Jeder markiert dann auf seinem Ausdruck den Eintrag 'Fingerprint OK'. Dazu ist allgemein Ruhe und Konzentration bei allen gefordert.

Ist dieses Procedere abgeschlossen, stellen sich alle in der Reihenfolge des Ausdrucks in eine Lange Reihe auf. [sollte man das im Freien vorhaben ist bitte auf passendes Wetter und genügend Licht zu achten...]

Nun geht jeweils der/die Erste der Reihe nacheinander an allen TeilnehmerInnen vorbei und zeigt ein Ausweisdokument vor. Jeder Teilnehmer markiert bei Übereinstimmung das Feld 'ID OK' auf seinem Ausdruck. Danach stellt sich der/diejenige an das Ende der Schlange um selbst die ID der anderen zu überprüfen.

Hat jemand versäumt, den Schlüssel rechtzeitig einzuschicken stellt er sich zu Beginn an das Ende der Schlange und hält für jeden Teilnehmer einen Schnipsel Papier mit einem Ausdruck von 'gpg --fingerprint --list-key KEY_ID' bereit. Diesen gibt er an alle weiter, wenn er an der Reihe ist die Schlange abzulaufen, und zeigt parallel dazu ein Ausweisdokument vor.

Es empfiehlt sich dringend danach alle Key-Ids auf dem Ausdruck durchzustreichen, bei denen nicht beide Felder abgehakt sind!

Was muss ich nach der Keysigning-Party machen?

Eigentlich ganz einfach:
Alle Schlüssel unterschreiben, bei denen Du die ID und der Inhaber den Fingerprint des Schlüssels geprüft hat.
Es gibt aber (natürlich) ein paar Fallstricke:

  • Du übersiehst, dass Du die ID nicht geprüft hast, weil nach 1 Stunde Unterschreiben die Aufmerksamkeit doch nachlässt. Also am besten mit wachem Geiste alle Schlüssel fett durchstreichen, bei denen eines der Felder leer ist, oder bessser mit Textmarker diejenigen markieren, bei denen beide Felder angekreuzt sind.
  • Jemand möchte nicht, dass sein Schlüssel auf einen Keyserver hochgeladen wird (er befürchtet z.B. schlicht SPAM).
  • Du signierst einen Schlüssel mit zugehöriger Emailadresse, bei der zwar der Name (z.B. Peter Müller) stimmt, die Emailadresse (Peter_Mueller@fbi.com) jedoch nicht.
  • Der Schlüssel hat mehrere Unter-IDs mit unterschiedlichen Emailadressen
  • Es sind plötzlich 200 Teilnehmer geworden und Du willst nicht 2 Wochen lang nur Schlüssel signieren.


Für einige dieser Probleme gibt es Lösungen in Form von Shellscripten.
Diese funktionieren etwa so: Jeder Schlüssel wird zerlegt, so dass die einzelnen User-Ids getrennt vorliegen. Da script signiert jede der User-Ids einzeln und schickt den Signierten Schlüssel in Verschlüsselter Form an die angegebene Emailadresse.

Damit ist sichergestellt das die Emailadressen alle funktionieren, der Schlüssel nur vom Inhaber entschlüsselt werden kann und dieser selbst entscheiden kann ob der den Schlüssel hochladen möchte. Importiert der Empfänger den Schlüssel dann in gpg, werden die Signaturen wieder zusammengeführt.

Aber vorsicht: nicht blind den gesamten Keyring unterschreiben!

Durch die Verwendung von agpg unter Linux muss man das Kennwort übrigens nur einmal eintippen, auch wenn dies für Paranoiker nicht geeignet ist, da der Schlüssel dann lange Zeit unverschlüsselt im RAM liegt. (Aber ob 200 mal Eintippen sicherheitstechnisch besser ist, sei dahingestellt)

Weblinks

Keyserver

für gpg:

  • keyserver hkp://subkeys.pgp.net (verschiedene Hosts per Loadbalancer)

Software

Informationen zu Keysigning Partys