One-Time-Passwords für den Login auf den Hammel

One-Time-Passwords lassen sich - wie der Name schon vermuten lässt - nur einmal benutzen. Nach einem erfolgreichen Login, wird es nie wieder verwendet. Sie bieten sich also an, wenn man unbedingt irgendetwas auf der Gnuher.de machen möchte, dem Rechner vor dem man sitzt oder seinem Admin jedoch nicht vertraut. One-Time-Passwords entsprechen also den aus dem Online-Banking bekannten TANs, mit dem feinen Unterschied, das man mit TANs Geldtransfers und mit OTPs leider nur Logins authorisieren kann. Dafür kann man OTPs selbst generieren... Zu einem OTP gehört aber nicht nur das eigentliche Passwort, sondern auch noch ein Seed und eine Sequenz-Nummer. Das Seed verhindert offline-Dictionary-Attacks und die Sequenz-Nummer sorgt für eine Vorberechnenbarkeit der OTPs.

Wie sieht so'n OTP denn nun aus?

Da 64bit Zahlen sehr schwierig einzugeben sind, können die OTPs in verschiedenen Varianten eingegeben werden:
  1. aus 6 einfachen englischen Worten zusammengesetzte Phrasen. Zum Beipiel - immer das gleiche Passwort:
    been sup hoof doug lima moot
    BEEN SUP HOOF DOUG LIMA MOOT
    been SUP   HoOf DOUG   LIMA   MOOT
  2. als hexadezimale Zahl (entspricht dem oberen Passwort):
    5567 da69 bafa f77d
    55 67 da 69 ba fa f7 7d
Wie dieser Mechanismus genau funktioniert, kann man in RFC 2289 nachlesen.

Wie kann ich das für meinen Account freischalten?

Dazu sind folgende Schritte nötig:
  1. Initialisieren des OTP-Vektors:
    auf dem Hammel als entsprechender User ausführen:
    opiepasswd -cf
    und den Anweisungen folgen. Die Sicherheit der OTPs hängt maßgeblich von der Wahl der Passphrase ab. Ihr solltet dort also wirklich kein kurzes (<10 Zeichen) Passwort eingeben, sondern am besten ein Mantra (Man denkt sich einen langen Satz aus - oder nimmt einen Liedtext etc. und generiert aus den Anfangsbuchstaben die Passphrase).
  2. OTPs generieren
    Da die Berechnung des OTPs standardisiert ist, kann man sich jetzt auf einem Rechners/Palm/Handy/Zaurus/Schlüsselanhänger/etc. seines Vertrauens, ein oder mehrere OTPs generieren lassen. Auf einem Linux/Unix-Rechner installiert man sich dazu opie-client. Im nicht so praxisfernen Beispiel also mit
    sudo apt-get install opie-client
    und kann sich dann mit
    opiekey -n 10 {sequenz-nummer} {seed}
    10 Passwörrter generieren lassen.
  3. Einloggen
    Die aktuelle Sequenznummer und das Seed werden beim Login angezeigt. Dazu muss man unter Umständen den normalen Passwortprompt mit Enter bestätigen. Dabei muß die Sequenznummer unbedingt beachtet werden. Sollte sich die Sequenznummer und das Seed bei jedem Login ändern, dann wurde der Account nicht richtig für OTP initialisiert. Zurück zu Schritt 1!
Sicher und besser als Passwortlisten im Portemonnaie stecken zu haben, ist es, wenn man die Passwörter mit einem kleinen Device berechnet: Wir verwenden im übrigen standartmäßig md5.

Kann ich mich trotzdem noch mit meinem normalen Unix-Passwort einloggen?

Ja!

Und wenn ich das alles gar nicht will?

Einfach gar nichts tun. Ohne Aufruf von opiepasswd kann man sich auf einem Account nicht mit OTPs einloggen.
Mit "opiepasswd -d" kann man die ganze Chose wieder deaktivieren.
Autor
Martin Treusch von Buttlar email: otp-kb (at) ruudi.org
$Id: HOWTO%20-%20OTP%20Login.html 31 2007-02-21 13:45:48Z root $