OpenPGP-SmartCard V2.0 unter Ubuntu 10.04
GnuPG 2
GnuPG in der Version 1 kann keine drei 2048er Schlüssel auf der Chipkarte speichern (generate), es speichert zwei mit 2048 und einen mit 1024 Bit. Nur mit GnuPG 2 können die Schlüssel richtig auf die Chipkarte geschrieben werden, deshalb nur gpg2 verwenden.
GnuPG 2-Installation
~# aptitude install gnupg2 gpgsm xloadimage
xloadimage wird zum Anzeigen eines Passbildes verwendet. Installierte Abhängigkeiten: gnupg-agent libksba8 pinentry-gtk2. Aus Gnome ausloggen und wieder einloggen.
Chipkartendaten anzeigen
Daten, die auf der OpenPGP-SmartCard gespeichert sind, anzeigen:
~$ gpg2 --card-status
Falls folgende Meldung erscheint:
gpg: OpenPGP Karte ist nicht vorhanden: Unbekanntes IPC Kommando
bitte überprüfen, ob in der Datei ~/.gnupg/gpg.conf die Verwendung des gpg-Agenten aktiviert ist, der Eintrag use-agent
muss in einer Zeile existieren. Danach ausloggen, wieder einloggen und den Befehl wiederholen.
Wurde das Verzeichnis ~/.gnupg automatisch neu angelegt und es erscheint folgende Fehlermeldung:
gpg: '/usr/share/gnupg/gpg-conf.skel' kann nicht geöffnet werden: No such file or directory
kann dies durch folgende Eingabe bereinigt werden:
~$ cp /usr/share/gnupg2/gpg-conf.skel ~/.gnupg/gpg.conf ~$ echo "use-agent" >> ~/.gnupg/gpg.conf ~$ chmod 600 ~/.gnupg/gpg.conf
PIN-Informationen
Auslieferungszustand Chipkarten-PINs:
PIN: 123456 Admin PIN: 12345678
Wird die PIN dreimal falsch eingegeben, kann sie mit der Admin-PIN entsperrt werden. Wird die Admin-PIN dreimal falsch eingegeben, ist die Chipkarte unbrauchbar.
Chipkarte personalisieren und Schlüssel erstellen
~$ gpg2 --card-edit Befehl> help Befehl> admin Befehl> help Befehl> name Befehl> sex Befehl> list
Neue Schlüssel erstellen (nur bei einer neuen Chipkarten, oder wenn die vorhandenen Schlüssel überschrieben werden sollen):
Befehl> generate Sicherung des Verschlüsselungsschlüssel ausserhalb der Karte erstellen? (J/n) J
Bitte beachten, hier wird nur der Verschlüsselungs-Schlüssel (Encryption key) gesichert, der Signatur-Schlüssel (Signature key) und der Authentifizierungs-Schlüssel (Authentication key) werden nicht gesichert! Diese Sicherung wird benötigt, wenn die Chipkarte defekt ist und der Schlüssel auf eine neue Chipkarte geschrieben werden soll.
Welche Länge wünschen Sie für den Signaturschlüssel? (2048) <-| Welche Länge wünschen Sie für den Verschlüsselungsschlüssel? (2048) <-| Welche Länge wünschen Sie für den Authentifizierungsschlüssel? (2048) <-|
Die Gültigkeit des Schlüssels kann zum Beispiel auch auf fünf Jahre begrenzt werden, muss aber nicht:
Wie lange bleibt der Schlüssel gültig? (0) 5y Ist dies richtig? (j/N) j Ändern: (N)ame, (K)ommentar, (E)-Mail oder (F)ertig/(B)eenden? F
Nun kann es etwas dauern bis zur Eingabe der Passphrase. Eine gute Passphrase eingeben, diese wird benötigt, wenn zum Beispiel die Chipkarte defekt ist und eine Sicherungskopie des Schlüssels auf eine neue Chipkarte geladen werden soll. Nun dauert es noch einige Zeit, bis die Schlüssel erstellt wurden.
Befehl> list Befehl> quit
PINs der Chipkarte ändern
~$ gpg2 --card-edit Befehl> admin Befehl> passwd 1 - change PIN ... 3 - change Admin PIN ... q quit
Schlüssel der Chipkarte listen
Private Schlüssel:
~$ gpg2 --list-secret-keys
Öffentliche Schlüssel:
~$ gpg2 --list-keys
Passbild einfügen
Nachträglich kann ein Passbild in den öffentlichen Schlüssel eingefügt werden. Dies kann man tun, ist aber für die Funktion der Chipkarte nicht wichtig. Benötigt wird ein Bild im JPEG-Format, das Bild sollte 120x150 Pixel haben, maximal aber 240x288 Pixel. Die Key-ID wurde mit dem zuvor ausgeführten Befehl gpg2 --list-secret-keys
angezeigt und ist hinter sec> 2048R/
zu finden. Es ist auch möglich, den Namen (Format: "Vorname Nachname" in Anführungszeichen) oder die E-Mail-Adresse zu verwenden:
~$ gpg2 --edit-key <Key-ID> addphoto quit
Schlüssel sichern
Die Daten auf einen USB-Stick oder einer CD-ROM sichern, in diesem Beispiel wird ein USB-Stick verwendet. Der USB-Stick sollte mit dem Dateisystem ext3 oder ext4 formatiert sein. Den Pfad-Teil usbxxx durch den richtigen Pfadnamen ersetzen:
~$ cp -p ~/.gnupg/sk_*.gpg /media/usbxxx ~$ shred -z ~/.gnupg/sk_*.gpg ~$ rm ~/.gnupg/sk_*.gpg
Bei Beschädigung der Chipkarte kann der gesicherte Verschlüsselungs-Schlüssel in eine neue Chipkarte importiert werden.
Die Key-Id ermitteln und sichern:
~$ gpg2 --card-status | grep 'sec>' > /media/usbxxx/Key-ID.txt
Ohne die Datei ~/.gnupg/pubring.gpg sind die Schlüssel auf der Chipkarte nicht mehr zu gebrauchen, diese Datei muss auch gesichert werden. Die Datei secring.gpg braucht nicht gesichert werden:
cp -p ~/.gnupg/pubring.gpg /media/usbxxx
Rückruf-Zertifikat
Ein Rückruf-Zertifikat erstellen, wenn die Chipkarte nicht mehr genutzt werden soll. Dieses Zertifikat sollte auch zur Datensicherung auf dem USB-Stick gespeichert werden. Bitte beachten, wenn die Rückruf-Zertifikat Datei nicht sicher aufbewahrt wird, kann jeder die Schlüssel auf einem Schlüsselserver damit für ungültig erklären!
Öffentliche Schlüssel (pub 2048R/XXXXXXXX) listen:
~$ gpg2 --list-keys
Die Key-ID feststellen und das Rückruf-Zertifikat erstellen (0 Kein Grund):
~$ gpg2 --gen-revoke <Key-ID> > ~/.gnupg/revocation.crt
Es können auch mehrere Rückruf-Zertifikate für alle Widerrufs-Gründe unter anderen Dateinamen erstellt werden:
~$ mv ~/.gnupg/revocation.crt /media/usbxxx/
Die Sicherheitskopie des Schlüssels auf dem USB-Stick oder der CD-ROM an einem sicheren Ort aufbewahren!