21x9.org | System Administration | Home Automation | Smart Home
30.01.2013

Opie: One Time Passwords

One time passwords

Es kommt immer einmal vor, dass man sich von einem fremden Netz/fremden Rechnern aus mit einem seiner Server verbinden möchte. Meist ist dies auch kein Problem, aber in einem Internetcafe z.B. garantiert einem niemand, dass nicht eine Software auf den Rechnern installiert ist, die das Kennwort bei der Eingabe über die Tastatur mitschneidet.

Diese Gefahr kann man durch die Verwendung von Einmalkennwörtern (One time password, OTP) umgehen, selbst wenn eine Software die Eingaben mitschneiden würde, hätte der Angreifer nichts davon, da das Kennwort bereits nicht mehr gültig ist.

Installation

Die Installation beginnt mit:

apt-get install opie-client opie-server

Konfiguration

Zunächst muss opie in den Prozess der Benutzerauthentifizierung eingebunden werden (/etc/pam.d/sshd):

# /etc/pam.d/sshd

# Standard Un*x authentication.
#@include common-auth

auth sufficient pam_unix.so nullok_secure
auth sufficient pam_ldap.so use_first_pass
auth sufficient pam_opie.so
auth required pam_deny.so

Zeile 4 ist bereits vorhanden, wird jedoch auskommentiert.

Sofern kein LDAP genutzt wird kann die entsprechende Zeile (pam_ldap.so) entfallen.

Anschließend muss für SSH die Nutzung von challenge-response passwords aktiviert werden (/etc/ssh/sshd_config):

# /etc/ssh/sshd_config

# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
ChallengeResponseAuthentication yes

Nun kann opie initialisiert werden (die Initialisierung gilt immer nur für den derzeit angemeldeten Benutzer):

/etc/init.d/ssh restart
opiepasswd -c -f

Es muss nun ein Masterkennwort angegeben werden, welches mind. 10 Zeichen lang sein sollte. Mit Hilfe dieses Kennworts können später Einmalkennwörter generiert werden:

Using MD5 to compute responses.
Enter new secret pass phrase: $password
Again new secret pass phrase: $password

ID user OTP key is 499 123456
BUG DUCT SMOG GET MOON TIDY

Nun kann man ein Einmalkennwort generieren lassen:

opiekey 498 123456

Hier muss nun das Masterkennwort eingegeben werden, als Resultat erhält man ein Einmalkennwort:

Using the MD5 algorithm to compute response.
Reminder: Don't use opiekey from telnet or dial-in sessions.
Sorry, but you don't seem to be on the console or a secure terminal.
Warning: Continuing could disclose your secret pass phrase to an attacker!
Enter secret pass phrase: $password
SOON SOME FLEW DUCT TAPE JAPA

Mit Hilfe des Kennworts kann nun einmalig eine Anmeldung am System erfolgen.

Verwendung

Wenn man sich per OTP am Server anmelden möchte drückt man bei der Aufforderung zur Kennworteingabe einfach Enter. Daraufhin springt opie an:

Password: 
otp-md5 498 123456 ext, Response:

Der Wert 498 gibt, ähnlich wie bei einer TAN-Liste, das von opie gewünschte Einmalkennwort an. Der zweite Wert bezeichnet quasi den Benutzer dessen Einmalkennwort abgefragt wird. Wir haben dieses bereits oben generiert (opiekey 498 123456) und können es nun eingeben.

Anstelle sich jedes Mal vor dem Login ein neues Einmalkennwort generieren zu lassen kann man sich auch eine Liste mit mehreren Einmalkennwörtern generieren lassen:

opiekey -n 20 499 123456

Hierbei werden 20 Einmalkennwörter generiert, beginnend mit der ID 499.

Statt einer vorgenerierten Liste kann man aber auch Tools wie z.B. OTP Gen für iOS nutzen.

Hinweis: Die opie-Pakete sind in Debian Squeeze noch vorhanden, in Wheezy hingegen fehlen sie jedoch. Man kann aber problemlos die Squeeze-Pakete auch mit Wheezy verwenden.

Tags: imported

Tags

imported

Feeds

Atom 1.0 RSS JSON
  • Datenschutz
  • Impressum
  • Archiv