Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
NETZ&SYSTEM<br />
YubiKey (Teil 2)<br />
G Ein Ausschnitt aus<br />
der Datei /etc/pam.d/<br />
sshd mit den eingefügten<br />
PAM-Modulen.<br />
DIE AUTOREN„<br />
Thomas Osterried<br />
verwendet Linux seit<br />
Anfang der 90er-Jahre<br />
und arbeitet als Freelancer<br />
mit Linux systemnah<br />
in den Bereichen<br />
Virtualisierung<br />
und Embedded-<br />
Systeme in LAN und<br />
WLAN.<br />
Frank Hofmann<br />
(http:// www. efho. de)<br />
hat Informatik an der<br />
Technischen Universität<br />
Chemnitz studiert.<br />
Der Spezialist für<br />
Druck und Satz koordiniert<br />
seit 2008 das<br />
Regionaltreffen der Linux<br />
User Groups aus<br />
der Region Berlin-<br />
Brandenburg.<br />
Beide Autoren arbeiten<br />
in Berlin im<br />
Büro 2.0, einem<br />
Open-Source Experten-Netzwerk,<br />
und<br />
sind darüber hinaus<br />
Mitgründer des Schulungsunternehmens<br />
Wizards of FOSS.<br />
DANKSAGUNG<br />
Die Autoren bedanken<br />
sich bei Wolfram<br />
Eifler für Kritik, Anmerkungen,<br />
Kommentare<br />
und Ergänzungen<br />
im Vorfeld der Arbeit<br />
an diesem Artikel.<br />
Nachdem Sie die modifizierte<br />
/ etc/pam.d/sshd gespeichert haben,<br />
sollten Sie noch die Benutzerrechte<br />
der Datei einschränken:<br />
Mit chmod 600 /etc/pam.d/ssh sorgen<br />
Sie dafür, dass nur root die<br />
Datei lesen und schreiben darf.<br />
Damit auf dem Zielsystem ein<br />
Abgleich erfolgen kann, müssen<br />
Sie noch die Private-ID ihres<br />
YubiKey hinterlegen. Dazu legen<br />
Sie als normaler Benutzer in Ihrem<br />
Home-Verzeichnis auf dem<br />
Zielsystem das Verzeichnis .yubico<br />
und darin die Textdatei authorized_yubikeys<br />
an. In der Datei<br />
identifizieren Sie alle YubiKeys,<br />
mit denen Sie sich am System anmelden<br />
wollen. Nach dem jeweiligen<br />
Benutzernamen folgen die<br />
Private-IDs der zugehörigen<br />
YubiKeys, jeweils durch einen<br />
Doppelpunkt voneinander getrennt<br />
(Listing 1).<br />
Um zu verhindern, dass ein anderer<br />
Benutzer diese Datei lesen<br />
und damit kopieren kann, um<br />
sich unberechtigt mit Ihrem<br />
Schlüssel anmelden zu können,<br />
ändern Sie noch die Zugriffsrechte<br />
entsprechend:<br />
$ chmod 700 $HOME/.yubico; chmodU<br />
600 $HOME/.yubico/authorized_yuU<br />
bikeys<br />
Danach testen Sie die Anmeldung<br />
über SSH und bauen dazu von Ihrem<br />
lokalen System aus eine Verbindung<br />
zum Zielsystem auf.<br />
Geben Sie Ihre PIN sowie Ihr<br />
Yubico-OTP als Geheimnisse ein.<br />
Auf dem Zielsystem nimmt der<br />
SSH-Daemon die Eingaben entgegen,<br />
verifiziert diese via PAM und<br />
gibt bei Erfolg eine Shell frei.<br />
Haken und Ösen<br />
Die Anmeldung und Authentifizierung<br />
via YubiKey hat Vor- und<br />
Nachteile. Implementieren Sie<br />
das oben beschriebene<br />
Verfahren,<br />
müssen<br />
sich fortan alle<br />
Benutzer, die sich<br />
per SSH auf das<br />
Zielsystem verbinden, mit einer<br />
2-Faktor-Autorisierung anmelden<br />
und sich dazu mit ihrem eigenen<br />
YubiKey ausweisen. Ist der<br />
Schlüssel nicht zur Hand oder<br />
ging verloren, können sie sich<br />
nicht mehr anmelden. Das Login<br />
klappt erst wieder, nachdem mit<br />
administrativer Hilfe der bestehende<br />
Schlüssel in der Datei authorized_yubikeys<br />
ausgetragen, ein<br />
Ersatzschlüssel ergänzt und dem<br />
Benutzer der neue YubiKey ausgehändigt<br />
wurde.<br />
Die Authentifizierung gelingt<br />
nur im Zusammenspiel mit einem<br />
Validierungsserver, in unserem<br />
Beispiel mit der YubiCloud. Wir<br />
haben diese hier gewählt, weil Sie<br />
dadurch sofort mit dem vorgestellten<br />
YubiKey experimentieren<br />
können. Bedenken Sie aber, dass<br />
es sich bei der YubiCloud um einen<br />
Dienst außerhalb Ihres Netzwerks<br />
handelt und daher zur erfolgreichen<br />
Anmeldung stets eine<br />
Internetverbindung vom Zielsystem<br />
aus dahin bestehen muss.<br />
Eigener Validierungsserver<br />
Als Administrator geben Sie freilich<br />
ungern die Validierung aus<br />
der Hand. Als eigene Lösungen<br />
für den Server kommt der in C<br />
geschriebene YubiServer ([7],[8])<br />
infrage, von dem alternative Implementierungen<br />
in Python [9],<br />
Java [10] und PHP [11] zur Verfügung<br />
stehen. Der YubiServer<br />
versteht sich als „simpler und<br />
leichtgewichtiger Validierungsserver<br />
für Yubico-OTP und<br />
HOTP/ OATH“ und bringt die<br />
Oberfläche Yubiserver-admin<br />
mit, mit deren Hilfe Sie Nutzer<br />
und deren Keys verwalten.<br />
LISTING 1<br />
$ cat /home/fho/.yubico/<br />
authorized_yubikeys<br />
fho:ccccccbavaev:vvkiknackeil<br />
Im Unternehmensumfeld ist die<br />
PHP-Variante die erste Wahl, die<br />
zusätzlich das HSM-Protokoll<br />
zum Hardware Key Storage Module<br />
YubiHSM [12] implementiert.<br />
Eine Authentifizierung via<br />
Radius (Modul YubiRadius [13])<br />
und die Anbindung an den freien<br />
Dienstleister OpenID [14] ergänzen<br />
die Palette.<br />
Fazit<br />
Mit dem YubiKey gelingt eine<br />
sinnvolle und sichere Erweiterung<br />
jedes Sicherheitskonzepts<br />
um eine 2-Faktor-Authentifizierung.<br />
Die geschilderten Beispiele<br />
zeigen recht anschaulich, an welchen<br />
Schrauben es zu drehen gilt.<br />
Passende Debian-Pakete und Tutorials<br />
stehen zum Einsatz bereit,<br />
was den Einstieg erleichtert. Das<br />
effektive Einrichten setzt jedoch<br />
ein Grundwissen rund um die<br />
Protokolle zur Authentifizierung<br />
voraus. (jlu) n<br />
INFO<br />
[1] YubiKey (Teil 1): Thomas Osterried,<br />
Frank Hofmann, „Ausbuchstabiert“,<br />
<strong>LinuxUser</strong> 09/ 2012, S. 18,<br />
http:// www. linux-community. de/ 25925<br />
[2] Debian-Paket yubikey-personalization:<br />
http:// packages. debian. org/ squeeze/<br />
yubikey-personalization<br />
[3] Debian-Paket yubikey-personalization-gui:<br />
http:// packages. debian. org/ wheezy/<br />
yubikey-personalization-gui<br />
[4] Github-Repository von Yubico:<br />
https:// github. com/ Yubico/<br />
[5] YubiCloud:<br />
http:// www. yubico. com/ yubicloud<br />
[6] Debian-Paket libyubikey: http:// packages.<br />
debian. org/ squeeze/ libyubikey0<br />
[7] YubiServer: http:// yubiserver. include. gr<br />
[8] YubiKey Validation Server (C):<br />
http:// err. no/ personal/ blog/ 2010/ Mar/ 16<br />
[9] YubiKey Validation Server (Python): http://<br />
code. google. com/ p/ yubico-yubiserve/<br />
[10] YubiKey Validation Server (Java):<br />
http:// code. google. com/ p/ yubikey-server-j<br />
[11] YubiKey Validation Server (PHP): http://<br />
code. google. com/ p/ yubikey-val-server-php/<br />
[12] Yubico HSM Module:<br />
http:// www. yubico. com/ YubiHSM<br />
[13] YubiRadius:<br />
http:// www. yubico. com/ yubiradius<br />
[14] OpenID: http:// openid. net<br />
72 10 | 12<br />
www.linux-user.de