Die Sicherheit asymmetrischer Verschlüsselung hängt in hohem Maße von der sicheren Aufbewahrung des privaten Keys ab. Nutzt man GnuPG auf mehreren Rechnen, insbesondere wenn andere Nutzer Administrator- bzw. Root-Privilegien auf diesen Rechnern haben, könnte der private Key in falsche Hände gelangen.
Böswillige Buben könnten mit einem Trojaner versuchen, den privaten Key zu kopieren und das Passwort mit Tools wie
Elcomsoft Distributed Password Recovery ermitteln. Die unbedachte Entsorgung einer Festplatte oder eines Computers ist ein weiteres Risiko, wenn der private Key nicht zuverlässig gelöscht wurde.
-
SmartCards ermöglichen eine sichere Nutzung von GnuPG unter diesen Bedingungen. Der private Key ist ausschließlich auf der SmartCard gespeichert, er verläßt diese sichere Umgebung nicht. Sämtliche kryptografischen Operationen werden auf der Card ausgeführt.
CardReader (USB) und GnuPG-SmartCards gibt es bei kernelconcepts.de.
-
CryptoStick: Da das Handling mit CardReader und SmartCard unter Umständen etwas umständlich sein kann, wurde ein USB-Stick entwickelt, der CardReader und eine SmartCard in einem Gehäuse enthält. (Projektseite)
Den CryptoStick kann man ebenfalls bei kernelconcepts.de kaufen oder beim FoeBud.
Hardware-Treiber installieren
Vor der Nutzung der SmartCard ist der Hardware-Treiber für den CardReader zu installieren.
- WINDOWS: Die Lieferung des CardReaders von kernelconcepts.de enthält eine CD mit den nötigen Treiber für WINDOWS. Das zum Gerät passende ZIP-Archiv ist zu entpacken und "setup.exe" als Administrator zu starten.
Für den CryptoStick gibt es den PC Twin USB PC/SC Treiber bei Gemalto als ausführbare MSI-Datei. Verwenden sie die englische Version, wenn sie nicht perfekt Französisch können.
- Linux: Da Linux out-of-the-box viel mehr Hardware unterstützt als Windows, sind die nötigen Treiber in den Repositories enthalten. Unter Debian/Ubuntu installiert man alles Nötige für die SmartCard und CryptoStick mit folgendem Kommando:
> sudo aptitude install pcscd libpcsclite1 libccid
Die Pakete openct und opensc sollten entfernt werden, da diese zu Beeinträchtigungen führen können.
> sudo aptitude purge openct opensc
Außerdem benötigen die aktuelle OpenPGP-SmartCard und der Crypto-Stick GnuPG mindestens in der
Version 1.4.9+ oder die 2.0.12+. Unter WINDOWS funktioniert erst die
Version 1.4.10. Aktualisieren sie ihre GnuPG Version, wenn nötig.
Wer
"gpg2" nutzen möchte, sollte beachten, dass der
"gpg-agent" unbedingt nötig ist.
Nachdem die Software installiert wurde, sollte man prüfen, ob alles funktioniert. SmartCard anschließen und auf der Konsole bzw. in der DOS-Box eingeben:
> gpg --card-status
Application ID ...: D27600xxxxxxxxxxxxxxx
Version ..........: 2.0
Manufacturer .....: unknown
....
SmartCards und CryptoStick mit Enigmail nutzen
Enigmail ist ab der Version 1.0.1 voll kompatibel mit der SmartCard und dem CryptoSick. Aktuelle Linux-Versionen enthalten in der Regel eine ältere Version in den Repositories. Wer diese Pakete installiert hat, sollte sie wieder entfernen und eine aktuelle Enigmal Version von der
Mozilla Addon Website installieren.
Das Plug-In bietet eine grafische Oberfläche, um die SmartCard zu verwalten. Diese Funktionen öffnet man über den Menüpunkt
"OpenPGP - Smartcard verwalten".

- Als erstes kann man die Card personalisieren und den Namen usw. editieren, eine URL für den Public Key angeben... ("Edit Card Data")
- Im zweiten Schritt sollte der PIN und der Admin-PIN geändert werden. Der PIN ist eine 6-stellige Zahlenkombination (Default: 123456), welche den User-Zugriff auf die Card sichert. Der Admin-PIN ist eine 8-stellige Zahlenkombination (Default: 12345678) für die Verwaltung.
Wurde der PIN 3x falsch eingegeben, wird die Card gesperrt und kann mit dem Admin-PIN wieder entsperrt werden ("Unblock PIN"). Wird der Admin-PIN 3x falsch eingegeben, ist die SmartCard zerstört!.
Die Festlegung auf 6- bzw. 8-stellige Zahlenkombinationen legt es nahe, ein Datum aus dem persönlichen Leben als PINs zu nutzen. Das reduziert die Vergeßlichkeit. Es sollte jedoch kein einfach zu erratenes Datum wie der Geburtstag des Töchterchens sein ;-).
- Als letzten Schritt vor der Nutzung der SmartCard im täglichen Krypto-Chaos sind die Keys auf der SmartCard zu generieren.
Der Dialog bietet die Auswahl eines Mail-Account an, für den die SmartCard genutzt werden soll. Für diesen Account darf kein(!) OpenPGP-Key vorhanden sein. Anderenfalls bricht der Vorgang mit einer Fehlermeldung ab.
Es sollte unbedingt bei der Erzeugung des Schlüssels ein Backup der Card-Keys angelegt und mit einem Passwort gesichert werden. Später ist kein Zugriff auf diese Schlüssel mehr möglich. Bei Beschädigung der SmartCard kann der gesicherte Card-Key in eine neue SmartCard importiert werden. Das Backup wird im GnuPG-Verzeichnis abgelegt und ist auf einem sicheren Datenträger zu speichern!
Wurden die Schlüssel erfolgreich generiert, findet man in der "Schlüsselverwaltung" ein neues Paar. Der Public Key dieses Schlüsselpaares kann wie üblich exportiert und den Partnern zur Verfügung gestellt werden. Der Private Key dieses Paares definiert lediglich, dass die kryptografischen Operationen auf einer SmartCard auszuführen sind. Er ist ohne die passende Card unbrauchbar.
Für Genießer
Die Nutzung von
"gpg" oder
"gpg2" auf der Kommandozeile bietet etwas mehr Möglichkeiten, als bisher im Enigmail-GUI implementiert sind. Natürlich stehen auch die mit dem GUI durchführbaren Funktionen auf der Kommandozeile zur Verfügung:
- gpg --card-edit
Befehl> admin (Freischalten der Admin-Funktionen)
- Befehl> help (Listet die verfügbaren Funktionen auf)
- Befehl> passwd (PINs für den Zugriff zu ändern)
- Befehl> generate (Neues Schlüsselpaar generieren)
- Befehl> quit (Beenden)
Möglicherweise hat man bereits eine OpenPGP Schlüssel mit vielen Signaturen. Den möchte man nicht wegwerfen und im Web of Trust noch einmal von vorn beginnen. Als Ausweg bietet es sich an, einen vorhandenen, starken Schlüssel mit der SmartCard zusätzlich zu schützen. Der Zugriff auf den geheimen Schlüssel ist dann nur mit der SmartCard möglich. Es ist dem vorhanden Schlüssel mit der ID
key-id ein Subkey der SmartCard hinzuzufügen. Das geht nur auf der Kommandozeile:
- gpg --edit-key key-id
Befehl> addcardkey
Dabei wird ein evtl. auf der SmartCard vorhandener Key zertört!