PGP-Schlüssel

PGP ist eine Abkürzung für "pretty good privacy", auf deutsch etwa "ganz gute Vertraulichkeit". Es ist mittlerweile zu einem Sammelbegriff für alles geworden, was in irgend einer Form mit den Formaten von Schlüsseln, Nachrichten und Unterschriften kompatibel ist, das Phil Zimmerman mit seinem Ur-PGP vor über 20 Jahren begründet hat, als er beschloß, sich nicht mehr länger der Gängelei der amerikanischen Geheimdienste auszusetzen, was die Möglichkeit der Schaffung eines Standards für verschlüsselte E-Mail-Übermittlung betraf.

PGP basiert auf verschiedenen Algorithmen, denen eines gemeinsam ist: Zum Ver- und Entschlüsseln von Nachrichten bedarf es zweier Textfolgen (Schlüsselteile), von denen eine öffentlich und die andere privat ist. Den privaten Schlüsselteil kenne nur ich, den öffentlichen Schlüsselteil dagegen verschiedene Schlüsselserver im Internet, auf denen man nach meinem Schlüssel suchen kann. Die öffentlichen Teile unterliegen keinerlei Schutz, hier muß ein Anwender nur davon ausgehen können, daß diese Schlüssel wirklich zu meinem privaten Schlüssel passen.

Meine Schlüssel

Den öffentlichen Teil meiner PGP-Schlüssel findest Du unter den folgenden Links:

öffentlicher Teil meines DH/DSS-Schlüsselsatzes (ohne Bild exportiert, auch von älteren Versionen lesbar)

öffentlicher Teil meines DH/DSS-Schlüsselsatzes (komplett, erfordert Version 6 von PGP)

(Dieser Teil des Schlüssels kann dazu dienen, entweder E-Mails an mich zu verschlüsseln oder aber die Echtheit einer von mir signierten Nachricht damit zu überprüfen.)

Achtung: Da prinzipiell jeder Rechner gehackt werden kann, ist es nicht auszuschließen, daß diese Schlüssel nicht authentisch sind. Bevor jemand einem dieser Schlüssel traut (d.h., er verläßt sich darauf, daß der Schlüssel wirklich zu meinem privaten Schlüssel paßt), sollte er auf jeden Fall vorher mit mir den "Fingerprint" (das ist eine Art digitaler Fingerabdruck meines Schlüssels) vergleichen (Am Telefon oder möglicherweise auch mit dem Fingerprint auf meiner Visitenkarte). Nur wenn diese Signatur übereinstimmt, ist mit großer Wahrscheinlichkeit davon auszugehen, daß der Schlüssel demjenigen entspricht, den ich generiert habe.

Warum sollte man E-Mails verschlüsseln?

Nun, ganz einfach: E-Mails wandern gewissermaßen "nackt", ohne schützenden Briefumschlag, durch's Internet. Jeder Rechner, den die Mail auf ihrem Weg zwischen Absender und Empfänger passiert, kann die Nachricht zwischenspeichern, auf Schlüsselwörter überprüfen, an den Firmenchef weiterleiten, dem FBI Meldung machen, daß in der letzten Mail vom Skiurlaub von "Schnee" die Rede war und sonst auch alles mögliche damit anstellen. Die Verschlüsselung von PGP kann man sich gewissermaßen als "Briefumschlag" um die E-Mail herum denken. Und das besondere: Dieser Briefumschlag kann nicht von jemand x-beliebigem geöffnet werden: Er kann nur vom Inhaber des Schlüssels geöffnet werden. Diese Sicherheit ist deswegen nötig, weil man es einer elektronischen, verschlüsselten Nachricht nicht ansieht, ob sie schon mal dechiffriert (sprich: der Briefumschlag geöffnet) wurde.

Als zweite Funktion ermöglicht PGP es, E-Mails zu signieren. Dies kann man sich wie eine elektronische Unterschrift vorstellen: Sie wird mit Hilfe des privaten, nicht-öffentlichen Teil des Schlüssels aus der Nachricht erstellt und in Form eines Textblocks an die Nachricht angehängt. Mit Hilfe des öffentlichen Teils des Schlüssels kann nun jeder überprüfen, ob die Nachricht auch wirklich von mir ist.

Wie sicher ist PGP?

Das hängt davon ab, ob sich in Zukunft einen Algorithmus für den "diskreter Logarithmus" findet, mit dem der Code von ca. 80% aller Verschlüsselungsalgorithmen geknackt werden könnte - alle, die irgendwie auf den Eigenschaften von großen Primzahlen und ihren Produkten aufbauen. Es gibt aber ernstzunehmende Vermutungen, daß ein solcher Algorithmus nicht existiert. Mit "brute Force" (alle möglichen Schlüssel durchprobieren) dauert es (je nach verwendetem Algorithmus) zwischen 2 Stunden und mehreren Tagen auf einem "normalen" PC, einen 40 Bit großen Schlüssel zu knacken. Pro Bit Schlüssellänge verdoppelt sich grob gesagt bei einer solchen Art des Angriffs der Rechenaufwand. Und PGP bietet Schlüssellängen von bis zu 4096 Bit. Es kommt eine ziemlich große Zahl heraus, und i.A. rechnet man damit, daß auch die besten Geheimdienste der Erde einen 512 Bit breiten Schlüssel bis auf absehbare Zeit noch nicht knacken können (zumindest nicht innerhalb von Zeiten, in denen die darin enthaltene Information von Wert sein könnte). Es sei denn - es sind andere Informationen über den Schlüssel verfügbar, die die riesige Zahl von Möglichkeiten auf ein Bruchteil einschränken.

Wo bekomme ich PGP her?

Für privaten Gebrauch ist PGP kostenlos, lediglich bei kommerzieller Anwendung muß eine Lizenz erworben werden. Downloaden kann man es bei www.pgpi.com. Nachteilig ist nur, daß bei den freien Versionen ab ca. 2003 keine Plugins für die beliebten eMail-Programme Outlook Express und Outlook dabei sind. Verschiedene PGP-Versionen liegen den unterschiedlichsten Linux-Distributionen bei. Eine gute Implementierung des freien "GPG" für Windows gibt es unter www.gpg4win.com, diese enthält auch ein Plug-In für Outlook 2003, das es ermöglicht, komfortabel verschlüsselte eMails zu verschicken und empfangene verschlüsselte eMails zu entschlüsseln.

Eine zu PGP kompatible freie Verschlüsselungssoftware ist GnuPG, das komplett Open Source ist. Dazu muß man sagen, daß Phil Zimmerman eine beträchtliche Zeit lang auch den Quelltext seiner PGP-Versionen veröffentlichte, einfach, weil man anders kaum den Nachweis erbringen kann, daß die Verschlüsselungssoftware weder eine Hintertür noch ein echtes Sicherheitsloch hat. Ab der Version 5 war dem zunächst anders, entsprechend setzen heute noch viele Puristen die letzte Version mit öffentlichem Quelltext, nämlich 2.6.2 (mittlerweile gibt es auch zu PGP 6.8 den Quelltext), ein. GnuPG ist nun ein Ansatz, der auf freien Quellen aufbaut und die Algorithmen der neueren PGP-Versionen auch in einer Verschlüsselungssoftware einsetzt, die auf freien und öffentlich zugänglichen Quelltexten basiert. GnuPG kann man sich vom Server der GNU Organisation unter www.gnu.org downloaden

Warum soll ich den privaten Key mit einer Passphrase schützen?

PGP unterscheidet ja zwischen einem "privaten" Key zum Entschlüsseln und Signieren von Nachrichten und einem "öffentlichen" zum Verschlüsseln und Überprüfen von Nachrichten. PGP empfiehlt aber auch, den privaten Schlüssel mit einer "Passphrase" zu schützen.

Dieser Schutz mit einer Passphrase entspricht einer nochmaligen Verschlüsselung. Hintergrund ist, daß der private Schlüssel in aller Regel nicht so privat ist, wie man sich das immer denkt. Man hat ihn mindestens auf seinem privaten Rechner auf der Festplatte, so daß er z.B. bei einem Verkauf des Rechners von einer anderen Person lesbar wäre, falls man vergißt, die Platte zu löschen. Geht die HDD kaputt, dann hat man oftmals gar keine Möglichkeit, die Daten zu löschen, bevor die Platte zum Service geht. Istalliert man die Keys auf einem Firmenrechner, dann hat der Administrator oft ungehinderten Zugang zu den Daten. Daher ist es sinnvoll, einen der beiden Schlüsselteile des PGP-Schlüssels mit einem Paßwort zu schützen, das kann nur der private Schlüssel sein (der öffentliche darf ja nicht geschützt werden, sonst wäre man nur noch von Personen erreichbar, die das Kennwort des öffentlichen Schlüssels kennen).

Bei der Auswahl des Paßwortes sollte man sich nicht allzu leichte Paßwöter wählen. Ein gutes Paßwort für PGP-Schlüssel ist ca. 20 oder mehr Zeichen lang und besteht aus Buchstaben in Groß- und Kleinschreibung, Sonderzeichen und Ziffern. Damit man sich ein solches Paßwort überhaupt merken kann, gibt es verschiedene Hilfsmittel, wie man Wörter z.B. aus einem Wörterbuch so verfremden kann, daß sie mit reinen "Wörterbuchattacken" nicht mehr geknackt werden können, aber auch überhaupt noch zu merken sind.

Nimmt man beispielsweise das Wort "Honigtau", dann ist das kein gutes Paßwort. Fügt man jedoch an bestimmten Stellen Zifferngruppen ein und Sonderzeichen und kehrt einen Teil des Wortes um, dann kann man so etwas basteln:

Ho1Nig2Aut3

Das ist jetzt zwar noch kein Paßwort, das alle oben genannten Bedingungen entspricht, aber es zeigt, wie man sich leicht zu merkende und doch schwierig zu knackende Paßwörter basteln kann.

Der Grund, warum man ein solches und kein anderes Paßwort verwenden kann ist einfach zu nennen:

  1. Der Algorithmus für die Passphrase des Secret Key ist bekannt

  2. Es ist relativ schnell durchzuführen, ein Paßwort durchzurechnen und zu schauen, ob der Key im Klartext vorliegt.

Entsprechend muß man sich bewußt sein, daß die Wahrscheinlichkeit, den eigenen Key zu erraten bei weil weniger als 1: 10^12 liegen sollte. Das schafft man nicht, indem man triviale Kennwörter wie "Bello" verwendet. Solche Schlüssel lassen sich durch relativ einfaches Ausprobieren mittels sogenannter "Wörterbuchattacken" einfach ausspähen.