Einfach sicher(rer): #YubiKey Authentifizierung

Der Artikel im letzten PHP Magazin über den YubiKey hat mich neugierig gemacht. Der YubiKey wirkte wie eine günstige OTP (One Time Password) Lösung. Eigentlich schien alles eher unspektakulär da ich mit One Time Password immer den Abschied von gespeicherten Logins und viel Tipparbeit in Verbindung gebracht habe. Aus Erfahrung kann ich jetzt jedoch sagen: Der YubiKey ist alles andere als umständlich! Im Gegensatz zu anderen OTP Ansätzen, z.B. dem iTan-Verfahren, muss man hier nicht manuell ein Passwort eingeben. Dies übernimmt der YubiKey!

Zudem stellt die Herstellerfirma Yubico offene Software für den YubiKey zur Verfügung. Das hat mich dann überzeugt. Für 45$ habe ich direkt zwei YubiKeys bestellt. Eine erste Überraschung war dann die Lieferzeit. Die angegebenen 7-14 Tage wurde mit 4 Tagen deutlich unterschritten! Sonntags bestellt und Donnerstags bereits Post aus England! Ein erster Pluspunkt also: Bei Bedarf kann man schnell an neue YubiKeys kommen.

Inhalt

YubiKey: So funktionierts

Der YubiKey emuliert eine USB Tastatur und gibt per Knopfdruck ein 44-stelliges Passwort aus. Dies ist je nach konfiguriertem Modus immer wieder ein anderes (OneTime Password) oder jeweils das selbe Passwort (static). Unterstützt eine Webseite oder anderes System die Authentifizierung mittels YubiKey werden die Benutzerdaten über einen entsprechenden Webservice validiert. Yubico stellt diesen Dienst zur Verfügung. Zusätzlich wird eine offene Software angeboten über die ein eigener Webservice eingerichtet werden kann. Zum einen ist also wirklich alles transparent und zum anderen müssen derart empfindliche Daten und Dienste nicht aus der Hand gegeben werden. Die Software für die Yubico API kann über Google Code bezogen werden, besteht aber aus zwei Teilen. Eine PHP Applikation für die Authentifizierung und ein sogenanntes Key Storage Modul in dem die Benutzerdaten gespeichert werden.

Ich persönlich halte die Möglichkeit OneTime-Passwörter zu generieren (derzeit) vor allem für geschlossene Benutzerkreise interessant. Schön wäre natürlich wenn die Lösung flächendeckend Anklang findet. Es erspart Aufwand und die “Passwort vergessen” Funktion. Der YubiKey ist aber auch jetzt schon unschlagbar praktisch: Man kann unkompliziert in den statischen Modus wechseln. Der Yubikey gibt in dem Fall immer wieder dass gleiche 44 Zeichen lange Passwort aus. Für die alltägliche Nutzung ungemein praktisch. Mein Vater nutzt sein Exemplar im statischen Modus mit großer Zufriedenheit. Einziger Minuspunkt der mir insgesamt aufgefallen ist: Im statischen Modus muss dieses Passwort einem Account zuordnen. Der YubiKey gibt jedoch nicht nur ein Passwort sondern ebenfalls “n” (Enter) mit aus. Das führt bei der Registrierung von Accounts dazu dass Formulare frühzeitig abgeschickt werden. Ein einmaliger Umweg über copy&paste ist im statischen Modus also leider notwendig. Werfen wir einfach mal einen Blick auf die Praxis.

WordPress mit YubiKey Authentifizierung

Meine ersten Erfahrungen mit YubiKey OneTime-Passwörtern habe ich mit dem YubiKey Wordpress Plugin gesammelt. Es kann ganz normal über die Pluginverwaltung von WordPress installiert werden. Ich habe dann einfach den Webservice von Yubico verwendet um die Authentifizierung durchzuführen. Man benötigt lediglich einen API Key der auf folgender Seite generiert werden kann. Man muss nur den eigenen YubiKey bereithalten:

Dem Plugin fehlt aus meiner Sicht noch eine konfigurierbare API URL. Man kann wie bereits erwähnt einen eigenen Webservice bereitstellen und Benutzerdaten auf der eigenen Infrastruktur bereitstellen. Wenn Sicherheitsauflagen erfüllt werden müssen, z.B. im Rahmen einer PCI DSS Zertifizierung, kann dies zwingend erforderlich sein. Eine zusätzliche Option für WordPress wäre aber in jedem Fall schön. Zurück zum Thema. Ist dass Plugin installiert muss in der Plugin-Konfiguration der soeben generierte API Key hinterlegt werden. Die WordPress Login Maske zeigt nun ein neues Eingabefeld:

Nun muss für jeden Account den wir mittels Multifactor Authentifizierung zusätzlich absichern möchten die YubiKey OTP Authentifizierung aktiviert werden. Dafür gibt es nun eine neue Sektion in den Benutzereinstellungen:

Nun ist der Account abgesichert und kann nur noch mit einer Kombination aus Zugangsdaten und YubiKey OTP verwendet werden. Insgesamt wird die Sicherheit von WordPress Accouns deutlich verstärkt.

YubiKey mit statischem Passwort

Einen YubiKey kann man im statischen Modus betreiben um immer wieder dass gleiche Passwort auszugeben. Das ist eine elegante Alternative zur Eingabe von eigenen Passwörtern. Der Hersteller Yubico stellt ein Tool für die Verwaltung von YubiKeys bereit. Unter Ubuntu Linux kann es direkt über APT installiert werden. Abhängig davon wie alt/neu der YubiKey ist kann es allerdings zu Problemen kommen. Ich habe scheinbar eine aktuelle Hardware Revision (2.2.7) bekommen und konnte mit der Ubuntu Maverick Version (1.3.2) nicht arbeiten. Es gibt bereits eine aktueller Version die auch in Debian (unstable) bereits enthalten ist. Einen entsprechenden Ubuntu Sync Request habe ich bereits hinterlegt. Vielleicht schafft es die neue Version ja trotz FeatureFreeze für 11.04 (natty) noch in die kommende Ubuntu Version. Installiert werden kann dass Paket über APT wie folgt:

 

$ sudo apt-get install yubikey-personalization

Die Alternative dazu ist die direkte Installation von Debian Paketen. Ist kein großes Problem da derzeit dass Ubuntu Paket ohnehin unverändert von Debian übernommen wird. Wenn also dass Ubuntu Paket mal aktualisiert wird ist sehr wahrscheinlich bei euch dass Paket einfach schon installiert. Welches Paket benötigt wird hängt von der Rechnerarchitektur ab. Einfach die beiden benötigten Pakete herunterladen (Bibliothek + Software) und über dpkg installieren. Hier am Beispiel von amd64:


$ wget http://ftp.de.debian.org/debian/pool/main/liby/libyubikey/libyubikey0_1.7-1_amd64.deb

$ wget http://ftp.de.debian.org/debian/pool/main/y/yubikey-personalization/libykpers-1-1_1.5.0-1_amd64.deb

$ sudo dpkg -i *.deb

Jetzt kann über das Tool ‘ykpersonalize’ der YubiKey konfiguriert werden. Eine detailierte Anleitung dazu findet man direkt in der ReadMe. Den YubiKey von meinem Vater habe ich mit dem Parameter “-ostatic-ticket” in den statischen Modus versetzt. Die exakten von mir verwendeten Werte bleiben natürlich mein Geheimnis:

Anschließend gibt der YubiKey ein statisches Passwort aus. Das Tool funktioniert unter Mac OS X ebenfalls. Die Mac OS X GUI Version, die von einer unabhängigen Firma bereitgestellt wird, wollte bei mir gar nicht. Die Software für Windows hat mich nicht wirklich interessiert. Hier ist jeder eingeladen selbst zu probieren.

Fazit

Der YubiKey hat mich wirklich mehr als begeistert. Ich hoffe dass in Zukunft viele Webseiten die Authentifizierung per YubiKey OTP unterstützen, es ist einfach genial. Aber egal ob und wann man mit einer weiten Verbreitung rechnen kann ist der YubiKey bereits jetzt eine Bereicherung. Ein 44-Zeichen langes Passwort ist sicherer als ein “normales” Passwort aus unserem Alltag. Und dass muss man nicht einmal mehr eintippen. Mein Vater nutzt den YubiKey unter Mac OS X und im statischen Modus und kommt damit super zurecht. Ich habe bereits weitere YubiKeys bestellt. Es wird auch sicher erneut etwas über den YubiKey zu lesen geben. Mögliche Themen sind z.B. “Zend_Auth und YubiKeys” oder “ein eigener YubiKey Webservice”. Hier noch einmal der Link zum Webshop von Yubico. Ausprobieren lohnt sich. Es macht dass Leben ein Stück weit einfacher.

  • YubiKeys bestellen