YubiKey initialisieren

Initialisierung eines YubiKey zur Nutzung als OTP Generator, zum Challenge-Response-Verfahren und als SmartCard

Ziel

Ein YubiKey NEO kann mehrere sicherheitsrelevante Aufgaben gleichzeitig übernehmen. Die sinnvollsten werden im Folgenden eingerichtet. Anschließend verfügt der YubiKey über folgende Funktionalitäten:

Slot 1: OTP (Einmalpaßwort-Generator)
Damit kann der YubiKey in Zusammenarbeit mit dem entsprechenden Backend-Server zur Zweifaktor-Authentifizierung z.B. zum VPN-Login (mit privacyIDEA, OpenOTP oder dem YubiRADIUS-Server) oder zur Anmeldung an der Windows-Domäne (mit AuthLite von Collective Software) genutzt werden.

Slot 2: Challenge-Response
Das funktioniert ohne Backend-Server. Damit kann u.a. die YubiKey-Version von KeyPassXC genutzt werden. Eine weitere Anwendung ist wieder die Zweifaktor-Authentifizierung zum Computer-Login (Linux mit PAM-Modul, Windows mit entsprechendem Tool von Yubico).

OpenPGP Smartcard Applet
Damit kann dier YubiKey wie eine OpenPGP-Card zum Signieren und Verschlüsseln genutzt werden.

Die Einrichtung wird beispielhaft unter Gentoo Linux beschrieben, funktioniert aber in allen anderen Betriebssystemen ähnlich.

Vorbereitungen

GnuPG

Zur Nutzung der Smartcard-Funktionalität muß das System entsprechend den Hinweisen in "OpenPGP Card initialisieren" vorbereitet sein (Installation pcsc-lite, ccid, gnupg).

YubiKey Manager

Zum Programmieren des YubiKeys muß der YubiKey Manager installiert werden. Unter Gentoo mittels:

# emerge -av yubikey-manager-qt

Nach dem Start sollte ein eingesteckter YubiKey erkannt werden:

Für ein späteres Neuerstellen des Yubikeys (z.B. wegen Defekt) sollten ab nun alle Konfigurationsparameter mitgeschrieben werden. Das dann entstandene Dokument wird am Ende sicher z.B. im Tresor verwahrt. Der erste Parameter für dieses Dokument ist die angezeigten Seriennummer.

Programmierung Slot 1

Slot 1 soll zum Erzeugen von Einmalpaßwörtern genutzt werden. Zum Programmieren der Slots wird im YubiKey Manager "Applications / OTP" angeklickt. Bei neuen YubiKeys ist Slot 1 bereits vorkonfiguriert zur Benutzung des Yubico-Authentifizierungsservers. Da für dieses Beispiel aber die Nutzung eines eigenen Servers (z.B. privacyIDEA) angenommen wird, wird Slot 1 auch umprogrammiert. Danach ist allerdings die Nutzung des Yubico-Servers nicht mehr möglich. Im YubiKey Manager wird also unter "Short Touch (Slot 1)" "Delete" angeklickt und das Löschen bestätigt. Dann wird "Configure" angeklickt und "Yubico OTP" gewählt. Nach Klick auf "Next" werden die OTP-Parameter hinterlegt. Dazu wird bei "Public ID" "Use serial" aktiviert, bei "Private ID" und "Secret key" wird jeweils "Generate" angeklickt:

Das Schreiben auf den Yubikey erfolgt mittels Klick auf "Finish". Die angezeigten Werte müssen in den verwendeten OTP-Server übertragen werden. Das Notieren der Werte im o.g. Dokument ist nicht unbedingt erforderlich. Bei einem möglichen Defekt des Yubikeys wird einfach ein neuer mit einer neuen Slot1-Konfiguration verwendet und die neuen Werte im OTP-Server eingetragen.

Programmierung Slot 2

Slot 2 wird im Challenge-Response-Mode programmiert. Dazu wird im YubiKey Manager wieder "Applications / OTP" gewählt und unter "Long Touch (Slot 2)" "Configure" angeklickt. Hier wird "Challenge-response" gewählt und "Next" geklickt. Nach Klick auf "Generate" wird ein neuer geheimer Schlüssel erstellt, welcher auch dokumentiert werden sollte. Zur Erhöhung der Sicherheit sollte "Require touch" aktiviert werden:

Mittels "Finish" wird der Schlüssel auf dem YubiKey gespeichert.

Programmierung OpenPGP

CCID-Interface aktivieren

Im Yubikey Manager muß unter "Interfaces" zumindest "OTP" und "CCIS (Smart Card)" ausgewählt sein:

GPG sollte den YubiKey nun als (leere) OpenPGP-Karte erkennen (evtl. nach Ein- und Ausstecken):

$ gpg --card-status
Reader ...........: 1050:0407:X:0
Application ID ...: D2760001240102010006012345670000
Version ..........: 2.1
Manufacturer .....: Yubico
Serial number ....: 05486217
Name of cardholder: [nicht gesetzt]
Language prefs ...: [nicht gesetzt]
Sex ..............: unbestimmt
URL of public key : [nicht gesetzt]
Login data .......: [nicht gesetzt]
Signature PIN ....: nicht zwingend
Key attributes ...: rsa2048 rsa2048 rsa2048
Max. PIN lengths .: 127 127 127
PIN retry counter : 3 0 3
Signature counter : 0
Signature key ....: [none]
Encryption key....: [none]
Authentication key: [none]
General key info..: [none]

Initialisierung

Die weiteren Schritte entprechen nun denen der "Initialisierung einer normalen OpenPGP-Karte". Die PINs sind per default wie folgt gesetzt:

  • PIN: 123456
  • Admin PIN: 12345678