1. Verschlüsseln / Entschlüsseln
Sowohl der GPG-Hauptschlüssel (Signieren / Zertifizieren) als auch die beiden Unterschlüssel für die Verschlüsselung und Authentisierung wurden im zweiten Teil der Serie sicher auf dem Nitrokey abgelegt. Damit sind nun alle Voraussetzungen erfüllt, um euch weitere Anwendungsszenarien vorzustellen.
Zur Erinnerung: Ein Schlüsselpaar besteht aus einem geheimen Teil (privater Schlüssel) und einem nicht geheimen Teil (öffentlicher Schlüssel). Dieses Pärchen ermöglicht unter anderem die Nutzung von OpenPGP/GnuPG für die E-Mail-Verschlüsselung.
Im vorliegenden Beitrag der Serie »Nitrokey« möchte ich euch zeigen, wie man den Nitrokey mit einem Android-Smartphone koppelt. Mithilfe der App OpenKeychain und des E-Mail-Clients FairEmail (Alternativ K-9 Mail) könnt ihr anschließend verschlüsselte E-Mails am Smartphone lesen oder selbst E-Mails für einen Empfänger verschlüsseln.
- Zwei Schlüssel für alle Fälle – Nitrokey Teil1
- GnuPG-Schlüsselerstellung und Smartcard-Transfer – Nitrokey Teil2
- GnuPG-Public-Key-Authentifizierung – Nitrokey Teil3
- GnuPG: E-Mail-Verschlüsselung unter Android – Nitrokey Teil4
2. Problem: Smartphone
Eine häufige Frage lautet:
Sind meine geheimen Schlüssel auf meinem mobilen Gerät sicher?
Nein. Sind sie (eigentlich) nicht. Auch auf einer anderen Hardware wie einem Notebook, Rechner etc. sind private Schlüssel grundsätzlich nicht sicher. Das hat mehrere Gründe:
- Proprietäre Hardware: Egal ob Notebook, Rechner oder Mobilgerät – die meisten Geräte werden mit proprietärer Hardware ausgeliefert. Es ist grundsätzlich nicht nachvollziehbar, was diese herstellerspezifischen Bauteile im Detail tun, da der Quellcode bzw. generelle Aufbau unbekannt ist. Ob Hintertüren eingebaut sind, kann nur sehr schwer oder gar nicht beurteilt werden.
- Software: Selbst wenn nur quelloffene Software zum Einsatz kommt, besteht die Gefahr, dass das Gerät durch eine Sicherheitslücke oder Unachtsamkeit des Anwenders von einer Schadsoftware befallen wird. Ausgehend von dieser Annahme sind die privaten Schlüssel auf der Festplatte / internen Speicher nicht ausreichend vor dem Auslesen geschützt.
- Diebstahl: Bei einem mobilen Endgerät besteht eine erhöhte Gefahr des Verlusts durch Diebstahl oder Unachtsamkeit. Ist das Gerät nicht ausreichend durch eine Verschlüsselung und Passwortschutz bzw. Lockscreen vor einem Angreifer geschützt, kann der private Schlüssel entwendet werden.
Je nach persönlichem Sicherheitsbedarf verwendet man daher Security-Tokens wie den Nitrokey, der eine sichere Verwahrung des geheimen bzw. privaten (RSA-)Schlüssels ermöglicht. Dieser wird über eine manipulationssichere Smartcard (+Benutzerpin) vor Verlust bzw. Diebstahl geschützt. In der Praxis bedeutet das: Der private Schlüssel verlässt die sichere Umgebung nicht und alle Krypto-Operationen (Verschlüsselung, Entschlüsselung, Authentifizierung etc.), die auf den privaten Schlüssel zurückgreifen, werden auf der Smartcard bzw. dem Stick ausgeführt. Im Idealfall kann der private Schlüssel also nicht von einer Schadsoftware ausgelesen werden und hält selbst physischen Angriffen stand.
3. Nitrokey mit Android verbinden
Um den Nitrokey mit einem Android-Smartphone zu verbinden, um darüber später verschlüsselte E-Mails zu lesen bzw. zu versenden sind die nachfolgenden Voraussetzungen zu erfüllen:
- Ihr benötigt ein Android-Smartphone mit USB-On-the-Go-Kompatibilität (USB OTG)
- Ein USB-OTG-Kabel zur Verbindung des Nitrokeys mit dem Smartphone
- OpenKeychain – vergleichbar mit GnuPG auf einem GNU/Linux-System
- Euren öffentlichen Schlüssel direkt abgelegt auf dem Smartphone oder einem Keyserver
- Einen E-Mail-Client wie FairEmail oder K-9 Mail, der OpenKeychain unterstützt
Bevor ihr also loslegt, solltet ihr zunächst oben genannte Voraussetzungen erfüllen. Insbesondere solltet ihr den öffentlichen Teil eures Schlüssels auf euer Android-Smartphone kopieren. Nachfolgend wird die Einrichtung auf dem Android-Gerät beschrieben.
Der Kuketz-Blog ist spendenfinanziert!
Unabhängig. Kritisch. Informativ. Praxisnah. Verständlich.
Die Arbeit von kuketz-blog.de wird vollständig durch Spenden unserer Leserschaft finanziert. Sei Teil unserer Community und unterstütze unsere Arbeit mit einer Spende.
3.1 OpenKeychain
Öffnet zunächst die OpenKeychain-App und verbindet anschließend den Nitrokey via OTG-Kabel mit eurem Gerät. Anschließend öffnet sich ein Dialog:
Da der öffentliche Schlüssel nicht auf einem Keyserver gefunden werden konnte (es sei denn, ihr habt ihn dort hinterlegt), muss er manuell vom internen Speicher importiert werden:
Bei mir im Beispiel trägt der öffentliche Schlüssel die Bezeichnung pubkey_nitrokey@kuketz.de.asc
, abgelegt unter Downloads. Mit einem Fingertipp wird der Schlüssel ausgewählt und in OpenKeychain importiert. Nach dem Import-Vorgang könnt ihr den Status eures Schlüsselpärchens mit einem Fingertipp auf SCHLÜSSEL ANSEHEN
prüfen:
Anschließend ist die Einrichtung in OpenKeychain abgeschlossen und kann mit FairEmail oder K-9 Mail benutzt werden.
3.2 FairEmail
Nachfolgend wird anhand des E-Mail-Clients FairEmail dargestellt, wie der Nitrokey in Kombination mit OpenKeychain zum Entschlüsseln von E-Mails benutzt wird. Zu Testzwecken habe ich an die Adresse nitrokey@kuketz.de
eine verschlüsselte E-Mail versendet – diese Adresse ist mit dem Schlüsselpärchen auf dem Nitrokey verknüpft. Eine verschlüsselte E-Mail erkennt ihr am Schlosssymbol (rot markiert):
Mit einem Fingertipp auf die E-Mail öffnen sich weitere Details. Anschließend müsst ihr auf die Zeile mit der Klammer tippen [1] bzw. den verschlüsselten E-Mail-Anhang mit der Bezeichnung encrypted.asc
öffnen. Alternativ könnt ihr auch einfach auf das Schloss-Symbol
[1] tippen. Daraufhin wird eine Einblendung [2] am unteren Rand des Displays erscheinen. Ihr habt nun die Möglichkeit den verschlüsselten E-Mail-Anhang mit OpenKeychain zu öffnen. Der Entschlüsselungsvorgang wird anschließend auf dem Nitrokey stattfinden, auf dem ebenfalls der private Schlüssel abgelegt ist.
Anschließend erfolgt (sofern ihr eine PIN vergeben habt) ein Dialog, der euch zur Eingabe eures PINs auffordert. Nach korrekter Eingabe wird die E-Mail entschlüsselt dargestellt:
Laut Anzeige wurde die E-Mail verschlüsselt, aber nicht signiert. Das ist korrekt.
4. Einsatz in der Praxis
Wer den privaten Schlüssel auf dem Smartphone ablegt, kann E-Mails natürlich ganz bequem ver- und entschlüsseln. Allerdings ist dann die unter Ziffer 2 angesprochene Problematik zu beachten.
Mehr Sicherheit kann durch die Nutzung eines Security-Tokens erreicht werden, den man allerdings dann auch mitnehmen muss, falls man unterwegs verschlüsselte E-Mails lesen bzw. versenden möchte. Da der Nitrokey im Gegensatz zum YubiKey kein Near Field Communication (NFC) bietet, muss zusätzlich noch ein USB-OTG-Kabel mitgeschleppt werden. In der Praxis sieht das dann folgendermaßen aus:
Die Möglichkeit, per NFC zu kommunizieren, mag praktisch sein, persönlich sehe ich darin einen zusätzlichen Angriffsvektor – wie eine Schwachstelle im YubiKey beweist. Die Kombination aus Nitrokey + USB OTG-Kabel mag also umständlich erscheinen, allerdings bietet sie gleichzeitig auch einen hohen Schutz des privaten Schlüssels. Je nach persönlichem Sicherheitsbedarf muss man sich also die Frage stellen, ob man diesen Aufwand auf sich nehmen möchte.
5. Fazit
Der Schutz bzw. die sichere Aufbewahrung des privaten Schlüssels ist für diverse (Krypto-)Anwendungsfälle eine grundlegende Voraussetzung. Im Idealfall verlässt der private Schlüssel die sichere Umgebung des Nitrokeys nicht und alle Krypto-Operationen (Verschlüsselung, Entschlüsselung, Authentifizierung etc.), die auf den privaten Schlüssel zurückgreifen, werden auf der Smartcard bzw. dem Stick ausgeführt. Unter dieser Voraussetzung ist eine »sichere« E-Mail-Verschlüsselung in der Android-Umgebung möglich.
Im kommenden Teil der Artikelserie werden wir den Nitrokey für den Austausch von verschlüsselten E-Mails auf dem Desktop-Rechner verwenden. Dazu nutzen wir GnuPG und den freien E-Mail-Client Thunderbird mit dem sich ab Version 78 E-Mails entschlüsseln / verschlüsseln und auch signieren lassen:
As a replacement for Enigmail, the Thunderbird team intends to develop new, integrated support for OpenPGP messaging, and plans to make it available in the Thunderbird 78 release that is planned for summer 2020.
Bildquellen:
Data Encryption: Nhor Phai from www.flaticon.com is licensed by CC 3.0 BY
Wenn du über aktuelle Beiträge informiert werden möchtest, hast du verschiedene Möglichkeiten, dem Blog zu folgen:
9 Ergänzungen zu “GnuPG: E-Mail-Verschlüsselung unter Android – Nitrokey Teil4”
Forum oder der Chat geeignete Anlaufstellen, um dein Anliegen zu diskutieren. Per E-Mail beantworte ich grundsätzlich keine (Support-)Anfragen – dazu fehlt mir einfach die Zeit. Kuketz-ForumAbschließender Hinweis
Blog-Beiträge erheben nicht den Anspruch auf ständige Aktualität und Richtigkeit wie Lexikoneinträge (z.B. Wikipedia), sondern beziehen sich wie Zeitungsartikel auf den Informationsstand zum Zeitpunkt des Redaktionsschlusses.Kritik, Anregungen oder Korrekturvorschläge zu den Beiträgen nehme ich gerne per E-Mail entgegen.
Hallo Mike,
was ich noch nicht ganz verstehe (vllt. übersehen); kann ich mit einem Nitrokey auf mehreren PCs arbeiten? Ich versende E-Mail von zu Hause von einem MacBook und Linux Rechner sowie auf der Arbeit in der Virtuellen Maschine (Linux). Muss ich bei allen den öffentlichen Schlüssel ablegen?
Danke
MfG
Stanok
Du kannst mit dem Nitrokey an unterschiedlichen Geräten arbeiten – eben überall dort, wo du den privaten Schlüssel benötigst. Den öffentlichen Schlüssel braucht dein Gegenüber – jedenfalls bei der E-Mail-Verschlüsselung.
Du musst glaube ich schon bei allen den öffentlichen Schlüssel importieren, damit du den Nitrokey verwenden kannst. Das geht aber bei OpenKeyChain so halbautomatisch. Entweder du hinterlegst auf dem Nitrokey eine URL, wo der öffentliche Schlüssel herunterladbar ist oder OpenKeyChain sucht auf Keyservern. Ansonsten musst du den öffentlichen Schlüssel von Hand importieren.
Interessanter Artikel, danke!
Wie viele Schlüsselpaare passen auf so einen Key? Kann ich beispielsweise jeweils 1 private und 1 public key für mehrere E-Mail-Adressen auf den Key kopieren.
Derzeit verzichte ich aus den von dir genannten Gründen auf Verschlüsselung am Androiden, muss mich also beim erhalt einer Mail immer gedulden, bis ich am heimischen Rechner bin.
Ich habe Keys für 1 private Adresse mit Klarnamen, 1 private Adresse mit Pseudonym und 1 dienstliche Adresse. Also insgesamt 3 Paare, 6 Keys – jeweils RSA 4096 Bit. Würde man die alle auf einen Nitrokey kriegen?
Nitrokey Start, Pro 2, Storage haben jeweils einen Slot zum Verschlüsseln, Signieren und Authentisieren. Also mehrere Encryption Keys geht nicht. Da bräuchtest du für jedes Schlüsselset einen eigenen Hardware Key.
Öffentliche Schlüssel legst du da grundsätzlich nicht ab. Die brauchen ja keinen Schutz, sie sind ja öffentlich. Du kannst aber eine URL darauf hinterlegen, wo die öffentlichen Schlüssel runterladbar sind.
Danke, das hatte ich schon befürchtet. Gutes und interessantes Konzept, aber für mehrere Identitäten wieder teuer in der Anschaffung und unbequem in der Nutzung (Wechsel der Sticks). Ich denke ich werde mir das ganze aber trotzdem einmal anschauen und einen Nitrokey Start bestellen.
Moin!
Vielen Dank für die Artikelserie! Was ich noch nicht ganz durchschaut habe: Kann ich einen der NitroKeys auch als Passwortsafe bei Android nutzen?
Vielen Dank schonmal!
Ja, das geht. Mit https://www.passwordstore.org/
Da kannst du (mit git) deine Passwörter zwischen PCs und Androidgeräten synchronisieren und mit dem Nitrokey entschlüsseln. Es gibt Broweerextensions (browserpass) für Desktopsysteme und eine App für Android, die mit OpenKeyChain zusammenarbeitet.
Vorsicht: Wenn du das Autofill Feature der Android App aktivierst, wird dein Android Verschlüsselungspasswort auf Default zurückgesetzt. Muss danach von Hand wieder neu gesetzt werden. (s. https://blog.g3rt.nl/android-lollipop-encryption-user-interface-flaw.html)
Habe mir auch vor kurzem einen Nitrokey Pro 2 gekauft. Der Passwortsafe, bei dem die Passwörter leider auf 20 Zeichen begrenzt sind, und OTP können am PC verwenden werden. Am Smartphone ist es zur Zeit noch nicht einsetzbar.
Auszug aus einem Nitrokey-Forumsbeitrag (vom Mai 2018, übersetzt mit Deepl):
Falls jemand hierfür eine einfache Lösung bzw. App kennt würde mich das auch interessieren.