Seite wählen

One Time Password Authentifizierung mit MOTP

von | Sep 20, 2011 | Technology, Mac, Security, NETWAYS, Linux, Windows

Eine OTP Authentifizierung ist eine praktische und vor allem sichere Angelegenheit. Aus verschiedenen Daten wird ein Passphrase errechnet, welcher nur für einen kurzen Zeitraum und einmalig gültig ist und somit nicht mehrmals verwendbar.
Es gibt viele Lösungen, welche auf Hardware-Tokens setzen und entsprechende Anschaffungskosten anfallen. Als gute Alternative bietet sich das Mobile One Time Password-Projekt an, kurz MOTP. MOTP ist mehr der eigentliche Algorithmus, auf dessen Basis diverse Clients für alle gängigen Betriebssysteme und mobilen Endgeräte (J2ME, Blackberry, Android, iOS, WebOS …) sowie serverseitig viele Implementierungen entwickelt worden sind. Heut möchte ich kurz ein Apache Modul und einen iOS Client vorstellen, mit denen eine einfache OTP Authentifizierung realisiert werden kann.
MOTP berechnet seine OTPs auf Basis dreier Komponenten:

  • PIN (bleibt gleich, wird beim Client eingegeben)
  • Secret (Im Regelfall ein Hash, welcher aus Zufallsdaten vom Client generiert wird)
  • Uhrzeit (MOTP setzt auf zeitbasierte Generierung, Zeiten müssen auf Client und Server übereinstimmen! – NTP)

Das verwendete Apache Modul, mod_authn_otp, muss zunächst compiliert werden. Eine Anleitung, welche Abhängigkeiten installiert werden müssen und wie es ordnungsgemäß installiert wird, findet sich im Projektwiki.
Angesprochen wird das Modul in der Apache Config als normales Basic Auth. Hier wird auch ein UserFile angegeben, wo die jeweiligen Nutzer mit ihren Secrets und dazugehörigen Pins angegeben werden. Zu beachten ist, dass dieses File vom Apache Benutzer schreibbar sein muss, damit das Modul einen Timestamp setzen kann. Dies bietet die Funktion, dass ein Token für einen festgelegten Zeitraum gültig ist, und somit der Nutzer nicht ständig aufgefordert wird, einen neuen Token eingeben zu müssen.
Als Client habe ich mOTP aus dem AppStore genommen. Diese App ist sehr einfach in der Bedienung und generiert selbst einen Secret, welcher in das UserFile übernommen werden kann. Auf der MOTP Projektseite gibt es eine große Auswahl an weiteren Clients für diverse Systeme. Beispielsweise wurde ein Client in Python geschrieben, welcher auf jedem gängigen OS funktionieren sollte.

5 Kommentare

  1. its me

    Wenn jemand Dein mobile Device ownt, hat er alles was er braucht. Aber es gibt ja keine Schadsoftware für mobile devices 😉
    Besser sind imho otp, wo die pin nicht auf dem mobilen Device eingegeben wird, sondern nur bei der Stelle wo man seine Authentifizierung angeben muss also pin+otp (aus secret und time Value)

    Antworten
  2. Lars

    na wenn jemand das Handy wirklich hackt – dann fehlt ihm noch immer der 4 Stellige PIN. Am Client (Handy) kannst du jede PIN Kombination ohne Fehlermeldung eingeben – nur das Passwort, welches das Handy dann ausgibt funktioniert halt nicht … 😉
    Der Client weiss selber den Pin gar NICHT… und von daher schon relativ sicher. In unserem Fall sperrt der Radius den Account nach dem 3. Versuch – also sportlich in 3 Versuchen 10.000 Kombinationen durchzutesten … 😀

    Antworten
  3. Bernd Erk

    Noch dazu kann es ja auch eine zusätzliche Sicherheitshürde sein und das finale Passwort kann und sollte vermutlich trotzdem abgefragt werden

    Antworten
  4. Lars

    na das Passwort fuer OTP sieht ja nicht wirklich prickelnd aus, a0cb1b zb.
    Der eigentliche PIN, den man fuer den Token Client benoetigt, ist auf dem Server hinterlegt. Das selbe gilt fuer den 16 stelligen eindeutigen Code von dem Token. Somit kann der Anwender auch seinen PIN aendern – ohne am Token etwas zu aendern.
    Eine Moeglichkeit wie beim ACE Server (RSA) sein normales Passwort mit dem OTP teil zu verknuepfen gibt es leider noch nicht. Ich hatte das mal probiert mit nem Shell script, scheitert aber in der Praxis daran, dass das Passwort beim Radius verschluesslet ankommt und man somit nicht einfach die letzten 6 Stellen als OTP Teil abschneiden kann 🙁
    Der Idealfall waere wenn man MOTP direkt irgendwie als Modul ins OpenLDAP bringen koennte. Dann waere der Einsatz nicht nur auf Radius und WEB Server beschraenkt…

    Antworten
  5. foobar

    Der quatsch funktioniert so aber nich unter BSD…

    Antworten

Trackbacks/Pingbacks

  1. Weekly Snap: CPU Limit, MOTP, Typed Arrays & Training Courses in 2012 › NETWAYS Blog - […] on, Marcus H showed how to implement single-use password authentication with MOTP, the Mobile One Time Password project. He…

Einen Kommentar abschicken

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Mehr Beiträge zum Thema Technology | Mac | Security | NETWAYS | Linux | Windows

OSMC 2023 | Will ChatGPT Take Over My Job?

One of the talks at OSMC 2023 was "Will ChatGPT take over my job?" by Philipp Krenn. It explored the changing role of artificial intelligence in our lives, raising important questions about its use in software development.   The Rise of AI in Software...

Monthly Snap Februar 2024

Der Februar war ein ereignisreicher Monat bei NETWAYS! Neben dem normalen Alltag gab es auch unser Jahresmeeting, ein Spieleabend im Büro, und viele Kollegen waren auf Konferenzen und der Jobmesse in Nürnberg unterwegs. Und natürlich wurden viele Blogposts zu...