Yubikey

Aus Cowwwiki
Zur Navigation springen Zur Suche springen

Auf dieser Seite möchte ich einige Anwendungsbeispiele für den Yubikey Neo festhalten.

Yubikey als sicherer Client SSL Zertifikatsspeicher

Meine Bank hat mir für den sicheren Onlinebanking Zugang ein Client SSL Zertifikat ausgestellt. Anders als in Deutschland üblich, loggt man sich nicht mit den Zugangsdaten ein und bestätigt die Transaktion dann mit einer TAN (SMS, PUSH, PhotoTAN, usw.), sondern für den Login selbst wird ein zweiter Faktor (Client SSL Zertifikat) vorausgesetzt. Für die Ausführung der Transkation wird dann nur noch ein Passwort benötigt. Als Speicherort für das Zertifikat ist der Yubikey hervorragend geeignet, da er im sog. CCID Modus wie eine Smartcard arbeitet. Eine Smartcard hat die Eigenschaft, dass Schlüssel sicher aufbewahrt und benutzt werden können, aber nicht extrahiert werden können.

Voraussetzungen

  • CCID Modus muss auf Yubikey aktiviert sein
  • Client SSL Zertifikat und Schlüssel im PKCS12 Format
  • Notwendige Softwarepakete sind installiert
    • yubico-c
    • yubico-c-client
    • yubikey-personalization
    • yubikey-personalization-gui
    • yubikey-piv-manager
    • opensc-tool
    • pcsclite
    • ccid

Zertifikat hinzufügen

Sind alle Pakete installiert schließen wir den Yubikey an den PC an und starten den Yubikey Manager. Hier prüfen wir, ob unter CCID ein Häkchen gesetzt ist. Falls nicht, dies bitte tun und speichern. Man wird dann aufgefordert den Yubikey abzuziehen und wieder anzustecken.

Nun prüfen, ob die Smartcard auf dem System sichtbar ist. Zuerst müssen wir `pcscd` starten

sudo systemctl restart pcscd
sudo systemctl enable pcscd.service

Letzte Zeile aktiviert den `pcscd` beim Systemstart.

Nun sollte die Smartcard auf dem System sichtbar sein. Das können wir mit `opensc-tool` bzw. `yubico-piv-tool` verifizieren:

opensc-tool -list-readers

# oder
yubico-piv-tool -a list-readers

Wird die Smartcard angezeigt, z. B. `Yubico Yubikey NEO OTP+U2F+CCID 00 00`, dann können wir den PKCS12 Keystore importieren:

yubico-piv-tool -s 9a -i ACNLB.p12 -K PKCS12 -a import-key -a import-cert

Ob der Import erfolgreich war, lässt sich mit folgendem Befehl verifizieren:

yubico-piv-tool -a status

Hinweis: Nicht vergessen, den Default-PIN von 123456 zu ändern! Das kann man entweder über das grafische Tool `YubiKey PIV Manager` oder auf der Console mit folgendem Befehl machen:

<syntaxhightlight lang="bash"> yubico-piv-tool -a change-pin </syntaxhighlight>

Zertifikat aus Yubikey benutzen

Ich verwende den Chromium Browser auf einem Manjaro Linux System. Während im Firefox der YubiKey unter den `erweiterten Einstellen` direkt eingebunden werden kann, erfolgt das für Chrome vorab auf der Console. Dazu bitte zuerst den Browser schließen und folgenden Befehl ausführen:

modutil -dbdir sql:.pki/nssdb/ -add "CAC Module" -libfile /usr/lib/opensc-pkcs11.so

Anschließend den Browser wieder starten. Beim Zugriff auf eine HTTPS Seite, die ein Client Zertifikat erfordert, sollte der YubiKey automatisch angesprochen werden und die Aufforderung zur PIN-Eingabe angezeigt werden. Nach erfolgreicher Verifizierung der PIN werden die Zertifikate ausgelesen.

Hinweis: Der YubiKey muss angsteckt sein, bevor der Browser gestartet wird. Andernfalls kann es sein, dass der Browser nicht erkennt, dass eine Smartcard an den Rechner angeschlossen ist.