Inhaltsverzeichnis

GPF CryptoStick - Kartenverwaltung

Bei nachfolgenden Paxisbeispielen gehen wir nun im Detail etwas genauer ein, wie mit Hilfe von GnuPG die User- und Admin-PIN verändert, ein Schlüssel generiert und auch anschließend auf einen Keyserver geladen werden kann. Auch findet man ein Verweis für eine GUI, wer den Umgang mit der Konsole scheut.

Kartenverwaltung

Konsole

Mit Hilfe des Programms gpg --card-edit können wir bei Bedarf sämtliche Änderungen auf der Crypto-Chipkarte vornehmen.

$ gpg2 --card-edit
Application ID ...: D2760001240102000005000008D10000
Version ..........: 2.0
Manufacturer .....: ZeitControl
Serial number ....: 000008D1
Name of cardholder: Nausch Michael
Language prefs ...: de
Sex ..............: männlich
URL of public key : -
Login data .......: -
Signature PIN ....: zwingend
Key attributes ...: 2048R 2048R 2048R
Max. PIN lengths .: 32 32 32
PIN retry counter : 0 0 3
Signature counter : 0
Signature key ....: [none]
Encryption key....: [none]
Authentication key: [none]
General key info..: [none]

Befehl> help
quit       Menü verlassen
admin      Zeige Admin-Befehle
help       Diese Hilfe zeigen
list       Alle vorhandenen Daten auflisten
fetch      Holen des Schlüssels mittels der URL auf der Karte
passwd     Menü für Ändern oder Entsperren der PIN
verify     überprüfe die PIN und liste alle Daten auf
unblock    die PIN mit dem Rückstellcode wieder freigeben

PINs ändern

So können wir einfach die Vorgabe-PIN 123456 für den Benutzer und die Admin-PIN 12345678 abändern.

Befehl> passwd
gpg: OpenPGP Karte Nr. D2760001240102000005000008D10000 erkannt

1 - change PIN
2 - unblock PIN
3 - change Admin PIN
4 - set the Reset Code
Q - quit

Schlüssel generieren

Wie auch beim normalen Generieren und Ablegen der Schlüssel im Dateisystem unseres Rechners, gestaltet sich auch beim CryptoStick entsprechend einfach, ist es ja im Grunde „nur“ eine Option beim Aufruf des Befehls gpg.

$ gpg2 –card-edit

Befehl> generate
Sicherung des Verschlüsselungsschlüssel außerhalb der Karte erstellen? (J/n) j
Welche Schlüssellänge wünschen Sie für den Unterschriften-Schlüssel? (2048) 2048
Welche Schlüssellänge wünschen Sie für den Verschlüsselungs-Schlüssel? (2048) 2048
Welche Schlüssellänge wünschen Sie für den Authentisierungs-Schlüssel? (2048) 2048
Bitte wählen Sie, wie lange der Schlüssel gültig bleiben soll.
         0 = Schlüssel verfällt nie
      <n>  = Schlüssel verfällt nach n Tagen
      <n>w = Schlüssel verfällt nach n Wochen
      <n>m = Schlüssel verfällt nach n Monaten
      <n>y = Schlüssel verfällt nach n Jahren
Wie lange bleibt der Schlüssel gültig? (0) 0
Schlüssel verfällt nie
Ist dies richtig? (j/N) j

GnuPG erstellt eine User-ID um Ihren Schlüssel identifizierbar zu machen.

Ihr Name ("Vorname Nachname"): Michael Nausch
Email-Adresse: django@nausch.org
Kommentar: CS4privacy
Sie haben diese User-ID gewählt:
    "Michael Nausch (CS4privacy) <django@nausch.org>"

Ändern: (N)ame, (K)ommentar, (E)-Mail oder (F)ertig/(B)eenden? F
Sie benötigen eine Passphrase, um den geheimen Schlüssel zu schützen.

gpg: Hinweis: Sicherung des Kartenschlüssels wurde auf `/home/django/.gnupg/sk_F162C6B54379521B.gpg' gespeichert
gpg: Schlüssel FF11F122 ist als uneingeschränkt vertrauenswürdig gekennzeichnet
Öffentlichen und geheimen Schlüssel erzeugt und signiert.

gpg: "Trust-DB" wird überprüft
gpg: 3 marginal-needed, 1 complete-needed, PGP Vertrauensmodell
gpg: Tiefe: 0  gültig:   1  unterschrieben:   0  Vertrauen: 0-, 0q, 0n, 0m, 0f, 1u
pub   2048R/FF11F122 2011-07-14
  Schl.-Fingerabdruck = 2687 CC47 0D90 A155 24E1  8D0C CE80 FE4F FF11 F122
uid                  Michael Nausch (CS4privacy) <django@nausch.org>
sub   2048R/B335B612 2011-07-14
sub   2048R/4379521B 2011-07-14

Fragen wir nun den auf dem Cryptostick abgelegten Schlüssel ab, so wird dieser z.B. wie folgt angezeigt.

Befehl> list

Application ID ...: D2760001240102000005000008D10000
Version ..........: 2.0
Manufacturer .....: ZeitControl
Serial number ....: 000008D1
Name of cardholder: Nausch Michael
Language prefs ...: de
Sex ..............: männlich
URL of public key : -
Login data .......: -
Signature PIN ....: zwingend
Key attributes ...: 2048R 2048R 2048R
Max. PIN lengths .: 32 32 32
PIN retry counter : 3 0 3
Signature counter : 5
Signature key ....: 2687 CC47 0D90 A155 24E1  8D0C CE80 FE4F FF11 F122
      created ....: 2011-07-14 08:24:07
Encryption key....: E2F5 F992 6BA3 8F28 F9EF  A288 F162 C6B5 4379 521B
      created ....: 2011-07-14 08:24:07
Authentication key: C446 AA76 BDA1 CDAA 3D03  E175 37A6 4C68 B335 B612
      created ....: 2011-07-14 08:24:07
General key info..: 
pub  2048R/FF11F122 2011-07-14 Michael Nausch (CS4privacy) <django@nausch.org>
sec>  2048R/FF11F122  erzeugt: 2011-07-14  verfällt: niemals   
                      Kartennummer:0005 000008D1
ssb>  2048R/B335B612  erzeugt: 2011-07-14  verfällt: niemals   
                      Kartennummer:0005 000008D1
ssb>  2048R/4379521B  erzeugt: 2011-07-14  verfällt: niemals   
                      Kartennummer:0005 000008D1

Über den Befehl quit verlassen wir die menügeführte Kartenverwaltung wieder.

Befehl> quit

Kartendaten

Über den Befehl gpg --card-status können wir uns die Daten unseres Cryptosticks anzeigen lassen.

Die einzelnen Datenfelder haben hierbei folgende Bedeutung:

Datenfeld Beschreibung
Application ID Individuelle (unique) KartenID, diese beinhaltet:
° den Kartentyp
° die Version der Spezifikation
° den Hersteller und
° die Seriennummer des Cryptosticks
Diese Application ID ist einmalig und bei jeder Karte anders.
Version verwendete OpenPGP Version
Manufacturer Hersteller der Karte
Serial number Seriennummer der Karte, die vom Hersteller vergeben wurde.
Name of cardholder Vorname und Nachname des Karteninhabers ( Es sind hier derzeit nur reines ASCII erlaubt, also keine deutschen Umlaute). Dieses Feld wird von GPG nicht verwendet.
Language prefs Gewählte/bevorzugte Sprache (Muttersprache) des Karteninhabers. Dieses Feld wird von GPG nicht verwendet.
Sex Geschlecht des Karteninhabers.: (Männlich (M), Weiblich (F) oder Leerzeichen)
URL of public key Angabe einer URL, mit der der public-key mit Hilfe des Befehls fetch unter gpg –edit-card auf die Karte geladen werden kann.
Login data Bei diesem Feld kann der Account-Name des Karteninhabers abgelegt werden, der bei Anmeldeversuchen genutzt werden kann. GPG führt hier keinerlei Abgleiche zwischen diesem Namen und dem Namen der in einem Schlüssel angegeben und verwendet wird durch!
Signature PIN Hier kann über die beiden Schalter zwingend und nicht zwingedn eingestellt werden, ob bei jedem Signaturevorgang die PIN abgefragt werden soll, oder nicht. Bei der Option nicht zwingend kann GPG die PIN zwischenspeichern, solange der CryptoStick angesteckt bleibt.
Key attributes Angaben über Art und Umfang der hinterlegten Schlüssel
Max. PIN lengths Maximale Länge der einzelnen PINs, kann nicht verändert werden!
PIN retry counter Zähler für die verbleibenden Versuche zur Eingabe der richtigen PIN. Der max. Zählwert von 3 wird bei jeder Falscheingabe um eins heruntergesetzt. Sobald die richtige Admin-PIN eingegeben wurde, wir der max. Wert von 3 wieder zurück gesetzt. Die beiden ersten Werte (von links gesehen) werden für die User-PIN verwendet. GPG stellt hierbei sicher, dass beide werde synchronisiert werden. Der zweite (mittlere) Wert wird lediglich für Besonderheiten aus dem ISO-Standard 7816 verwendet. Der dritte (rechte) Wert wird als Fehlversuchszähler für die Admin_PIN verwendet.
Signature counter Zähler der generierten Signaturen bzw. Signaturvorgänge mit der KArte. Der Zähler kann nicht manipuliert werden und wird lediglich zurückgesetzt, sobald ein neuer Signature-Schlüssel erzeugt oder auf die Karte geladen wird.
Signature key Signatur-Schlüssel (primärer OpenPGP-Schlüssel)
created Datum und Uhrzeit an dem der Schlüssel erzeugt wurde
Encryption key Entschlüsselungs-Schlüssel (Unterschlüssel des primären (Signature-)Schlüssels.
created Datum und Uhrzeit an dem der Schlüssel erzeugt wurde
Authentication key Authentifizierung-Schlüssel (Unterschlüssel des primären (Signature-)Schlüssels.
created Datum und Uhrzeit an dem der Schlüssel erzeugt wurde
General key info Diese primäre USer ID wird angezeigt, sobald ein entsprechender öffentlicher Schlüssel (public-key) verfügbar ist.

GUI

Der Zugriff auf die SmartCard kann natürlich auch mit Hilfe einer GUI erfolgen. Hier bietet sich der Smartcard-Manager von dem Thunderbird-Plugin Enigmail an.

Im Menüpunkt [OpenPGP][Schlüssel verwalten…] gelangt man zur Schlüsselverwaltung.

Bildschirmhardcopy der Schlüsselverwaltung bei Enigmail

Über dem Menüpunkt [SmartCard verwalten…] können wir nun direkt auf die Daten des Cryptostick zugreifen.

Bildschirmhardcopy der Schlüsselverwaltung bei Enigmail

Hier haben wir nun die Möglichkeit neben den Daten, den beiden PINs natürlich auch die Schlüssel komfortabel zu verwalten.

Bildschirmhardcopy der SmartCard Details

PublicKey auf einem KeyServer hochladen

Wie auch beim Hochladen unseres öffentlichen Schlüssels aus dem keyring, welcher auf der Platte generiert werden kann, erfolgt dies einfach mit Hilfe des Programms gpg.

 $ gpg --keyserver keyserver.nausch.org --send-key FF11F122
 gpg: sende Schlüssel FF11F122 auf den hkp-Server keyserver.nausch.org

weitere Informationen

Weitere Informationen zum Umgang und zur Inbetriebnahme des Cryptostick findet man im Kapitel GPF CryptoStick in der Praxis.