Einmalpasswörter für den Heimgebrauch

Der Login auf einen Server aus einem Internet-Cafe heraus ist nicht ohne Risiko, weil ein Keylogger das Passwort für späteren Missbrauch mitlesen kann. Mit Einmalpasswörtern schlägt man solchen Ausspähversuchen ein Schnippchen.

In Pocket speichern vorlesen Druckansicht
Lesezeit: 11 Min.
Von
  • Daniel Bachfeld
Inhaltsverzeichnis

Manchmal stehen nur PCs in Internet-Cafes oder öffentlichen Einrichtungen zur Verügung, wenn man von unterwegs mal eben auf den eigenen Server etwa per SSH zugreifen will. Solchen Rechnern ist in der Regel nicht zu trauen, da sich dort eine Vielzahl von Schädlingen tummeln kann, die Tastatureingaben und anderes mitlesen. Ein eingegebenes statisches Passwort gelänge von dort wahrscheinlich schnell in die falschen Hände.

Eine Lösung bieten sogenannte One Time Passwords (OTP, nicht zu verwechseln mit One Time Pads), also Einmalpasswörter, die nach dem Gebrauch ungültig werden [1]. Eine zweite, spätere Anmeldung ist damit nicht mehr möglich; ein Angreifer kann mit geklauten Passwörtern also nichts mehr anfangen. Aus einem ausgespähten OTP lässt sich auch kein neues ableiten oder vorhersagen. Prinzipiell ist das Verfahren zwar für Man-in-the-Middle-Attacken anfällig, bei dem ein Angreifer den echten Server vortäuscht und das Opfer nach dem richtigen OTP fragt und sich damit anmeldet, allerdings müsste dazu die Attacke genau vorbereitet sein – auf einem eher zufällig ausgewählten PC eher unwahrscheinlich.

Um den Umgang mit der Response zu erleichtern, wird sie in verständliche Worte konvertiert.

Eine Implementierung für Einmalpasswörter ist das vom United States Naval Research Laboratory (NRL) stammende OPIE (One-time Passwords In Everything), das das S/KEY-Verfahren benutzt [2,3]. Ein Generator erzeugt eine Sequenznummer und ein Seed, mit denen man einen so genenannten OTP-Calculator füttern muss. Der errechnet zusammen mit einer Passphrase daraus ein einmaliges Passwort, das man dem Server übermitteln muss. Um von einem OTP-Calculator unabhängig zu werden, lassen sich mehrere Einmalpasswörter vorausberechnen und auf einen Zettel schreiben.

Da die Linux-Authentifizierung auf dem Standard Pluggable Authentication Moduls (PAM) aufbaut, lassen sich alternative Verfahren zum Standard-Login ohne große Probleme hinzufügen oder sie ersetzen das bisherige Verfahren [4]. Auf diese Weise lässt sich die Authentifizerung unter SSH mit Einmalpasswörter erweitern. Für alle folgenden Installationen und Anpassungen sind Root-Rechte erforderlich. Die angegebenen Pfade stammen von einem Ubuntu 6.10, auf anderen Distributionen können dies abweichen und müssen deshalb angepasst werden.

Zunächst wird OPIE installiert, das aus einem Client und einem Server besteht, die für Ubuntu 6.10 als fertige Pakete bereit stehen:

apt-get install opie-client
apt-get install opie-server

Im Verzeichnis /etc/pam.d/ sind Konfigurationsdateien für alle die Dienste angelegt, die eine Authentifizierung verwenden. Sofern installiert, sind dort neben dem normalen Login auch SSH, Samba und weitere Dienste zu finden. Damit SSH zukünftig neben normalen Passwörter auch OTP nutzen kann, ersetzt man in /etc/pam.d/ssh die Zeile @include common-auth durch:

auth sufficient pam_unix.so
auth sufficient pam_opie.so
auth required pam_deny.so

Zudem muss für den SSH-Server in /etc/ssh/sshd_config die Unterstützung für Challenge-Response-Verfahren aktiviert werden, in dem man ChallengeResponseAuthentication yes setzt. Durch einen Neustart übernimmt der SSH-Server die geänderte Konfiguration.