Die Verschlüsselung von E-Mails mit PGP und GnuPG/GPG erfährt in jüngster Zeit wachsende Aufmerksamkeit. Viele gute Anleitungen von der Netz-Community, aber auch aus den Medien, zeigen, dass Verschlüsselung vergleichsweise einfach einzurichten und zu bedienen ist. Die entsprechenden Anleitungen sind grundsätzlich zu begrüßen und es ist zu erwarten und zu begrüßen, dass die Anzahl der aktiven GPG-Nutzer steigen wird. Gute Anleitungen finden sich z.B. beim Spiegel oder beim Chaosradio.
Ein bisschen kurz kommen allerdings oft die Grenzen, Probleme und Schattenseiten von GPG. Dieser Text widmet sich ausschließlich diesen eher negativen Seiten von GPG. Genau genommen beziehen sich viele der angesprochenen Probleme nicht auf GPG selbst, sondern auf Programme und Werkzeuge, die oft im Zusammenhang mit GPG genutzt werden. Insgesamt habe ich den Eindruck bekommen, dass viele dieser Programme und Werkzeuge deutlich weniger ausgereift sind als GPG selbst.
Dieser Text ist unausgewogen. Die vielen guten Seiten von GPG werden hier nicht näher beleuchtet. Echte Neuigkeiten werden in dem Text kaum zu finden sein, aber ich hoffe, dass die Auflistung trotzdem nützlich für den Leser ist. Für einige Probleme reiße ich auch Lösungsansätze an.
Außen vor bleibt PGP. PGP und GnuPG/GPG nutzen den gleichen Standard OpenPGP. PGP kenne ich jedoch zu wenig, um darüber schreiben zu können. Neben der Verschlüsselung von E-Mails geht es am Rande auch um die Verschlüsselung von Dateien.
Problem 1: Geringe Verbreitung
Wenn ich GPG-verschlüsselte Nachrichten versenden will, müssen alle Empfänger der Mail bereits ebenfalls GPG nutzen und einen Schlüssel verbreitet oder direkt an mich übergeben haben. Das dürfte für die meisten Anwender die größte praktische Hürde sein.
Problem 2: Webmail und unfähige Mailprogramme
Viele Anwender nutzen Webmail und Mailprogramme, die nicht für den Einsatz von GPG vorbereitet sind. Im allgemeinen gelingt die Installation und Integration von GPG besser in Mailprogramme (u.a. Thunderbird, Seamonkey, Outlook etc.) als in typische Webmail-Dienste. Insbesondere bei der Nutzung von typischen Webmail-Diensten wie GMail, Outlook.com oder Yahoo ist die Verwendung von GPG ziemlich umständlich. Man kann die Mailinhalte über Copy und Paste verschlüsseln und entschlüsseln. Mehr als Text-E-Mails (PGP Inline) geht bei typischen Webmail-Anbietern auch nach der Installation von GPG nicht. Das PGP/MIME-Format, welches neben reinem Text auch HTML-Mails mit Bildern unterstützt, sowie Anhänge besser integriert, kann weder bei den meisten Webmail-Anbietern, noch bei solchen Mailprogrammen genutzt werden, die lediglich über Copy und Paste zusammen mit GPG genutzt werden könnten.
Dass Webmail prinzipiell GPG-fähig sein könnte, zeigen ambitionierte Webmail-Programme wie Horde/IMP oder Webmail-Dienste mit eingebauten Verschlüsselungsfunktionen. Das generelle Problem, dass man eigentlich die Verschlüsselung, Entschlüsselung und Signierung nicht auf einem Server, sondern auf einem Client durchführen möchte, ließe sich durch clevere Implementierungen mit Javascript oder durch Browser-Addons lösen oder entschärfen. Entsprechende Projekte sind im Moment jedoch teilweise wieder inaktiv oder noch nicht fertig. Ohne die Unterstützung der Webmail-Anbieter dürften auch in Zukunft entsprechende Projekte Schwierigkeiten haben.
Problem 3: Unzureichende Integration von GPG
Selbst die glücklichen Benutzer von relativ gut integrierten Lösungen wie Thunderbird, Enigmail und GPG merken früher oder später, dass die Integration gut, aber keineswegs perfekt ist. Zum Beispiel dauert das Öffnen einer GPG-verschlüsselten Mail in Thunderbird minimal länger als das Öffnen einer unverschlüsselten Mail. Das stört zum Beispiel, wenn man flott durch die Mails eines Ordners durchklicken will.
Wünschenswert wären Mailprogramme mit einer sehr guten Integration der GPG-Funktionalität. Beispiele dafür sind Claws Mail und das neue Projekt Mailpile, welches gerade um Spenden wirbt.
Ähnliches gilt für die Integration von GPG in die Desktops von Linux, Mac OS und Windows. Beispiel Linux mit KDE und GNOME: Die Dateimanager bieten zwar Aktionen wie das Verschlüsselung von Dateien an. Aber trotz KIO, Gnome-VFS usw. ist mir nicht bekannt, dass es möglich ist, eine GPG-verschlüsselte Datei mit Programmen wie Office-Programmen, Media-Playern etc. transparent zu öffnen, zu bearbeiten und wieder zu speichern. Die Handhabung von verschlüsselten Dateien ist entsprechend umständlich. Dabei ist eine gute Integration durchaus möglich. Die relativ guten Möglichkeiten von Texteditoren wie Emacs und VIM zeigen, wie es gehen könnte.
Problem 4: Metadaten bleiben ungeschützt
Bekanntlich verschlüsselt GPG nur Mail-Inhalte und falls richtig konfiguriert auch alle Anhänge. Der komplette Mail-Header mit so spannenden Informationen wie Betreff, Absender, Empfänger usw. kann aber nicht verschlüsselt werden. Ein Überwachungsdienst braucht oft nicht mehr als gerade diese Metadaten.
GPG allein kann das Problem nicht lösen. Die Mailserver selbst müssten sehr viel besser abgesichert werden, damit die Metadaten besser geschützt werden. Neben einer verpflichtenden Nutzung von SMTP/STARTTLS für alle Mailserver-zu-Mailserver-Verbindungen, sollten weitere Techniken wie DNS-SEC, SSL Certificate Pinning und DKIM von den Mailserver-Betreibern verwendet werden. Leider hat man als Nutzer und sogar als Betreiber eines Mailservers wenig Möglichkeiten, die Kommunikationspartner zu sicheren Techniken zu drängen. Allianzen großer Mail-Provider wie „E-Mail Made in Germany“ haben etwas mehr Signalwirkung.
PGP-Keyserver machen es relativ leicht, neue und geänderte PGP-Keys von E-Mail-Kommunikationspartnern zu finden. Leider sind viele PGP-Server unter Umständen selbst ein Sicherheitsproblem. Extrem nervig ist, dass man allein nach dem Hochladen von PGP-Schlüsseln zu einem Keyserver mit deutlich mehr Spam zu rechnen hat, wenn man Pech hat (siehe Blogeintrag).
Außerdem stellen Keyserver jedermann (also auch den Leuten, vor denen man sich durch Verschlüsselung schützen will) viele und teilweise zu viele Informationen bereit. Problematisch sind vor allem die populären PGP-Keyserver des SKS-Keyserver-Verbundes. Suchen Sie doch mal auf einem SKS-Keyserver wie pgp.mit.edu nach „@web.de“ und einem beliebigen Vornamen. Sie werden erstaunt sein, wie viele Informationen der Keyserver bereitstellt. Unter anderem zeigt die Suche auch dann Treffer, wenn man die E-Mail-Adresse gar nicht komplett eingibt.
Viele GPG-Anwender haben PGP-Schlüssel mit mehreren bzw. allen ihren E-Mail-Adressen verknüpft. Damit kann ein Gegner problemlos sehen, welche E-Mail-Adressen ein Anwender alles nutzt.
Dass man einmal hochgeladene PGP-Schlüssel bei den SKS-Keyservern später nicht mehr löschen kann, frustriert viele Nutzer und es kann zu Missverständnissen kommen, etwa wenn ein Benutzer einen Key nur zu Testzwecken auf einen SKS-Keyserver hochgeladen hatte, ihn dann aber gar nicht aktiv nutzt.
Dass die eigenen PGP-Schlüssel von beliebigen Leuten, auch solchen, die man gar nicht kennt, signiert und auf PGP-Keyserver hochgeladen werden können, ist manchmal auch problematisch. Schließlich könnten bestimmte Signaturen die eigene Reputation eher beschädigen als fördern. Ein Gegner könnte schlussfolgern, dass man mit bestimmten Leuten in Kontakt steht, ohne dass das den Tatsachen entspricht bzw. ohne dass man tatsächliche Kontakte und Verbindungen veröffentlichen wollte.
PGP-Keyserver sind ein wichtiger Teil der PGP-Infrastruktur. Man sollte aber gut abwägen, ob man wirklich die SKS-Keyserver benutzen möchte. Neben den SKS-Keyservern gibt es immerhin andere Keyserver wie das PGP Global Directory, die andere Regeln haben. Man kann auch auf Keyserver verzichten und beispielsweise seine öffentlichen Schlüssel auf seiner Homepage veröffentlichen.
Es ist leider recht wahrscheinlich, dass man durch Unachtsamkeit bei der Datensicherung früher oder später das Problem bekommt, dass man seine verschlüsselten E-Mails und Dateien selbst nicht mehr öffnen kann. Dabei steht man als Anwender vor einem Dilemma. Wenn man sehr oft und viele Backups anfertigt, die auf verschiedenen Medien, an verschiedenen Orten oder sogar auf verschiedenen Servern oder in der Cloud abgelegt werden, verringert sich natürlich das Risiko, dass man wichtige PGP-Schlüssel verliert und nicht mehr wiederherstellen kann. Mit vielen Backups erhöht man allerdings auch die Gefahr, dass wichtige Schlüssel kompromittiert werden.
Auch an die Sicherung der Passphrases sollte man denken. Gerade, wenn man im Laufe der Zeit verschiedene PGP-Schlüsselpaare erzeugt, die jeweils unterschiedliche Passphrases haben, kann man leicht in die Situation kommen, dass man sich an bestimmte Passphrases nicht mehr erinnert. Das Notieren von Passphrases auf Papier entspricht sicher nicht der reinen Lehre, ist aber ein bewährtes Mittel gegen das Vergessen.
Während man Passphrases noch aufschreiben oder ausdrucken kann, macht sich das mit den PGP-Schlüsselpaaren aufgrund der Größe (im ASCII-Export ca. 1-3 DIN-A4-Seiten pro Schlüsselpaar) schon schwieriger. Wobei das Ausdrucken der Schlüsseln noch unproblematischer ist als das exakte Wiedereintippen oder OCR-Scannen beim Restore. Lösungen wie Paperkey können hier sehr hilfreich sein.
Fakt ist, dass die Entschlüsselung von E-Mails und Dateien nur mit dem passenden Schlüsselpaar und der passenden Passphrase gelingt. Damit kann ein Gegner, der im Besitz von beidem kommt, entschlüsseln. Das gilt aber eben auch für mich als legitimen Nutzer. Die Gefahr, dass man sich selbst aussperrt, kann größer sein als die Gefahr, dass ein Gegner an die geheimen Schlüssel und die Passphrase kommt.
Eher abzuraten ist für die meisten Anwendungsfälle auch von zu cleveren Lösungen mit Single-Point-of-Failures. Wer z.B. seinen PGP-Keyring wie teilweise vorgeschlagen ausschließlich auf einer verschlüsselten externen Festplatte speichert und sich die Passphrases alle merkt, hat damit gleich mehrere Single-Point-of-Failures produziert. Sobald eines der folgenden Fälle eintritt, ist ein Restore der Daten mittels gesicherten Keyrings nicht mehr möglich und damit das Backup wertlos: vergessene Passphrase, Verlust der Festplatte, Defekt der Festplatte, vergessenes Verschlüsselungspasswort der Festplatte, Beschädigung des Crypto-Headers oder des Dateisystems auf der Festplatte.
Problem 7: Symmetrische Verschlüsselung ist auch nicht besser
Wenn man die erwähnten Probleme bedenkt, die sich auf die Standardnutzung von GPG mit asymmetrischer Verschlüsselung beziehen, könnte man auf die Idee kommen, besser auf die asymmetrische Verschlüsselung mit einem PGP-Schlüsselpaar zu verzichten und stattdessen die symmetrische GPG-Verschlüsselung mit einer Passphrase zu benutzen. Immerhin entfällt dann die teilweise problematische Verwaltung des PGP-Keyrings.
In der praktischen Nutzung ist die symmetrische Verschlüsselung mit GPG aber ebenfalls problematisch. Zum einen gibt es natürlich das Problem des Schlüsselaustausches zwischen den Kommunikationspartnern. Nur in kleinen Gruppen ist das überhaupt praktikabel. Aber selbst wenn ich Dateien nur für mich selbst verschlüssele, kann ich leicht in eine Falle tappen. Beim Verschlüsseln fragt GPG zweimal nach der Passphrase. Dass man sich zweimal genau gleich vertippt, ist eigentlich eher unwahrscheinlich. Aber trotzdem kann es passieren: Denken Sie mal daran, dass zweimal das falsche Passwort indirekt mit Copy&Paste eingefügt wurde, dass eine Taste in der Tastatur klemmt oder dass das falsche Tastaturlayout oder Caps-Lock beim Verschlüsseln eingestellt waren. Man kann folgendes probieren, um auszuschließen, dass man versehentlich zweimal mit einem falschen Passwort verschlüsselt: Eingabe der Passphrase in einen Editor, Kopieren der Passphrase, Einfügen der Passphrase in Pinentry, erneute Eingabe der Passphrase direkt in Pinentry.
Wer viele Dateien symmetrisch verschlüsselt, wird möglicherweise im Laufe der Zeit auch verschiedene Passphrases einsetzen. Die Gefahr, dass man sich an eine vor vielen Jahren genutzte Passphrase nicht mehr erinnern kann, ist groß.
Problem 8: Die Eingabe der Passphrase
Zur Verschlüsselung und Entschlüsselung muss man bei GPG eine Passphrase eingeben. Die Passphrase wird dann eine bestimmte Zeit durch den GPG-Agent zwischengespeichert, sodass man die Passphrase nicht andauernd neu eingeben muss.
Eine mögliche Schwachstelle ist die Eingabe der Passphrase selbst. Prinzipiell enthalten die GPG-Dialoge für die Eingabe der Passphrase (Pinentry) einige Schutzfunktionen, um Keyloggern das Abgreifen des Passwortes zu erschweren. Ich wage aber zu bezweifeln, dass die Schutzfunktionen gegenüber allen Keyloggern ausreichend wirkungsvoll sind. Pinentry fehlen wesentliche Komfort- und Sicherheitsfunktionen: eine Option zur Anzeige der Passphrase, die Anzeige typischer Benutzerfehler (z.B. Caps Lock), eine Bildschirmtastatur zum Schutz vor Keyloggern etc.
Selbst unter Linux kann man sich leicht selbst ein Problem bei der Passphrase-Eingabe schaffen. Wenn man z.B. die Passphrase im KDE-Desktop kopiert und in den Pinentry-Dialog einfügt, dann landet die Passphrase auch im KDE-Zwischenablage-Tool Klipper. In der Standardeinstellung werden die Texte in Klipper sogar auf der Festplatte gespeichert. Eine Passphrase unverschlüsselt gespeichert auf einer Festplatte ist natürlich gefährlich.
Dazu gibt es noch Probleme mit der Wahl der Caching-Zeit des GPG-Agent. Ist die Zeit zu kurz, muss man oft erneut die Passphrase eintippen. Das erleichtert es Leuten, die über die Schulter schauen, die Passphrase zu erkennen. Ist die Caching-Zeit dagegen zu lang gewählt, ist es wahrscheinlicher, dass die zwischengespeicherte Passphrase von lokalen Gegnern ausgenutzt wird, etwa wenn man sich ohne Sperrung des GPG-Agent oder des Bildschirmschoners von Computer entfernt.
Problem 9: Verschlüsselung bei großen Gruppen
Ab einer bestimmten Zahl von Empfängern einer Mail wird die Verschlüsselung unpraktikabel. Wenn alle Empfänger mit E-Mail-Adresse bekannt sind, kann man prinzipiell sicherstellen, dass man alle Public-Keys der Empfänger direkt oder über Keyserver erhält. Eine genaue Prüfung aller Keys z.B. mit dem persönlichen Abgleich der Fingerprints ist bei großen Gruppen schon aufwendiger.
Solange die Empfängerliste gar nicht jedem Kommunikationsteilnehmer bekannt sind (so ist es beispielsweise bei Mailinglisten), klappt die Verschlüsselung gar nicht.
Das heißt jetzt nicht, dass GPG für Mailinglisten nutzlos ist. In der Praxis wird die Signatur-Funktion von GPG gerne für Mailinglisten genutzt. Die Verschlüsselungsfunktion kann dagegen meist nicht genutzt werden.
Problem 10: GPG im Unternehmen
Prinzipiell kann GPG auch im Unternehmen eingesetzt werden. Die guten Verschlüsselungs- und Signaturtechniken von GPG, sowie die Tatsache, dass es sich um Open Source Software handelt und die Unabhängigkeit von zentralen Diensten, sind auch besonders für Unternehmen attraktiv.
Der Einsatz von GPG im Unternehmen, stellt aber Mitarbeiter, externe Kommunikationspartner und Administratoren vor größere Herausforderungen. Der dezentrale Ansatz von GPG mit dem Web-of-Trust ist relativ inkompatibel mit verbreiteten etablierten Hierarchien. Insbesondere die Allmacht der Administratoren wird durch GPG in Frage gestellt. Das ist nicht immer im Interesse der Geschäftsführung und der Mitarbeiter. Ein Beispiel: Hat ein Mitarbeiter bei einem Client-Server-System wie Samba und Windows sein Passwort vergessen, geht er typischerweise zum Administrator und lässt sich ein neues geben. Hat er dagegen seine GPG-Passphrase vergessen oder seinen Keyring verloren, hat auch der Administrator keine Chancen, dem Mitarbeiter zu helfen, es sei denn, er hat den Prozess der Schlüsselerstellung des Benutzers zu Beginn selbst übernommen und besitzt entsprechende Backups des Keyring und der Passphrases.
Für Unternehmen stellt sich auch das Problem, dass oft viele Jahre alte E-Mails und Dateien später noch entschlüsselt werden müssen. Es könnte um Arbeitsergebnisse eines bereits pensionierten Angestellten gehen. Die betriebsinterne Revision oder die Steuerfahndung könnten auf der Herausgabe von E-Mails und Dateien im Klartext bestehen.
Vieles davon ließe sich durch Masterkeys umsetzen, die die Administration verwaltet. Mit dem freien GPG ist es aber im Gegensatz zum kommerziellen PGP schwierig, entsprechende Policies verbindlich umzusetzen.
Administratoren könnten den Besitz der Masterkeys auch unfair ausnutzen. Die Angst vor einem Missbrauch der Masterkeys oder der Benutzer-Keys durch Administratoren verringert wiederum die Akzeptanz der Mitarbeiter in GPG im Unternehmen.
Problem 11: Wenig Verwaltungstools
Einige der dargestellten Probleme ließen sich mit guten Verwaltungstools entschärfen. Zum Beispiel könnten automatische oder halbautomatische Skripte sicherstellen, dass alle E-Mails und Dateien zusätzlich mit den gültigen Masterkeys verschlüsselt sind. Genauso könnten Skripte sicherstellen, dass bestimmte Dateien und E-Mails nochmal neu verschlüsselt werden, damit ein neuer Kollege ebenfalls Zugriff darauf bekommt.
Erweiterungen von Mailprogrammen oder lokalen IMAP-Servern könnten es ermöglichen, dass die Suchfunktion für Mailinhalte trotz GPG-Verschlüsselung funktioniert oder dass PGP-verschlüsselte Mails auch durch Virenscanner und Spamfilter geschickt werden.
Im Moment sieht es aber so aus, dass entsprechende Skripte und Erweiterungen nicht problemlos zu finden sind. Für Administratoren und Anwender stellt sich das Problem, dass sie selbst Skripte und Erweiterungen programmieren müssen. Ein Blick in manche vorhandene Skripte zeigt, dass sie nicht alle mit der nötigen Sorgfalt programmiert wurden. Oft finden sich z.B. Passphrases im Klartext in den Skripten, obwohl dies oft durch den Einsatz des GPG-Agent gar nicht nötig wäre.
GPG lässt sich am besten auf dem eigenen, gut gesicherten stationären PC benutzen. In der Praxis wird es aber vielfach gewünscht oder erforderlich sein, dass man auch unterwegs E-Mails und Dateien verschlüsseln, signieren und entschlüsseln kann.
Für mobile Endgeräte wie Smartphones gibt es teilweise GPG-Apps. Teilweise sind diese aber noch eingeschränkt in der Bedienung oder funktional noch eingeschränkt. Die gute Unterstützung von GPG auf Android mit APG und K9mail enthält zum Beispiel im Moment noch keine Unterstützung für das PGP/Mime-Format, so dass man nur das einfache Text-E-Mails (PGP Inline) schreiben und lesen kann.
Auf PCs von Internetcafes oder auf Kunden-PCs möchte man nicht unbedingt gerne GPG nutzen. Sofern das überhaupt möglich ist, z.B. über USB-Sticks mit GPG als Portable App, stellt sich die Frage, ob die fremden PCs sicher genug sind.
Gerade, wenn man GPG oft und auf vielen Geräten nutzt, wird man feststellen, dass es keine komfortablen Möglichkeiten gibt, die PGP-Keyrings abzugleichen.
GPG ist ein wunderbares Tool für die E-Mail- und Dateiverschlüsselung. Ich kenne persönlich nichts besseres, auch S/MIME ist meiner Meinung nach für die meisten Anwender keine bessere Alternative.
Die sehr gute Implementierung von GPG selbst kann im Moment aber nicht darüber hinwegtrösten, dass es viele Probleme mit den Programmen und Tools rund um GPG gibt.
Manche der aufgelisteten Schwächen sind prinzipbedingt. Viele ließen sich aber doch moderne, aktive und kreative Weiterentwicklungen von GPG und GPG-Tools lösen oder entschärfen. Ich sehe zum Beispiel enormen Verbesserungsbedarf bei Pinentry, bei den Keyservern, bei Mailprogrammen, bei Webmail-Software, Webmail-Diensten und bei den Verwaltungsprogrammen.
Es ist sicher eine gute Idee, diejenigen Entwickler zu unterstützen, die daran arbeiten, Programme und Werkzeuge rund um GPG besser zu machen oder selbst daran mitzuentwickeln.
Daneben gibt es sicher auch einige Einsatzszenarien, für die GPG mit den existierenden Programmen und Werkzeugen einfach nicht geeignet ist.
- GnuPG
- Schutz gegen Internet-Spione: So verschlüsseln Sie Ihre E-Mails
- Chaosradio CRE 192: Radioaktive Cryptoparty
- g10 Code GmbH
- GnuPG Bugs
- Thunderbird
- Enigmail
- Webmail Open Source Software Horde/IMP
- Claws Mail
- Mailpile: Crowdfunding Kampagne für sicheren Webmail-Client gestartet
- STARTTLS
- DNS-SEC: Domain Name System Security Extensions
- Certificate and Public Key Pinning
- DKIM: DomainKeys Identified Mail
- E-Mail made in Germany
- Schlüsselserver
- PGP-Schlüssel auf VIELE Keyserver hochgeladen
- MIT PGP-Keyserver
- PGP Global Directory
- Paperkey – an OpenPGP key archiver
- Pinentry
- KDE Klipper:
- APG
- K9mail