Einmalpasswörter: Unterschied zwischen den Versionen

Aus schokokeks.org Wiki
Zur Navigation springen Zur Suche springen
K hat „Benutzer:Bernd/One-Time-Pad“ nach „One-Time-Pad“ verschoben
Keine Bearbeitungszusammenfassung
 
(7 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{AlertBox
|title=Hinweis
|content=Wir haben die Unterstützung für skey entfernt, belassen diese Anleitung aber hier, falls sie für andere Nutzer interessant ist.
}}
Wenn man sich von einem Rechner, den andere Personen kontrollieren können (Internet-Café, bei Fremden, ...) mit einem Passwort einloggen möchte, besteht immer die reale Gefahr, dass der Rechner das Passwort irgendwo protokolliert ("Keylogger") und damit andere Personen Zugriff auf das Passwort und damit den benutzten Account haben.
Wenn man sich von einem Rechner, den andere Personen kontrollieren können (Internet-Café, bei Fremden, ...) mit einem Passwort einloggen möchte, besteht immer die reale Gefahr, dass der Rechner das Passwort irgendwo protokolliert ("Keylogger") und damit andere Personen Zugriff auf das Passwort und damit den benutzten Account haben.


Um diesem Problem ohne zusätzliche Hardware zu begegnen gibt es eigentlich nur eine funktionierende Lösung: One-Time-Pads bzw. Einmalpasswörter (kurz: OTP).
Um diesem Problem ohne zusätzliche Hardware zu begegnen gibt es eigentlich nur eine funktionierende Lösung: One-Time-Passwords bzw. Einmalpasswörter (kurz: OTP).


Das Prinzip ist wie beim TAN-Verfahren im Online-Banking, dass es eine Liste von möglichen Passwörtern gibt und jedes kann nur einmal benutzt werden.  
Das Prinzip ist wie beim TAN-Verfahren im Online-Banking, dass es eine Liste von möglichen Passwörtern gibt und jedes kann nur einmal benutzt werden.


==S/Key==
==S/Key==
Zeile 12: Zeile 18:


# die Einmalpasswörter werden aus einer für den Benutzer eindeutigen ID, der OTP-Nummer und einem geheimen (konstanten) Passwort errechnet und nicht zufällig erzeugt. Es ist daher immer möglich, unter Kenntnis des konstanten Passworts das aktuell gültige OTP zu erzeugen.
# die Einmalpasswörter werden aus einer für den Benutzer eindeutigen ID, der OTP-Nummer und einem geheimen (konstanten) Passwort errechnet und nicht zufällig erzeugt. Es ist daher immer möglich, unter Kenntnis des konstanten Passworts das aktuell gültige OTP zu erzeugen.
# die Passwörter sind zwar relativ lang, aber sie werden als 2- bis 4-buchstabige englische Wörter ausgegeben, so dass man nicht buchstabe für Buchstabe irgendwelche Zufallsfolgen eingeben muss sondern ein solches Passwort recht einfach von z.B. einem Zettel abschreiben kann.
# die Passwörter sind zwar relativ lang, aber sie werden als 2- bis 4-buchstabige englische Wörter ausgegeben, so dass man nicht Buchstabe für Buchstabe irgendwelche Zufallsfolgen eingeben muss sondern ein solches Passwort recht einfach von z.B. einem Zettel abschreiben kann.


Die Berechnung gültiger OTPs ist entweder mit dem Programm "skey" (bei uns installiert) oder auch über andere skey-kompatible Generatoren möglich. solche Generatoren gibt es auch für Handys und PDAs, so dass man evtl. so einen Passwort-Generator immer dabei haben kann.
Die Berechnung gültiger OTPs ist entweder mit dem Programm "skey" (bei uns installiert) oder auch über andere skey-kompatible Generatoren möglich. Solche Generatoren gibt es auch für Handys und PDAs, so dass man eventuell so einen Passwort-Generator immer dabei haben kann.
 
Beispiel für Java-fähige Handys: [http://fatsquirrel.org/software/vejotp/ VeJOTP].


Beispiel für Java-fähige Handys: [https://fatsquirrel.org/software/vejotp/ VeJOTP].


==Einrichtung==
==Einrichtung==


Vor der aller ersten Benutzung muss der Account für S/Key freigeschaltet werden und eine initiale Passwortliste erzeugt werden. Dies geschicht mit folgendem Befehl:
Vor der aller ersten Benutzung muss der Account für S/Key freigeschaltet werden und eine initiale Passwortliste erzeugt werden. Dies geschieht mit folgendem Befehl:


  skeyinit -t sha1
  skeyinit -t sha1
Zeile 27: Zeile 32:
{{AlertBox
{{AlertBox
|title=Bitte beachten Sie:
|title=Bitte beachten Sie:
|content=Wir verwenden in diesem Beispiel den Hash-Algorithmus '''SHA1'''. Die voreinstellung, MD5 ist sehr alt und gilt mittlerweile als nicht mehr sicher. Eventuell können Sie aber nicht mit jedem S/Key-kompatiblen Programm SHA1-Passwörter erzeugen.
|content=Wir verwenden in diesem Beispiel den Hash-Algorithmus '''SHA1'''. Die Voreinstellung, MD5 ist sehr alt und gilt mittlerweile als nicht mehr sicher. Eventuell können Sie aber nicht mit jedem S/Key-kompatiblen Programm SHA1-Passwörter erzeugen.
}}
}}


Dieses fragt folgende Dinge ab:
Dieses fragt folgende Dinge ab:


# Das normale Passwort (damit sich nicht ein Dritter Zugang verschaffen kann, nur weil man eine Konsole offen gelassen hat)
# Das normale Passwort (damit sich nicht ein Dritter Zugang verschaffen kann, nur weil man eine Konsole offen gelassen hat).
# Ein neues, sicheres Passwort. Es wird verlangt, dass dieses Passwort mindestens 10 Zeichen hat. Da man sich alleine mit Kenntnis dieses Passworts einloggen kann, sollte das auch wirklich ein gutes Passwort sein.
# Ein neues, sicheres Passwort. Es wird verlangt, dass dieses Passwort mindestens 10 Zeichen hat. Da man sich alleine mit Kenntnis dieses Passworts einloggen kann, sollte das auch wirklich ein gutes Passwort sein.
# Eine Wiederholung des gerade eingegebenen Passworts
# Eine Wiederholung des gerade eingegebenen Passworts.


Es werden dann 100 OTPs erzeugt. S/Key nummeriert die OTPs absteigend, beginnend bei 99. So sieht man immer, wie viele man noch übrig hat.
Es werden dann 100 OTPs erzeugt. S/Key nummeriert die OTPs absteigend, beginnend bei 99. So sieht man immer, wie viele man noch übrig hat.
Zeile 42: Zeile 47:
==Benutzung==
==Benutzung==


Will man das OTP benutzen, stellt man einfach dem Benutzernamen ein ''':skey''' hinten an.
Wenn für den Benutzer eine Passwortliste hinterlegt ist, dann wird beim Login wahlweise das OTP oder das normale Passwort akzeptiert. Ein Login per SSH-Key geht natürlich ebenfalls weiterhin.
 
Z.B. kann sich der Benutzer bernd@zucker.schokokeks.org mittels bernd''':skey'''@zucker.schokokeks.org mittels OTP einloggen.


Beim Login zeigt S/Key dann etwas wie folgendes an:
Beim Login zeigt S/Key dann etwas wie folgendes an:
Zeile 55: Zeile 58:
  skey -t sha1 98 zuck45464
  skey -t sha1 98 zuck45464


Auf einem kompatiblen Gerät unter Eingabe des geheimen Passworts das passende OTP errechnen lassen.
auf einem kompatiblen Gerät unter Eingabe des geheimen Passworts das passende OTP errechnen lassen.


{{AlertBox
{{AlertBox
Zeile 61: Zeile 64:
|content=Natürlich darf der als unsicher eingestufte Rechner '''nicht''' dazu benutzt werden, das OTP zu errechnen. Denn dazu muss das geheime Passwort eingegeben werden, mit dem ein Angreifer selbst weitere OTPs erzeugen kann.
|content=Natürlich darf der als unsicher eingestufte Rechner '''nicht''' dazu benutzt werden, das OTP zu errechnen. Denn dazu muss das geheime Passwort eingegeben werden, mit dem ein Angreifer selbst weitere OTPs erzeugen kann.
}}
}}


==Passwörter für unterwegs==
==Passwörter für unterwegs==
Zeile 69: Zeile 71:
Eine Liste von 10 OTPs für die S/Key-Liste ''zuck45464'' beginnend ab Nummer 95 erhält man mit dem Befehl
Eine Liste von 10 OTPs für die S/Key-Liste ''zuck45464'' beginnend ab Nummer 95 erhält man mit dem Befehl


  skey -n '''10''' 95 zuck45464
  skey -t sha1 -n '''10''' 95 zuck45464
 


==Erneuern der Passwortliste==
==Erneuern der Passwortliste==


Sind alle OTPs verbraucht oder besteht Grund zur Annahme dass das sichere Passwort doch nicht mehr so sicher ist, dann kann die Passwortliste erneuert werden. Das geht einfach wieder mit dem Befehl
Sind alle OTPs verbraucht oder besteht Grund zur Annahme, dass das sichere Passwort doch nicht mehr so sicher ist, dann kann die Passwortliste erneuert werden. Das geht einfach wieder mit dem Befehl


  skeyinit -t sha1
  skeyinit -t sha1
Mit diesem Befehl werden automatisch alle vorher erzeugten Einmalpasswörter ungültig. Dies ist also geeignet, wenn man z.B. eine Papier-Liste verloren hat.
==Passwortliste löschen==
Braucht man eine Liste nicht mehr, dann kann man mit
skeyinit -z
die komplette Liste löschen und damit die Benutzung von S/Key für diesen Benutzeraccount abschalten.

Aktuelle Version vom 7. Dezember 2019, 13:58 Uhr

Hinweis

Wir haben die Unterstützung für skey entfernt, belassen diese Anleitung aber hier, falls sie für andere Nutzer interessant ist.


Wenn man sich von einem Rechner, den andere Personen kontrollieren können (Internet-Café, bei Fremden, ...) mit einem Passwort einloggen möchte, besteht immer die reale Gefahr, dass der Rechner das Passwort irgendwo protokolliert ("Keylogger") und damit andere Personen Zugriff auf das Passwort und damit den benutzten Account haben.

Um diesem Problem ohne zusätzliche Hardware zu begegnen gibt es eigentlich nur eine funktionierende Lösung: One-Time-Passwords bzw. Einmalpasswörter (kurz: OTP).

Das Prinzip ist wie beim TAN-Verfahren im Online-Banking, dass es eine Liste von möglichen Passwörtern gibt und jedes kann nur einmal benutzt werden.

S/Key

Wir setzen für diesen Zweck S/Key ein. Dieses System kommt von OpenBSD.

Diese Einmalpasswörter haben zwei interessante Vorteile:

  1. die Einmalpasswörter werden aus einer für den Benutzer eindeutigen ID, der OTP-Nummer und einem geheimen (konstanten) Passwort errechnet und nicht zufällig erzeugt. Es ist daher immer möglich, unter Kenntnis des konstanten Passworts das aktuell gültige OTP zu erzeugen.
  2. die Passwörter sind zwar relativ lang, aber sie werden als 2- bis 4-buchstabige englische Wörter ausgegeben, so dass man nicht Buchstabe für Buchstabe irgendwelche Zufallsfolgen eingeben muss sondern ein solches Passwort recht einfach von z.B. einem Zettel abschreiben kann.

Die Berechnung gültiger OTPs ist entweder mit dem Programm "skey" (bei uns installiert) oder auch über andere skey-kompatible Generatoren möglich. Solche Generatoren gibt es auch für Handys und PDAs, so dass man eventuell so einen Passwort-Generator immer dabei haben kann.

Beispiel für Java-fähige Handys: VeJOTP.

Einrichtung

Vor der aller ersten Benutzung muss der Account für S/Key freigeschaltet werden und eine initiale Passwortliste erzeugt werden. Dies geschieht mit folgendem Befehl:

skeyinit -t sha1
Bitte beachten Sie:

Wir verwenden in diesem Beispiel den Hash-Algorithmus SHA1. Die Voreinstellung, MD5 ist sehr alt und gilt mittlerweile als nicht mehr sicher. Eventuell können Sie aber nicht mit jedem S/Key-kompatiblen Programm SHA1-Passwörter erzeugen.


Dieses fragt folgende Dinge ab:

  1. Das normale Passwort (damit sich nicht ein Dritter Zugang verschaffen kann, nur weil man eine Konsole offen gelassen hat).
  2. Ein neues, sicheres Passwort. Es wird verlangt, dass dieses Passwort mindestens 10 Zeichen hat. Da man sich alleine mit Kenntnis dieses Passworts einloggen kann, sollte das auch wirklich ein gutes Passwort sein.
  3. Eine Wiederholung des gerade eingegebenen Passworts.

Es werden dann 100 OTPs erzeugt. S/Key nummeriert die OTPs absteigend, beginnend bei 99. So sieht man immer, wie viele man noch übrig hat.

Danach gibt es das erste OTP aus, das für den nächsten Login benutzt werden kann.

Benutzung

Wenn für den Benutzer eine Passwortliste hinterlegt ist, dann wird beim Login wahlweise das OTP oder das normale Passwort akzeptiert. Ein Login per SSH-Key geht natürlich ebenfalls weiterhin.

Beim Login zeigt S/Key dann etwas wie folgendes an:

otp-sha1 98 zuck45464
S/Key response or system password:

Er erwartet also SHA1-Passwort Nummer 98 für die Passwortliste mit der ID zuck45464. Mit diesen Informationen kann man sich z.B. mittels

skey -t sha1 98 zuck45464

auf einem kompatiblen Gerät unter Eingabe des geheimen Passworts das passende OTP errechnen lassen.

Wichtig

Natürlich darf der als unsicher eingestufte Rechner nicht dazu benutzt werden, das OTP zu errechnen. Denn dazu muss das geheime Passwort eingegeben werden, mit dem ein Angreifer selbst weitere OTPs erzeugen kann.


Passwörter für unterwegs

Da man nicht immer die Möglichkeit hat, Passwörter digital errechnen zu lassen, kann man sich auch eine Liste der kommenden Passwörter z.B. auf Papier ausdrucken und mitnehmen.

Eine Liste von 10 OTPs für die S/Key-Liste zuck45464 beginnend ab Nummer 95 erhält man mit dem Befehl

skey -t sha1 -n 10 95 zuck45464

Erneuern der Passwortliste

Sind alle OTPs verbraucht oder besteht Grund zur Annahme, dass das sichere Passwort doch nicht mehr so sicher ist, dann kann die Passwortliste erneuert werden. Das geht einfach wieder mit dem Befehl

skeyinit -t sha1

Mit diesem Befehl werden automatisch alle vorher erzeugten Einmalpasswörter ungültig. Dies ist also geeignet, wenn man z.B. eine Papier-Liste verloren hat.

Passwortliste löschen

Braucht man eine Liste nicht mehr, dann kann man mit

skeyinit -z

die komplette Liste löschen und damit die Benutzung von S/Key für diesen Benutzeraccount abschalten.