PGP - Pretty Good Privacy (OpenPGP)
PGP ist ein Verschlüsselungsstandard mit einem Verschlüsselungskonzept, dass von Phil Zimmermann 1991 erfunden wurde. Daraus hat sich eine kommerzielle Variante entwickelt, die mehrmals den Eigentümer gewechselt hat und inzwischen keine Rolle mehr spielt. Zu groß ist das Misstrauen, dass sich hier Hintertüren und Sicherheitslücken bei einem Eigentümerwechsel eingeschlichen haben.
Seit 1998 gibt es OpenPGP (RFC 4880), das auf PGP mit der Version 5 basiert. Wenn man von PGP spricht, dann meint man damit im Prinzip OpenPGP. Um Verwechslungen zwischen dem ursprünglichen PGP und OpenPGP zu vermeiden, verwendet man in Fachkreisen gerne auch die Bezeichnung GPG , wobei es sich dabei um die Software-Implementierung GNU Privacy Guard (GnuPG) von OpenPGP handelt.
PGP basiert auf einem gegenseitigen Vertrauensmodell zwischen Menschen, die ihren öffentlichen Schlüssel gegenseitig austauschen und die Identität und Vertrauenswürdigkeit bestätigen.
PGP bzw. OpenPGP ist ein Verschlüsselungsstandard für E-Mails, der wohl am Besten funktioniert. Allerdings erfordert er ein wenig Einarbeitung und muss von den jeweiligen Kommunikationspartnern aktiv genutzt werden. Leider ist PGP nur wenig verbreitet.
Software: GNU Privacy Guard, Plugins und Erweiterungen
Seit 1999 gibt es für OpenPGP die quelloffene Software mit dem Namen GNU Privacy Guard, kurz GPG oder GnuPG, die für alle gängigen Betriebssysteme verfügbar ist. GnuPG basiert auf OpenPGP und ist die Nachprogrammierung (von Werner Koch) von PGP in Form einer freien Software. OpenPGP ist ein offener Standard, den die IETF als RFC herausgegeben hat.
Weil GnuPG nur per Kommandozeile zu bedienen ist, gibt es für die verschiedenen Betriebssysteme grafische Benutzeroberflächen, die die Bedienung vereinfachen.
- Windows: GNU Privacy Guard for Windows, Gpg4win
- Mac OS: GPGTools
- Linux: GnuPG ist in der Regel in jeder Linux-Distribution enthalten.
GnuPG beschränkt es sich im Wesentlichen auf den Import von Schlüsseln und die Eingabe der Passphrase. Für die Integration in den E-Mail-Client bedarf es spezieller Erweiterungen, die nachinstalliert werden müssen. Die PGP bzw. GPG-Erweiterungen für die verschiedenen E-Mail-Clients setzen voraus, dass GnuPG installiert ist. Manchmal bringt GnuPG die Erweiterung für den E-Mail-Client mit. Aber nicht immer.
- Microsoft Outlook: Plugin GpgOL (Gpg4win) oder Outlook Privacy Plugin
- Apple Mail: GPG for Mail (GPGTools)
- Thunderbird: Add-on Enigmail
Auf mobilen Endgeräten ist die Verschlüsselung von E-Mails schwierig. Insbesondere was die Sicherheit angeht. Bei einem Smartphone, dass man immer mit sich herum trägt, besteht das Problem, dass der geheime Schlüssel im Klartext gespeichert ist. Deshalb muss ein Smartphone so gesichert sein, dass keine Zugriffsmöglichkeit besteht, wenn es verloren geht. Es ist also zumindest ein Zugangsschutz per Passwort oder PIN erforderlich.
Dann ist da noch die Frage, wie man den geheimen Schlüssel ins Gerät importiert. Auf alle Fälle nicht im Klartext per E-Mail. Auch nicht über Cloud-Anwendungen. Besser per Import über einen PC.
- iOS: nicht verfügbar
- Android: Plugin AndroidPG (APG) mit dem Mailer K9 oder Kaiten, OpenPGP Keychain mit K9
Alle Benutzeroberflächen für GnuPG unterstützen leider nur eine Teilmenge der Funktionen, die GnuPG tatsächlich kann. Das Ver- und Entschlüsseln von E-Mails ist dabei überall integriert. Das Schlüsselmanagement, was ebenso wichtiger ist, ist meist sehr intransparent umgesetzt.
Funktionsweise von PGP
PGP bzw. OpenPGP ist ein Verschlüsselungskonzept, bei dem sich die Teilnehmer gegenseitig beglaubigen. Dabei wird auf eine zentrale Instanz verzichtet, die kompromittierbar wäre. Es gibt nur einige Keyserver, auf denen der öffentliche Schlüssel abgelegt ist.
Zwei der Hauptanwendungen von PGP sind die Signierung und die Verschlüsselung von E-Mails. Für die Verschlüsselung bedarf es einem Schlüsselpaar aus öffentlichen und privaten Schlüssel. Der private Schlüssel bleibt geheim. Der öffentliche Schlüssel wird veröffentlicht und dient zum Verschlüsseln der E-Mails. Die E-Mail kann dann nur vom Besitzer des privaten Schlüssels entschlüsselt werden.
Gleichzeitig dient der öffentliche Schlüssel als Signatur, mit der man die Echtheit einer E-Mail bestätigen kann. Denn es ist sinnlos, eine verschlüsselte E-Mail zu bekommen, wenn man nicht sicherstellen kann, dass sie tatsächlich vom angegebenen Absender stammt.
Deshalb muss der öffentliche Schlüssel von anderen PGP-Nutzern beglaubigt werden. Dabei beglaubigen die Teilnehmer die öffentlichen Schlüssel von ihnen bekannten Personen mit ihrem privaten Schlüssel. Gleichzeitig wird die Vertrauenswürdigkeit der Person-Schlüssel-Verbindung definiert.
Schlüsselpaar, Fingerabdruck und Schlüssel-ID
Jeder PGP-Nutzer besitzt ein Schlüsselpaar. Das Schlüsselpaar besteht aus dem öffentlichen (public key) und privaten Schlüssel (private key). Den öffentlichen Schlüssel bekommen die Teilnehmer, von denen man verschlüsselte E-Mails empfangen will. Der private Schlüssel bleibt geheim. Damit kann man die E-Mails, die mit dem eigenen öffentlichen Schlüssel verschlüsselt wurden, wieder entschlüsseln.
Jedes Schlüsselpaar hat zusätzlich eine Schlüssel-ID und einen digitalen Fingerabdruck (Fingerprint). Die Schlüssel-ID ist nicht zwangsläufig einmalig. Sie ist es nur zusammen mit dem Fingerabdruck. Anhand des Fingerabdrucks kann jeder einen öffentlichen Schlüssel auf Echtheit prüfen. Der Fingerabdruck ist eine Prüfsumme der Schlüsseldaten in hexadezimaler Form.
Signatur
Der öffentliche Schlüssel hat noch eine zweite Funktion, das Signieren. Damit lassen sich E-Mails digital unterschreiben, um ihre Echtheit zu beglaubigen.
Dabei erstellt der E-Mail-Client mit der PGP-Erweiterung über den Inhalt der E-Mail eine Prüfsumme (Hash-Wert). Abschließend zertifiziert der Nutzer diesen Hash mit seinem geheimen Schlüssel.
Der E-Mail-Client beim Empfänger erzeugt beim Empfang ebenfalls einen Hash, entschlüsselt den vom Sender erstellen Hash mit dessen öffentlichen Schlüssel und vergleicht beide Hash-Werte. Sind sie gleich, dann wurde der Inhalt der Mail beim Versand nicht manipuliert. Der Sender der Mail ist also tatsächlich der Absender.
Zusammen mit der E-Mail-Adresse kann der Empfänger von E-Mails prüfen, ob eine E-Mail tatsächlich von der Person kam, die sie verschickt hat. Die Verschlüsselung wäre wertlos, wenn nicht sichergestellt ist, dass mit der richtigen Person kommuniziert wird. Ist die Identität nicht sichergestellt, dann man sich die Verschlüsselung sparen.
Web of Trust
Während bei SSL/TLS oder S/MIME eine zentrale Instanz, eine Zertifizierungsstelle (Certification Authority, CA) die Vertrauenswürdigkeit eines Schlüssels bestätigt, beruht PGP auf den gegenseitigen Vertrauensverhältnisse der Nutzer untereinander. Dazu muss jeder PGP-Nutzer die öffentlichen Schlüssel der von ihm vertrauenswürdigen Personen mit seinem privaten Schlüssel beglaubigen. Das bedeutet, der PGP-Nutzer bestätigt, dass der öffentliche Schlüssel garantiert der Person gehört, die den Schlüssel veröffentlicht hat.
Die Prüfung kann dabei durch ein telefonisches Erfragen des Fingerabdrucks oder durch Ausweiskontrolle erfolgen. Ein selbst geprüfter Schlüssel ist zum Beispiel ein "direct trust". Zusätzlich lässt sich die Vertrauenswürdigkeit einer Person festlegen.
Der Vorgang der Beglaubigung öffentlicher Schlüssel anderer Personen scheint auf den ersten Blick umständlich zu sein. Doch durch die gegenseitige Beglaubigung entsteht ein Netz des gegenseitigen Vertrauens. Man bezeichnet das als "Web of Trust (WoT)". Während man auf diese Weise immer vertrauenswürdiger wird, werden die anderen ebenfalls vertrauenswürdiger. Solange eben, bis das Vertrauen entzogen wird.
Dieses Netz hilft bei der Bewertung einer unbekannten Person mit einem unbekannten Schlüssel. Dabei kommt man ohne zentrale Instanz aus. Die Einschätzung erfolgt dabei automatisch im Hintergrund. Die Software ermittelt eine sogenannte "Key-Legitimacy" aus den Daten von Personen, die in Verbindung mit dieser Person-Schlüssel-Kombination stehen.
Damit das Vertrauensnetz funktioniert, müssen die Nutzer ihr Vertrauensnetz kontrollieren, pflegen und laufend erweitern.
Der Aufbau eines eigenen Vertrauensnetzes ist ungefähr so aufwendig, wie das Aufbauen eines Kontaktenetzwerks in Xing oder Facebook. In der Regel ist es aber so, dass es bei weitem nicht so viele Personen gibt, die über einen eigenen PGP-Schlüssel verfügen. Deshalb gibt es in größeren Städten Cryptopartys, bei denen sich Einsteiger Hilfe von Profis bei der E-Mail-Verschlüsselung geben lassen können und gleichzeitig gegenseitig den öffentlichen Schlüssel beglaubigen. Auf diese Weise baut man sich relativ schnell einen eigenen Web of Trust und wird gleichzeitig ein Teil anderer Vertrauensnetze.
Keyserver
Keyserver speichern und veröffentlichen öffentliche Schlüssel und die zugehörigen Beglaubigungen. Die Keyserver sind miteinander vernetzt und tauschen ihre Daten aus. Die meisten Keyserver basieren auf der Software "Synchronizing Key Server (SKS)".
Den eigenen öffentlichen Schlüssel auf einen Keyserver hochzuladen ist die typische Vorgehensweise, um ihn zu veröffentlichen. Neben dem eigenen Schlüssel lädt man auch die Beglaubigungen fremder Schlüssel hoch und lädt sich von dort die Beglaubigungen und Widerrufe der fremden Schlüssel herunter, von Personen mit denen man eine verschlüsselte Kommunikation pflegt. Man bezeichnet die eigene Sammlung von öffentlichen Schlüsseln als "public keyring", die der Nutzer regelmäßig mit einem Keyserver synchronisieren bzw. aktualisieren sollte.
Bis alle Keyserver die Änderungen übernommen haben, kann es einen Tag dauern. Bis alle befreundeten Kommunikationspartner die eigenen Änderungen übernommen haben, kann es mehrere Tage dauern.
Wie sicher ist PGP / OpenPGP / GnuPG?
Den Inhalt einer E-Mail verschlüsseln PGP bzw. OpenPGP/GnuPG wirksam. Aber nicht die Metadaten, wie Sender, Empfänger, Betreff, Datum, Zeit, Größe oder IP-Adresse. Das die Übertragung von E-Mails generell verschlüsselt wird wäre wünschenswert. Dann bleibt einem Angreifer nichts anderes übrig, einen Trojaner auf den Rechner zu spielen. Und in dem Moment, in dem die E-Mail geöffnet wird, wäre sie lesbar. Das ist allerdings ein schwer ausführbares Szenario.
Bei PGP besteht eher die Schwierigkeit auf der Nutzerseite. Es fängt damit an, dass sich der Nutzer um das Schlüsselmanagement kümmern und sich ein Web of Trust aufbauen muss. Wer Social Networks wie Facebook und Xing nutzt, der wird keine Schwierigkeiten haben das Trust-Modell zu verstehen und zu leben. Ganz anders sieht es für den Normalanwender aus. Für den ist das nicht so einfach zu verstehen.
Das Hochladen des eigenen öffentlichen Schlüssels auf einen Keyserver hat zur Folge, dass man dadurch sein soziales Netzwerk öffentlich zugänglich macht. PGP legt die Kontakte offen, die sich gegenseitig als vertrauenswürdig eingestuft haben. Wer Facebook und Xing benutzt macht im Prinzip das gleiche.
Im Prinzip ist PGP nur so sicher, wie die einzelnen Nutzer in der Lage sind ihren privaten Schlüssel und das dazugehörige Passwort geheimzuhalten. Die Verschlüsselung kann nur dann als sicher gelten, wenn der Besitzer des privaten Schlüssels jederzeit sicherstellen kann, dass niemand anderes in den Besitz des privaten Schlüssels und des dazugehörigen Passworts gelangt ist.
Alle Security-Experten sind sich einige, dass PGP sicher genug ist, so lange der verwendete Schlüssel lang genug ist. Dann ist ist das Knacken verschlüsselter Nachrichten in der Praxis noch zu aufwendig. Sogar Edward Snowden vertraut seine Kommunikation mit Journalisten der PGP-Verschlüsselung an.