Auch auf mobilen Endgeräten wie Tablets oder Smartphones muss man nicht auf OpenPGP verzichten. Aus der großen Masse an Android-Apps habe ich zwei herausgegriffen, die einen guten Funktionsumfang bieten und weit verbreitet sind: K-9 Mail und OpenKeychain. Wie man diese Kombi einrichtet und nutzt, erfahrt ihr in diesem Artikel.
Dieser Artikel ist Teil der Serie "OpenPGP im Berufsalltag". Du möchtest auch die anderen Artikel lesen? Hier geht es zur Übersicht.
Als erstes brauchen wir einen OpenPGP-Client, der für Android taugt. Weil OpenKeychain recht ausgereift ist, einen guten Funktionsumfang hat und der empfohlene Client für K-9 Mail ist, werden wir diese App benutzen. Installieren kann man sie ganz einfach über den Google Play Store.
Als nächstes muss das eigene Schlüsselpaar eingerichtet werden. Sofern bereits eines auf dem PC vorhanden ist (siehe Teil 4), stellt sich die Frage: Wie gelangt das Schlüsselpaar auf das Mobilgerät? OpenKeychain bietet dazu verschiedene Möglichkeiten:
Man muss also die privaten Unterschlüssel in eine Datei exportieren, diese auf das Gerät kopieren und dann mit OpenKeychain importieren. Den Hauptschlüssel lassen wir aus Sicherheitsgründen zunächst aus dem Spiel.
Praktischerweise wurden entsprechende Exporte in Teil 4 bereits angelegt. Optional kann man die exportierten Dateien noch zusätzlich mit einem Passwort symmetrisch verschlüsseln. Dadurch wird ein eventuelles Abhören während des Kopiervorgangs unsinnig, was die Sicherheit erhöht. Wie diese optionale Verschlüsselung funktioniert, ist auf openkeychain.org beschrieben.
Um den privaten Unterschlüssel zu importieren, geht man wie folgt vor:
8AE9426EA8A00B2E,
muss man sich merken.
# Export private subkeys. gpg --export-secret-subkeys --armor 8AE9426EA8A00B2E > 8AE9426EA8A00B2E.sub_priv.asc
+
-Symbol unten rechts und wählt „Import from File“.
Damit ist der Import abgeschlossen. Der Schlüssel wird als „Partially Stripped“ bezeichnet, was ein Hinweis auf den fehlenden Hauptschlüssel ist.
Vorsicht ist jedoch geboten: Die Schlüssel sind auf dem Gerät nur so sicher wie das Gerät selbst! Aus Sicherheitssicht ist es daher keine gute Idee, private Schlüssel auf dem Gerät zu speichern. Einerseits existieren sie dann doppelt (mobil und auf dem Desktop), andererseits sind sie den gleichen „mobilen Gefahren“ ausgesetzt wie der Rest des Geräts. Abhilfe schaffen hier sogenannte Security Tokens, mit denen wir uns im nächsten Teil beschäftigen werden.
OpenKeychainmacht (wie auch K-9 Mail) häufig Gebrauch von der Kontaktliste des Mobilgeräts, auf dem es läuft. Das kann die Handhabung stark vereinfachen. Öffentliche Schlüssel der Kommunikationspartner werden dann den Kontakten zugeordnet.
Weil das den Schutz personenbezogener Daten verringert, muss diese Funktionalität erst unter Burger-Menü links oben → Settings → Synchronization → Link keys to contacts
aktiviert werden.
Öffentliche Schlüssel lassen sich ganz bequem über + → Key Search
finden. Die dabei benutzten Schlüsselserver kann man unter Burger-Menü links oben → Settings → Key Search → Manage OpenPGP keyservers
einstellen. Auch über K-9 Mail könnte man diese Suche initiieren.
Importierten öffentlichen Schlüsseln wird standardmäßig nicht vertraut. Möchte man das ändern, muss man diese Schlüssel bestätigen, d. h. mit einem Schlüssel, der die Eigenschaft „Certify“ besitzt, digital unterschreiben und damit beglaubigen.
Dazu verlangt OpenKeychain, dass man sich zunächst vergewissert, dass der zu signierende öffentliche Schlüssel tatsächlich der richtigen Person gehört. Dies soll über einen Vergleich der sogenannten Fingerprints geschehen, und dazu gibt es zwei Möglichkeiten:
Burger-Menü rechts oben → Confirm with fingerprint
auf. Der Fingerprint des Schlüssels ist überall gleich, unabhängig davon, ob der Besitzer OpenKeychain benutzt oder nicht. Mit gpg
lässt er sich über gpg --fingerprint <SCHLÜSSEL-ID>
anzeigen.gpg --fingerprint 0xEAFA5E6709F31765 pub rsa4096/0xEAFA5E6709F31765 2018-04-05 [C] [expires: 2019-04-05] Key fingerprint = 76EE 007A A847 7D08 537A 55EF EAFA 5E67 09F3 1765
Nachdem man die Fingerprints sorgfältig Zeichen für Zeichen verglichen hat, liefert ein Tap auf „Fingerprints match“ folgende Ansicht:
Ein Tap auf „Confirm key“ erstellt eine Beglaubigungssignatur, die nur lokal gespeichert wird. Möchte man diese auch über einen Keyserver veröffentlichen, muss man vorher den Haken bei „Publish certification on keyservers“ setzen.
Zum Beglaubigen benötigt man einen privaten Schlüssel mit der Eigenschaft „Certify“. Da wir aber in Teil 4 diesen Schlüssel aus Sicherheitsgründen aus dem Schlüsselbund entfernt haben, dürfte – nein: muss – die Beglaubigung fehlschlagen. Auch hier muss man zunächst, wie oben beschrieben, den Hauptschlüssel exportieren, die Datei kopieren und dann in OpenKeychain importieren, wobei man nach erfolgreichem Import die Option "Refresh Key" wählt, denn die Unterschlüssel sind ja bereits vorhanden.
Ich habe außerdem beobachtet, dass die Reihenfolge Hauptschlüssel --> Unterschlüssel zu Fehlern führen kann. Daher sollte man immer erst den Unterschlüssel und dann den Hauptschlüssel importieren.
Beglaubigungen von Schlüsseln sind komplett optional. Man muss also nicht ständig seinen Hauptschlüssel importieren, wenn man einen öffentlichen Schlüssel importiert. Aus Sicht des Web-Of-Trust, das die öffentlichen Schlüssel und deren Beglaubigungssignaturen aufspannen, ist das aber kontraproduktiv. Die Sicherheit wird durch Beglaubigungen definitiv erhöht.
Zunächst ein kleiner Exkurs zu K-9: K9, gesprochen „Keynein“ in Anlehnung an „Canine“ (engl. für Hundeartige) ist ein Roboterhund, bekannt aus der englischen Kultserie Dr. Who. Logo und Name wurden für die App entsprechend entlehnt – ein typischer Nerd-Witz.
Für Android gibt es zwar viele E-Mail-Apps, allerdings nur wenige, die frei verfügbar sind, eine gute Usability haben und OpenPGP über eine Dritt-App (wie z. B. OpenKeychain) unterstützen. Von diesen wenigen habe ich mich für K-9 Mail entschieden, weil es weit verbreitet ist, eine aktive Community hat und gut funktioniert.
Installieren kann man es ebenfalls ganz einfach über den Google Play Store.
Beim ersten Aufruf muss man zunächst seinen E-Mail-Account einrichten. Leider gibt es hier nicht so eine schöne Datenbank wie bei Thunderbird. Also muss man darauf achten, Mailausgangs- und -eingangsserver korrekt einzustellen. Auf den Hilfeseiten des eigenen Mail-Providers gibt es dazu fast immer die notwendigen Informationen.
Ist alles eingerichtet und funktioniert der Mailabruf- und -versand, muss man OpenKeychain sozusagen anflanschen. Das geht über Settings → (Global Settings) → Cryptography → OpenPGP-app
. Das Settings-Menü erreicht man über das Burger-Menü (die drei vertikalen Punkte) rechts unten.
Es dürfte eine Auswahlliste erscheinen, in der OpenKeychain ausgewählt werden kann. Außerdem sollte man im gleichen Menü den Punkt „Show unencrypted signatures“ aktivieren. Das ermöglicht das Verifizieren und Erstellen von Signaturen auch ohne Verschlüsselung.
Jetzt muss noch der für den erstellten Account zuständige Schlüssel ausgewählt werden. Dazu selektiert man den Account und klickt dann Burger-Menü rechts unten → Settings → Account settings → Cryptography → My Key → Use key
. Falls die E-Mail-Adresse des Accounts nicht mit der User-ID eines privaten Schlüssels übereinstimmt, muss man den entsprechenden Schlüssel aus der Liste auswählen.
Probieren wir es doch einmal aus. Ein Tap auf das Briefsymbol im unteren Bereich von K-9 öffnet den Bildschirm für eine neue E-Mail. Zunächst gibt man eine beliebige Empfängeradresse ein, wobei K-9 hier Gebrauch von den Kontakten des Gerätes machen kann. Es lohnt sich also, bei Kontakten die korrekten E-Mail-Adressen zu hinterlegen.
Wählt man einen Kontakt aus, den oder dessen E-Mail-Adresse OpenKeychain kennt – d. h. es befindet sich ein öffentlicher Schlüssel im Schlüsselring der App – erscheint oben rechts ein neues Symbol:
Ein Tap darauf und das Symbol sollte grün werden:
Das bedeutet: Die Mail wird verschlüsselt und signiert gesendet. Der Rest funktioniert wie gewohnt. Das Symbol zur Verschlüsselung ist aber nur dann aktivierbar, wenn alle Empfänger in OpenKeychain bekannt sind. Sollte einer fehlen, muss dieser zunächst über OpenKeychain nachgepflegt werden.
Es ist auch möglich, eine Mail lediglich zu signieren, aber nicht zu verschlüsseln. In diesem Fall ist es egal, ob die Empfänger OpenKeychain bekannt sind, da für das Signieren nur der private Schlüssel des Senders benutzt wird.
Voraussetzung ist, dass man unter (Global) Settings → Cryptography
den Punkt „Show unencrypted signatures“ aktiviert hat.
Jetzt kann man beim Erstellen einer neuen Mail über Burger-Menü oben rechts → Enable PGP Sign-Only
Signaturen ohne Verschlüsselung für diese Mail aktivieren. Dadurch erscheint ein weiteres Symbol:
Der blaue Haken bedeutet: Sign-only-Modus aktiv. Die Mail wird signiert, aber nicht verschlüsselt. Die Kombination verschlüsselt, aber nicht signiert, ist in K-9 Mail nicht vorgesehen. Auch ein nachträgliches Aktivieren der Verschlüsselung funktioniert im Sign-only-Modus nicht. Dazu muss dieser erst deaktiviert werden. Dann lässt sich die Verschlüsselung aktivieren.
Der Empfang verschlüsselter oder signierter Mails ist etwas komfortabler gelöst als deren Versand, weil hier die Integration mit OpenKeychain stärker ist.
Zunächst kommt es darauf an, ob eine Mail (nur) signiert, oder (auch) verschlüsselt ist. K-9 zeigt auch hier die bekannten Symbole an: den Haken für Signaturen und ein Schloss für die Verschlüsselung (und Signatur).
Zusätzlich werden neben diesen bekannten Symbolen noch drei Punkte angezeigt, die eine Art Sicherheitsskala von wenig Sicherheit (unten) bis zu hoher Sicherheit (oben) symbolisieren. Jede Sicherheitsstufe korrespondiert außerdem mit einer entsprechenden Farbe. Insgesamt soll damit der Grad der Sicherheit auf einen Blick erkennbar sein. Es erfordert allerdings etwas Übung. Um den Überblick zu behalten, habe ich eine Tabelle erstellt:
Signiert | Verschlüsselt | Anmerkung | |
✔ | ✘ | Öffentlicher Schlüssel des Senders fehlt. | |
? | ✔ | Privater Schlüssel des Empfängers fehlt / Entschlüsselungsfehler. | |
✔ | ✘ | Signatur fehlerhaft. | |
✔ | ✘ | Signatur korrekt, Senderschlüssel fehlt vertrauen. | |
✔ | ✔ | Korrekte Signatur, erfolgreich entschlüsselt, Senderschlüssel fehlt vertrauen. | |
✔ | ✘ | Korrekte Signatur mit vertrauensvollem Schlüssel. | |
✔ | ✔ | Korrekte Signatur mit vertrauensvollem Schlüssel. Korrekte Entschlüsselung. |
Normalerweise wird man also die orangefarbenen Icons sehen, da öffentlichen Schlüsseln standardmäßig nicht vertraut wird.
Ein Tap auf das Icon enthüllt die Sicherheitsinformationen des Senders. Ist das Icon schwarz, d. h. es fehlt ein entsprechender Schlüssel, leitet K-9 Mail automatisch zu einer Schlüsselsuche via Keyserver weiter.
Wird der entsprechende Schlüssel erfolgreich gefunden und importiert, gelangt man zurück zur Nachricht. Möglicherweise ändert sich das Icon aber trotzdem nicht. In diesem Fall muss man zurück zur Listenansicht des Ordners und die Maildetails erneut laden.
Vor allem auf mobilen Endgeräten erkennt man, wie umständlich, kompromissreich und teilweise auch riskant eine möglichst einfache Anwendung von OpenPGP sein kann. Das zugrundeliegende Problem ist meiner Meinung nach vor allem, dass man die Schlüssel nicht wie echte Schlüssel einfach mitnehmen kann.
Im nächsten Teil der Serie werde ich daher anhand des Yubikey NEO zeigen, wie man mit Hilfe von sogenannten PGP-SmartCards genau dies erreichen und damit einige Nachteile wettmachen kann.