PGP
PGP steht für Pretty Good Privacy und ist eine Verschlüsselungs- und Signierungssoftware für E-Mails und andere Daten. Von dieser Software wurde der offene Standard OpenPGP abgeleitet. Das asymmetrische Verschlüsselungsverfahren erlaubt eine sichere (d.h. vertrauliche und integritätsgesicherte) Übertragung der Daten. Eine bekannte Implementierung ist das Open-Source-Projekt GnuPG (Gnu Privacy Guard). GnuPG unterstützt auch die Verwendung von Smartcards sowie die Verwendung von OpenPGP-Schlüsseln für SSH.
Funktionsweise
GnuPG erzeugt ein Schlüsselpaar, dessen einer Teil öffentlich und der andere privat (geheim) ist. Der öffentliche Schlüssel ist dazu gedacht, weitergegeben zu werden, und ermöglicht es Anderen, Daten für den Schlüsselbesitzer zu verschlüsseln und Signaturen des Schlüsselbesitzers zu prüfen. Die so verschlüsselten Daten können nur dann entschlüsselt werden, wenn man im Besitz des dazugehörigen privaten Schlüssels (und der zugehörigen Passphrase) ist.
Signieren funktioniert genau entgegengesetzt: Mit dem eigenen privaten Schlüssel kann man Daten (z.B. E-Mails) signieren, so dass Andere, die den zugehörigen öffentlichen Schlüssel haben, die Signatur prüfen können. Wie bei der Entschlüsselung ist es so, dass es ohne den privaten Schlüssel unmöglich ist, diese Signatur zu erzeugen.
Verschlüsselt werden jedoch immer nur die Daten selbst. Eine Verschleierung des Ziels und der Quelle ist mit The Onion Router (Tor) möglich. Mit Tricks ist es zudem möglich, den Empfänger eines verschlüsselten Datenpakets unkenntlich zu machen (der Empfänger muss dann alle seine privaten Schlüssel ausprobieren, um herauszufinden, ob einer der zugehörigen öffentlichen Schlüssel der Adressat ist).
Installation & Schlüsselerzeugung
Zunächst benötigt man den GnuPG, den man hier herunterlanden kann. Allerdings haben alle(?) Linux-Distributionen GnuPG in ihrem Standard-Installationsumfang, weil damit die Integrität der Pakete gesichert wird. Unter "Binärdateien" finden Windows Benutzer die richtigen Dateien. Sinnvoller ist für Windows-Benutzer allerdings die Installation von Gpg4win, das nicht nur ein grafisches Frontend (mit Integration in den Windows Explorer) ist, sondern auch die Kommandozeilenversion enthält.
Nach der Installation kann man unter Linux oder auf der Windows Kommandozeile mit
gpg --gen-key # oder, für die Freischaltung der spannenden Optionen gpg --expert --gen-key
ein neues Schlüsselpaar erzeugen; vor diesem Aufruf sollte man allerdings die gpg-Konfigurationsdatei überprüft bzw. bearbeitet haben. Weniger abschreckend ist die Schlüsselerzeugung mit einem der GUIs (auch da: vorher Konfigurationsdatei prüfen!). Für Mac OS X bieten sich die GPGTools an. Bei der Schlüsselerzeugung sind verschiedene Einstellungen vorzunehmen: die Länge des Schlüssels; Aufteilung in Haupt- und Unterschlüssel; der jeweilige Typ der einzelnen Schlüssel(komponenten); die Gültigkeitsdauer; und es besteht die Möglichkeit, präventiv ein Widerufszertifikat für das Schlüsselpaar zu erstellen.
Qualität der Schlüsselerzeugung
Viele Entscheidungen bei der Schlüsselerzeugung beeinflussen das Sicherheitsniveau, die Verwendbarkeit und die Lebensdauer des Schlüssels in einer Weise, die sich später nicht oder nur schwer korrigieren lässt. Es ist deshalb leider so, dass schon bei der Schlüsselerzeugung relativ viel Know-How vorhanden sein sollte. Man braucht sich das natürlich nicht selber anzueignen, man kann sich auch von kompetenten, vertrauenswürdigen Leuten helfen lassen. Empfehlenswert ist, sich vorab zumindest die Unterschiede zwischen guten und schlechten Schlüsseln zu vergegenwärtigen. Auch ohne viel Fachwissen kann man hochwertige Schlüssel erzeugen, indem man (nach Berücksichtigung der oben genannten Qualitätsmaßnahmen) in einer sicheren Umgebung dieses Schlüsselerzeugungsscript ausführt. Grundsätzlich sollte man sich aber von jemandem mit Ahnung dabei helfen lassen, wenn das praktikabel ist (Cryptopartys, OpenPGP-Schulungen).
Für das E-Mail-Programm Mozilla Thunderbird gibt es die OpenPGP-Erweiterung Enigmail. Diese erlaubt das Verschlüsseln und Signieren von E-Mails und deren Anhängen (mit PGP/Inline und PGP/MIME). Genauso ermöglicht sie die Entschlüsselung und Überprüfung empfangener E-Mails. Für letzteres wird der öffentliche Schlüssel des Senders benötigt. Voraussetzung für die Nutzung von Enigmail ist jedoch ein installierter GnuPG.
Nahezu alle (für Linux verfügbaren) Open-source-Mailprogramme unterstützen OpenPGP direkt. Apple Mail ist problematisch und kann nach größeren Versionssprüngen meist eine Weile nicht dafür verwendet werden (bis die GPGTools angepasst wurden). OpenPGP mit Outlook funktioniert sogar mit (kommerziellen) Add-ons eher schlecht als recht.
Mit Webmail lässt sich OpenPGP nur mit Einschränkungen und eher unbequem (PGP/Inline) nutzen.
(Nicht)Abstreitbarkeit
Die (abschaltbare) Signaturfunktion von OpenPGP muss nicht immer vorteilhaft sein: Aussagen, die mittels PGP versendet werden, könnten möglicherweise gegen einen verwendet werden. Das ist kein grundsätzliches Problem, denn der Sinn einer Signatur ist ja gerade, so verlässlich zu sein, dass man den Absender darauf festnageln kann. Falls dies fallweise ein Problem ist, kann OTR hilfreich sein. Auch die XMPP-Version von OpenPGP arbeitet ohne Signierung der Daten.
Metadaten
Ein Problem von PGP/Mail ist, dass nicht versteckt werden kann, wer wann wieviel mit wem zu bereden hat. Somit entsteht eine Datenhalde ähnlich der Vorratsdatenspeicherung. Dies kann beim E-Mail-System gar nicht vermieden werden.
Viele halten es deshalb für sinnvoll Kompatibilität zu E-Mail ganz aufzugeben. Und für ihre neuen Programme auch ein eigenes Übertragungsformat zu schaffen. Im Moment sind einige solcher Projekte im Entwicklung
Da die neuen Programme allerdings noch nicht peer reviewed sind - es also nicht ausreichend erforscht ist, wie fehlerfrei sie sind, empfiehlt es sich derzeit, wenn man sicher gehen will, die Nachrichten zusätzlich mit PGP zu verschlüsseln. Somit schützt man die Nachrichten selbst wie gehabt, hat aber zusätzlich eine gute Chance, nicht dabei beobachtet zu werden, wieviel man mit wem man geredet hat Das hat auch den Vorteil, dass man nicht ungefragt Privates unverschlüsselt zugestellt bekommt – da mit solchen Programmen keine unverschlüsselten E-Mails empfangen werden können. Wo keine unverschlüsselte Kommunikation möglich, kann man nichts falsch machen.
Quellen
- KDE Userbase Wiki: OpenPGP-Konzepte für Anfänger
- KDE Userbase Wiki: erste Schritte mit OpenPGP (Vorbereitung)
- ZDNet: Mitleser unerwünscht
- http://wiki.kairaven.de/open/krypto/gpg/gpganleitung - Ausführliche Anleitung GnuPG/PGP
- 10 Gründe für PGP/GPG
- 13 Gründe nicht mit PGP über E-Mail anzufangen.
- Encryption Works
- https://gpgtools.org/ - GPGMail ist ein Plugin für Mail.app auf OS X, welches Benutzern erlaubt sichere, signierte und verschlüsselte Mails zu verschicken. GPGMail ist Open Source und kostenlos.