staging.inyokaproject.org

OPIE-Einmalpasswörter

Archivierte Anleitung

Dieser Artikel wurde archiviert. Das bedeutet, dass er nicht mehr auf Richtigkeit überprüft oder anderweitig gepflegt wird. Der Inhalt wurde für keine aktuell unterstützte Ubuntu-Version getestet. Wenn du Gründe für eine Wiederherstellung siehst, melde dich bitte in der Diskussion zum Artikel. Bis dahin bleibt die Seite für weitere Änderungen gesperrt.


Anmerkung: Pakete sind seit Ubuntu10.10 nicht mehr in den Quellen.

Artikel für fortgeschrittene Anwender

Dieser Artikel erfordert mehr Erfahrung im Umgang mit Linux und ist daher nur für fortgeschrittene Benutzer gedacht.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Das Verwenden normaler Passwörter in einer unsicheren Umgebung (z.B Internetcafes, Schulcomputer, Universitätsrechner) ist nicht ohne Risiko, da ein eventuell installierter Keylogger die Login-Informationen stehlen könnte. Abhilfe schaffen hier sogenannte Einmalpasswörter 🇩🇪 , die nach dem jeweils ersten Gebrauch ungültig werden. Ein potenzieller Angreifer könnte so nichts mehr mit den gestohlenen Login-Informationen anfangen.

Bei der hier vorgestellten Implementierung namens OPIE (One Time Passwords In Everything) erzeugt ein auf dem Server installierter Generator eine Sequenznummer und einen Seed, mit deren Hilfe ein Passwortgenerator nach Eingabe einer geheimen Passphrase den Schlüssel erzeugt, der für den Loginvorgang am Server benötigt wird. Der Server kann hierbei auch der lokale Rechner sein, auf dem die OTPs (One Time Passwords) benutzt werden sollen.

Genutzt werden können Einmalpasswörter zum Beispiel für SSH, GDM, sudo und viele weitere Dienste, die eine Passwortauthentifizierenung benötigen.

Installation und Konfiguration

Pakete installieren

Auf dem Rechner, auf dem man sich mit OPIE einloggen will, müssen folgende Pakete installiert [1] werden:

  • opie-server

  • opie-client

Befehl zum Installieren der Pakete:

sudo apt-get install opie-server opie-client 

Oder mit apturl installieren, Link: apt://opie-server,opie-client

Und auf dem Computern, auf denen die Einmalpasswörter generiert werden sollen, muss das Paket

  • opie-client

Befehl zum Installieren der Pakete:

sudo apt-get install opie-client 

Oder mit apturl installieren, Link: apt://opie-client

installiert [1] sein.

Hinweis:

Das Programm existiert (bislang) weder für Oneiric noch für Precise in den Paketquellen. Siehe diese Seite 🇬🇧 für eine alternative Methode mit dem Programm otpw.

OPIE-Schlüssel erzeugen

Damit der Client ein gültiges Einmalpasswort erzeugen kann, muss die Verwendung von OPIE auf dem entsprechenden Rechner initialisiert werden. Dazu loggt man sich auf dem Server als der Benutzer ein, mit dem man sich später mittels Einmalpasswörtern authentifizieren möchte und führt folgenden Befehl aus:

opiepasswd -c 

Hinweis:

Ruft man opiepasswd über eine SSH-Verbindung zu einem Server auf, bricht das Programm mit dem Hinweis ab, dass es unsicher sei, diesen Vorgang per Remote auszuführen. Da SSH aber im Gegensatz zu z.B. Telnet 🇩🇪 ein verschlüsseltes Protokoll ist, stellt dies kein Problem dar. Sofern man an einem vertrauenswürdigen Rechner arbeitet kann man opiepasswd also guten Gewissens via SSH aufrufen. Dazu startet man es mit dem Argument -f.

Die Ausgabe dieses Befehls könnte so aussehen:

Adding fop:
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: 
Again new secret pass phrase: 

ID fop OTP key is 499 mu1376
MANA NEST JOY A ROLL AUNT

Dabei muss ein sicheres, mindestens zehn Stellen langes Passwort eingegeben werden. Als Ausgabe erzeugt das Programm das erste Einmalpasswort. Da dieses aber schon von opiepasswd verwendet wurde, ist es bereits ungültig. Wie gültige Einmalpasswörter für den Computer erzeugt werden, wird weiter unten beschrieben.

PAM-Dateien anpassen

Auf dem Rechner wird nun der Login mit Einmalpasswörtern vorbereitet. Da OPIE PAM 🇩🇪 unterstützt, können mit OPIE viele verschiedene Dienste verwendet werden.

Dabei muss zuerst eine Datei /etc/pam.d/opie mit folgendem Inhalt angelegt werden:

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

Die erste Zeile wird dabei nur benötigt, falls man neben der Authentifizierung mit Einmalpasswörten weiterhin den Login mit normalen Passwörtern zulassen möchte.

Um OPIE nun mit den verschiedenen Authentisierungsdiensten verwenden zu können, muss die eben angelegte Datei /etc/pam.d/opie in die PAM-Konfigurationen der jeweiligen Dienste eingebunden werden. Dazu wird in der Datei /etc/pam.d/<Dienstname> der Eintrag

@include common-auth

durch

@include opie

ersetzt.

OPIE mit SSH

Aus den weiter oben genannten Gründen ist es besonders Sinnvoll, den SSH-Login auf einem Server mithilfe von Einmalpasswörtern abzusichern. Dabei muss aber zusätzlich zu den genannten Änderungen im Verzeichnis /etc/pam.d auch die Datei /etc/ssh/sshd_config angepasst werden.

Der Eintrag

ChallengeResponseAuthentication no

wird durch

ChallengeResponseAuthentication yes

ersetzt.

Dienste neustarten

Zum Schluss muss noch der Dienst, mit dem OTPs verwendet werden sollen neugestartet werden. Das könnte beispielsweise so aussehen:

sudo /etc/init.d/ssh restart 

Login mit Einmalpasswörtern

Einfacher Login

Möchte man sich von einem Client auf dem Server einloggen, wird der Seed und die Sequenznummer benötigt:

ssh 192.168.2.142 

Ausgabe (Beispiel):

Password: 
otp-md5 498 mu1376 ext, Response:

Im Beispiel ist die Sequenznummer 496 und der Seed mu6125. Hiermit muss nun ein OTP-Generator (One-Time-Password-Generator) gefüttert werden. Auf dem Client erledigt das opiekey:

opiekey 496 mu6125 

Nach Eingabe des Passworts generiert das Programm einen Einmalschlüssel für den Server:

Using the MD5 algorithm to compute response.
Reminder: Don't use opiekey from telnet or dial-in sessions.
Enter secret pass phrase: 
COAT MITE ARID SAD HELD BUD

Im Beispiel ist der Schlüssel also COAT MITE ARID SAD HELD BUT. Hiermit kann man sich, vorrausgesetzt man hat den Opie-Key mit dem richtigen Passwort generiert, nun am Server einloggen.

Passwörter im Voraus generieren

Die oben beschriebene Methode um Einmalpasswörter zu generieren bringt den entscheidenden Nachteil, dass hier eine Installation von opiekey auf dem Client-System vorausgesetzt wird. Einerseits ist es nicht immer möglich, einen OTP-Generator zu installieren (z.B in Internetcafes), zum Anderen hat man so genau das gleiche Problem, wie vorher: Wird auf einem kompromitierten Rechner die OPIE-Passphrase ausgespäht, so ist es für den Angreifer ohne weiteres möglich, eigene Einmalpasswörter für den Server zu generieren.

Zum Glück lassen sich mithilfe von opiekey auch mehrere Einmalpasswörter in einem Rutsch erzeugen:

opiekey -n 20 496 mu6125 

Nach Eingabe der korrekten Passphrase erzeugt das Programm nun nicht nur ein einziges Einmalpasswortfür die Sequenznummer 496, sondern 19 weitere für die folgenden Sequenzen 495 bis 477:

Using the MD5 algorithm to compute response.
Reminder: Don't use opiekey from telnet or dial-in sessions.
Enter secret pass phrase: 
477: HIND WELD HID CRY EVER RAW
478: SHOT LACY FILL WON TURF GOWN
479: DASH BEEN COAL DANE TAG MANA
480: SAGE FELT KITE FIN LOG TRIM
481: CAW NECK AVID KNOT RUSK BALD
482: MOAN LYLE BERG LOSE HOLD DIAL
483: ROW HOOF OAT BIND AIDE ACTA
484: WEST USER CEIL MAY CURT ICY
485: THEN ROOT BOON DUAL POE BONY
486: EWE BOOT TINA LASS ARAB JOLT
487: SWAB YAW RIB SEWN APS ASKS
488: FLAM GAIT GLOB DUCK MYTH CADY
489: BUS LEAF HAAS SLED TRIG WALL
490: LOAM MONK DEAF BITE MASS SEN
491: APS GETS SELF ALIA LO WIN
492: HEN CALL NAB HEED PUG MARE
493: ELM SOLD FOR RATE HOYT SLAM
494: OVEN AHEM FRED COD REED NOD
495: ARAB DIVE BONG FLAK OAK PUT
496: COAT MITE ARID SAD HELD BUD

Die einzelnen OTPs kann man sich nun notieren und beispielsweise in der Brieftasche mit sich herumtragen. Sollte man sich nun an einem nicht vertrauenswürdigen Rechner mit Hilfe von Einmalpasswörtern authentifizieren wollen, benötigt man nur die im Voraus berechneten Kennungen.

OPIE deinstallieren

Um OPIE wieder zu entfernen, müssen zuerst die Änderungen an den PAM-Dateien in /etc/pam.d/<Dienstname> wieder rückgängig gemacht werden. Dazu wird dort die Zeile

@include opie

durch

@include common-auth

ersetzt.

Als nächstes sollten die Pakete

  • opie-server

  • opie-client

gemäß mit der Paketverwaltung deinstalliert werden.

Der Login auf dem System mittels Einmalpasswörtern sollte nun nicht mehr möglich sein.

Diese Revision wurde am 27. November 2013 23:52 von aasche erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Sicherheit, Server