GnuPG: E-Mail-Verschlüsselung unter Android – Nitrokey Teil4

1. Verschlüsseln / EntschlüsselnNitrokey Android

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.

Dieser Beitrag ist Teil einer Artikelserie:

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.

Mitmachen ➡

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:

Import Keyring

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:

Öffentlichen Schlüssel auswählen

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:

Key Status

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):

Verschlüsselte E-Mail

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.

E-Mail entschlüsseln

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:

Entschlüsselte E-Mail

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:

Nitrokey & Smartphone

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

Über den Autor | Kuketz

Mike Kuketz

In meiner freiberuflichen Tätigkeit als Pentester / Sicherheitsforscher (Kuketz IT-Security) schlüpfe ich in die Rolle eines »Hackers« und suche nach Schwachstellen in IT-Systemen, Webanwendungen und Apps (Android, iOS). Des Weiteren bin ich Lehrbeauftragter für IT-Sicherheit an der Dualen Hochschule Karlsruhe, sensibilisiere Menschen in Workshops und Schulungen für Sicherheit und Datenschutz und bin unter anderem auch als Autor für die Computerzeitschrift c’t tätig.

Der Kuketz-Blog bzw. meine Person ist regelmäßig in den Medien (heise online, Spiegel Online, Süddeutsche Zeitung etc.) präsent.

Mehr Erfahren ➡

SpendeUnterstützen

Die Arbeit von kuketz-blog.de wird zu 100% durch Spenden unserer Leserinnen und Leser finanziert. Werde Teil dieser Community und unterstütze auch du unsere Arbeit mit deiner Spende.

Folge dem Blog

Wenn du über aktuelle Beiträge informiert werden möchtest, hast du verschiedene Möglichkeiten, dem Blog zu folgen:

Bleib aktuell ➡


Diskussion

9 Ergänzungen zu “GnuPG: E-Mail-Verschlüsselung unter Android – Nitrokey Teil4”

  1. Comment Avatar Stanok sagt:

    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

    • Comment Avatar Mike Kuketz sagt:

      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.

    • Comment Avatar Johannes sagt:

      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.

  2. Comment Avatar C sagt:

    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?

    • Comment Avatar Johannes sagt:

      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.

      • Comment Avatar C sagt:

        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.

  3. Comment Avatar Robert sagt:

    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!

    • Comment Avatar Johannes sagt:

      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)

    • Comment Avatar Anonymous sagt:

      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):

      Das Problem ist, dass es noch keine App gibt, die die OTP-Funktionalität von Nitrokey tatsächlich nutzen kann. Wir würden so etwas gerne sehen, aber es ist keine schnelle Sache, die man machen kann und wird nicht oft verlangt. Kurz gesagt: Wir sind offen für eine solche Funktionalität, aber sie steht leider nicht auf unserer Prioritätenliste.

      Falls jemand hierfür eine einfache Lösung bzw. App kennt würde mich das auch interessieren.

HilfeWenn du konkrete Fragen hast oder Hilfe benötigst, sind das offizielle 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-Forum

Abschließ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.