# YubiKey

Der YubiKey ist ein Security-Token der Firma Yubico, der mit Schnittstellen wie Lightning, Near Field Communication (NFC) oder USB und vielfältigen Protokollen zur Identifizierung und Authentifizierung von Benutzern an Computersystemen verwendet wird. Er erlaubt unter anderem die sichere passwortlose Authentifizierung und wird beispielsweise auch von der KeePass-iOS-App-Variante KeePassium unterstützt.
Yubico verwendet Open-Source-Software wie OpenPGP und offene Standards wie U2F zur Zwei-Faktor-Authentisierung für die Betriebssysteme Microsoft Windows, macOS und Linux. Aus Sicherheitsgründen kann Software auf YubiKey weder ausgelesen noch verändert werden. Bei einem Update muss das Gerät durch ein neues Modell ersetzt werden. Geheime private Schlüsseldaten können am Token erzeugt oder auf das Token geschrieben werden, aber nachfolgend nicht ausgelesen werden.
Da die YubiKey-Hardware – im Unterschied zu Konkurrenzprodukten wie der Nitrokey-Familie von Nitrokey oder der Solo-Familie von SoloKeys – nicht quelloffen ist, sind unabhängige Prüfungen auf Hintertüren oder Sicherheitslücken kaum möglich.

## Aufbau

YubiKeys sind in wasserdichten Gehäusen manipulationsgeschützt vergossen. Sie enthalten als primäre Schnittstelle einen USB- oder Lightning-Port. Es gibt Modelle mit USB-A- oder USB-C-Stecker. Der für manche Betriebsarten notwendige Taster am Security-Token für die Bestätigung einer Aktion ist als Sensortaste ohne mechanisch bewegte Teile ausgeführt. Einige Modelle wie der ältere YubiKey Neo, das Nachfolgemodell Security Key NFC und der YubiKey 5 umfassen neben USB eine berührungslose NFC-Schnittstelle, wobei auch die Stromversorgung für den YubiKey via NFC erfolgt. Der Funktionsumfang ist bei beiden Schnittstellen identisch.
Die Modelle YubiKey 4 und YubiKey NEO verwenden einen Mikrocontroller der Firma NXP Semiconductors. Im Nachfolgemodell YubiKey 5 ist die Anzahl der Bauelemente reduziert. Der verwendete Kryptoprozessor von Infineon ist vom Typ SLE 78CLUFX5000PH und weist eine Sicherheitszertifizierbarkeit bis zur Stufe EAL6 auf. Er ist gegen ein Auslesen des Speichers auf allen Schnittstellen wie USB-Anschluss und NFC-Schnittstelle geschützt. Der SLE78 basiert auf dem 80251, einer 16-Bit-Variante des Intel MCS-51.

## Protokolle

Über die USB-Schnittstelle können YubiKeys drei verschiedenartige und virtuelle USB-Geräte emulieren und damit vielfältige Funktionen anbieten: OTP, FIDO und CCID. Die drei Optionen lassen sich je miteinander kombinieren oder, wenn nicht benötigt, auch deaktivieren.
Das One-Time-Password (OTP), nicht zu verwechseln mit dem identisch abgekürzten kryptografischen Begriff One-Time-Pad, stellt das ursprüngliche Verfahren für Security-Token dar. Hierbei werden einmal gültige und sich ändernde Zahlen- und/oder Buchstaben-Folgen zur Authentifizierung abgeglichen. Es erlaubt am YubiKey die Konfiguration von zwei sogenannten Slots, deutsch etwa Speicherpositionen. Jeder Slot kann unabhängig eine Funktion samt den dafür notwendigen Daten wie geheime Schlüssel aufnehmen. Jedem Slot im YubiKey4 kann eine der folgenden Funktionen zugewiesen werden:
* Yubico OTP, ein proprietäres One-Time-Passwort-Verfahren von Yubico.
* Challenge-Response-Authentifizierung mittels HMAC-SHA1.
* Statisches Passwort. Dabei wird vom YubiKey eine virtuelle USB-Tastatur emuliert und gestattet es so, das Passwort ohne zusätzliche Software in der jeweiligen Anwendung in das Passwortfeld direkt einzugeben.
* HOTP nach der Initiative For Open Authentication (OATH).
Die jeweilige OTP-Funktion kann optional mit der Sensortaste verknüpft werden, d. h. man drückt zur Auslösung sein Einverständnis durch Tasten-Betätigung aus. Je nachdem wie lange man die Taste drückt, löst man die Funktion vom Slot 1 oder Slot 2 aus.
Mit dem Verfahren FIDO2 der FIDO-Allianz stellt der YubiKey auch das Client to Authenticator Protocol (CTAP) zur Verfügung. Ältere Yubikeys wie der Yubikey 4 unterstützen dabei nur das CTAP1, welches vor FIDO2 auch als Universal Second Factor (U2F) bezeichnet wurde. Der neuere YubiKey 5 bietet zusätzlich CTAP2 welcher Teil des Projektes FIDO2 ist und auf UAF (englisch Universal Authentication Framework) aufbaut. Das Modell Yubico FIDO bzw. Security Key NFC bietet nur CTAP an. Das Verfahren CTAP setzt zwingend die Bestätigung des Benutzers am Token voraus, da andernfalls das Token die Antwort verweigert. Diese Funktion übernimmt die Sensortaste. Im Rahmen von CTAP1 (U2F) werden, im Gegensatz zu anderen Betriebsdaten, keine benutzerspezifischen Daten am Token gespeichert. Bei Verwendung von CTAP2 werden je nach Modus beispielsweise bei Nutzung von englisch Discoverable Credentials oder bei Nutzung einer PIN auch benutzerspezifische Daten am Token gespeichert.
Mit der dritten Option CCID emuliert der YubiKey einen Chipkartenleser am USB-Anschluss und bietet vom Hersteller programmierte unveränderliche Smart-Card-Anwendungen an, die dem Chipkartenstandard ISO 7816 entsprechen.
Am YubiKey 4 sind unter anderem folgende CCID-Anwendungen verfügbar (diese erfordern eine entsprechende Software am Host-System):
* OATH HOTP: identisch mit der Basisfunktion OTP, doch sind bis zu 32 Konfigurationen möglich
* OATH TOTP. Da YubiKey keine Uhr zur Einmalpasswort-Berechnung enthält, wird die aktuelle Systemzeit via CCID an das emulierte Chipkartenprogramm OATH TOTP übertragen. Es sind bis zu 32 Konfigurationen möglich.
* OpenPGP Smart Card in der Version 2.0
* Eine Personal Identity Verification nach FIPS 201, die unter anderem US-Behörden zur Identitätsfeststellung verwenden.

## Sicherheitsprobleme

Im Oktober 2017 wurde bekannt, dass die unter anderem beim YubiKey 4 eingesetzte CCID-Applikation OpenPGP auf der fehlerhaften Softwarebibliothek RSALib von Infineon basiert, wodurch die Erzeugung von RSA-Schlüsselpaaren direkt am Token anfällig für die ROCA-Verwundbarkeit ist. Betroffene Geräte ersetzte Yubico kostenfrei durch neue YubiKeys.
Das Kunststoffgehäuse der ersten YubiKey-Versionen wie YubiKey Neo ließ sich in siedendem Aceton leicht chemisch auflösen. Dadurch war die Leiterplatte zerstörungsfrei zugänglich. Obwohl aus den integrierten Schaltkreisen von NXP Semiconductors keine Daten auszulesen waren, wurde in späteren Generationen wie YubiKey 5 ein anderer Kunststoff verwendet.
Im September 2024 wurde bekannt, dass die YubiKey-5 Serie, YubiKey-FIPS und Security Keys bei dem im Rahmen von FIDO2 eingesetzten Elliptic-Curve-DSA-Verfahren durch eine Seitenkanalattacke verwundbar sind. Damit ist das Auslesen und Kopieren der privaten Schlüsseldaten aufgrund einer im Yubikey eingesetzten fehlerhaften Softwarebibliothek von Infineon möglich. Der Angriff setzt den physischen Besitz des Yubikey-Token voraus und gilt als nicht trivial durchführbar. Bei den ab Mitte 2024 verfügbaren Token mit der Firmware Version 5.7.0 und höher ist dieser Fehler behoben.