Dieses Dokument beschreibt wie man einen Server einrichtet, um so genannte Wegwerf-Passwörter zu benutzen. Unter Client-Software wird beschrieben, wie Passwörter oder Listen mit Passwörtern zur Benutzung des Servers erstellt werden.
Das vorliegende HowTo beruht auf der Debian Distribution. Es sollte jedoch auf allen anderen Linux Distributionen funktionieren.
Dieses Dokument ist Copyright (c) 2003 by Christoph Langbein und ist unter den Bedingungen der GNU Free Document License (http://www.gnu.org/licenses/fdl.txt) veröffentlicht. Dies bedeutet, dass dieser Text sowohl in elektronischer Weise wie auch auf physikalischem Weg verbreitet werden darf, solange der Copyright Vermerk nicht entfernt wird. Eine kommerzielle Verbreitung ist erlaubt und erwünscht. Bei Veröffentlichung ist dies dem Autor mitzuteilen.
Der Autor lehnt jegliche Haftung für das Resultat der Anwendung dieses Dokuments ab. Dies schließt auch Datenverluste infolge von eventuellen Fehlern in diesem Dokument mit ein. Die Anwendung erfolgt auf eigenes Risiko und Gefahr.
Die neueste Version dieses Dokuments ist jeweils auf der Website http://www.bytesitter.de zu finden.
Wenn man hinreichend gute Passwörter nutzt, wozu sollte man sich die Mühe machen und ``Einmal Passworte'' verwenden ? Die Antwort ist einfach: Überall dort, wo man eine ``Remote-Verbindung'' zu seinem Heim Rechner aufbaut. Gerade in Internetcafes oder in fremden Netzwerken kann man nicht sicherstellen, dass keine Keylogger (wenn man z. B. den PC in einem Internetcafe benutzt) oder Netzwerk-Sniffer laufen, die Ihre POP3, IMAP etc. Passworte mithören und speichern. Diese Passwörter können vom Angreifer später dazu benutzt werden, um mit Ihren Zugangsdaten Zugriff auf Ihre Accounts des Heimrechners oder Servers zu bekommen.
Da mit ``Einmal Passworten'' jedes Passwort nur einmal benutzt wird, kann ein Angreifer mit dem Passwort nach erfolgreichem Mithören nichts mehr anfangen.
Nachdem man OPIE von der Webseite http://www.inner.net/opie heruntergeladen und installiert wurde, sollten auch noch die PAM Module(unter contrib) installiert werden. Unter Debian ist OPIE als Paket verfügbar. Hier muss man mit ``apt-get install opie-server opie-client libpam-opie'' die nötigen Programme und Module installieren.
Wir werden zur Authentifizierung PAM benutzten. Um einen Login für unseren IMAP Dienst mittels OPIE zu erreichen, wird die Datei /etc/pam.d/imap oder ssh wie folgt bearbeitet:
auth required pam_opie.so
account required pam_unix.so
auth required pam_deny.soWill man auch den ``normalen'' Mail Login nutzen, um z. B. im internen Netz nur ein Passwort zu nutzen:
auth sufficient pam_unix_auth.so
auth sufficient pam_opie.so use_first_pass
account required pam_unix.so
auth required pam_deny.soDanach müssen sequence number und seed erzeugt werden. Das einzugebende Passwort kann auch ein Satz sein, muss allerdings mindestens 10, maximal 257 Zeichen enthalten. Bei der erstmaligen Erstellung von sequence number und seed wird die Option -c übergeben. Sollte man keinen physikalischen Zugang zum Server haben, sondern über z. B. ssh eingeloggt sein, kann mit der Option -f die Erstellung erzwungen werden.
user@server:~$ opiepasswd -c -f
Adding user: Only use this method from the console; NEVER from remote. If you are using telnet, xterm, or a dial-in, type ^C now or exit with no password. Then run opiepasswd without the -c parameter. Using MD5 to compute responses.
Enter new secret pass phrase: <PASSWORT>
Again new secret pass phrase: <PASSWORT>
ID user OTP key is 499 gr0778
MAIL DATE NUDE WYNN GLUE WHEEFür den Benutzer user stehen so 498 Einmal Passwörter mit dem seed gr0778 zur Verfügung. Wenn nur noch weniger als 20 Passwörter zur Verfügung stehen, sollte man einen neuen seed erzeugen, indem man sich auf dem Server einloggt und wieder den openpasswd Befehl ausführt (zur Erzeugung des Response Key siehe Clients):
user@server:~$ opiepasswd
Updating user:
You need the response from an OTP generator.
Old secret pass phrase:
otp-md5 020 gr0778 ext
Response: <LUSH BALI YEAH GOAL MERT STOW>
New secret pass phrase:
otp-md5 499 gr0779
Response: <GASH EAST SEA RECK PAP SLUM>
ID user OTP key is 499 gr0779
GASH EAST SEA RECK PAP SLUMWill man sein Passwort ändern, kann man dieses, indem man opiepasswd noch einmal mit der Option -c aufruft (opiepasswd -c).
Somit ist die Serverseite fertig eingerichtet.
Um jetzt ,,Einmal Passworte'' von einem beliebigen Client aus zu benutzen, braucht man sequence number, seed und sein Passwort. Aus diesen drei Teilen wird das Einmal Passwort berechnet.
Unter http://www.inner.net/pub/opie/contrib/ gibt es die Datei opie.tk-v2.3.gz. Die Datei wird heruntergeladen und mit ,,gunzip opie.tk-2.3.gz'' entpackt. Danach kopiert man die Datei opie.tk-2.3 am besten nach /usr/bin/opietk und ändert die Zugriffsrechte (cp opie.tk-2.3 /usr/bin/opietk && chmod 755 /usr/bin/opietk). Zur Nutzung des Frontends muss wish installiert sein (unter Debian im Paket tk8.0 enthalten).
Unter *nix benutzt man in einem Terminal einfach den Befehl ``opiekey sequence_number seed ``
user@client:~$ opiekey 459 gr0773
Using the MD5 algorithm to compute response. Reminder: Don't use opiekey from telnet or dial-in sessions.
Enter secret pass phrase:
GASH EAST SEA RECK PAP SLUMWenn man gleich mehrere Passwörter erzeugen will, um z. B. im Urlaub seine E-Mails abzurufen, kann man die Ausgabe auch direkt an einen Drucker leiten und sich n Passwörter ausdrucken lassen.
# opiekey -n 50 459 gr0773 | lpr
würde z. B. die Passwörter der Sequenznummern 459-409 auf dem lokalen Drucker ausgeben.
Auf einem Gerät mit PocketPC kann man den One Time Password Generator von http://www.awe.com/mark/dev/otp/ benutzen. Die Benutzung ist selbsterklärend.
Ein Java Applet findet man unter http://www.cs.umd.edu/users/harry/jotp/ aber bedenken Sie, dass Web Anwendungen immer als unsicher anzusehen sind. Werfen Sie also unbedingt einen Blick auf den Source Code des Programms.
Unter http://www.inner.net/pub/opie/contrib/ findet man das Programm Winkey.exe. Nach einem Doppelklick kann man Winkey in einem Verzeichnis seiner Wahl entpacken. Auch dieses Programm ist selbsterklärend. Daten eingeben und das Einmal Passwort (Response) auslesen.
Nach dem Herunterladen der Datei opieprint.gz von http://www.inner.net/pub/opie/contrib/ wird die Datei mit ,,gunzip opieprint.gz'' entpackt. Danach müssen evtl. noch eine Pfade angepasst werden. Dazu öffnet man opieprint mit einem Editor seiner Wahl und ändert die Zeilen
#!/usr/local/bin/perl -
$dir="/usr/local/bin"; # dir containing opieinfo & opiekey
in
#!/usr/bin/perl -
$dir="/usr/bin"; # dir opieinfo & opiekey
Danach wird opieprint nach /usr/bin/ kopiert (cp opieprint /usr/bin) und ausführbar gemacht (chmod 755 /usr/bin/opieprint). Jetzt kann man sich eine druckbare Karte erstellen, indem man das Kommando opieprint ausführt:
# opieprint -5 -o keycard.ps -s sequence_number -S seed user
Using the MD5 algorithm to compute response. Reminder: Don't use opiekey from telnet or dial-in sessions.
Enter secret pass phrase: <PASSWORT>Die keycard kann man danach noch ins pdf Format konvertieren
#ps2pdf keycard.ps keycard.pdf
oder direkt ausdrucken (lpr keycard.ps). Danach sollte man die erstellten keycard Dateien löschen !!
Unter http://www.inner.net/pub/opie/contrib/ gibt es die Datei OPIEcalc.sit.hqx, die für die Nutzung unter MacOS gedacht ist.
Unter http://student.dei.uc.pt/~subtil/paranoia/ existieren eine .jar und eine .jad Datei. Leider konnte ich das Programm nicht testen, da es auf den mir zur Verfügung stehenden Handys nicht funktionierte.