One time password

One time password

Ein Einmalkennwort oder Einmalpasswort ist ein Kennwort zur Authentifizierung oder auch Autorisierung. Es ist nur für einen einzigen Vorgang gültig und kann kein zweites Mal benutzt werden. Jede Authentifizierung oder Autorisierung erfordert ein neues Einmalkennwort. Es ist sicher gegen passive Angriffe, also Mithören. Auch Replay-Attacken sind somit unmöglich. Gegen das Angriffsszenario Man in the Middle helfen Einmalkennwörter nicht. Auch hat es keinen Einfluss auf die Sicherheit einer Verschlüsselungsmethode.

Es besteht die Gefahr einer Verwechselung mit dem One-Time-Pad, dem einzigen informationstheoretisch sicheren Verschlüsselungsverfahren, da beide oft mit OTP (für One-Time-Pad bzw. One-Time-Password) abgekürzt werden.

Die Herausforderung beim Einmalkennwort ist, wie beide Seiten wissen können, welches Kennwort für einen bestimmten Anmeldevorgang gültig ist. Dazu kommen zwei Möglichkeiten in Betracht: Kennwortlisten oder Kennwortgeneratoren.

Inhaltsverzeichnis

Kennwortlisten

Bei diesem System werden vorgefertigte Listen von Kennwörtern auf beiden Seiten hinterlegt. Diese Liste wird entweder der Reihe nach abgearbeitet (d. h.: die Einträge sind durchnummeriert) oder es wird einfach ein noch nicht benutzter Wert wahlfrei ausgewählt. Dieser Wert wird als Kennwort übermittelt und auf beiden Seiten aus der Liste gestrichen. Die TAN-Listen beim Online-Banking sind ein Beispiel für eine Kennwortliste.

Zwischen den genannten Varianten besteht folgender Unterschied: Bei Einmalkennwörtern, welche hintereinander, also sequentiell, verwendet werden, gibt es zu jedem Zeitpunkt genau einen gültigen Wert, nämlich den ersten noch nicht verwendeten. Bei Einmalkennwörtern, welche vom Absender beliebig aus einer Liste ausgewählt werden können, gibt es zu jedem Zeitpunkt genau so viele gültige Werte, wie es unverbrauchte Werte auf der Liste gibt.

Ein Nachteil ist ein möglicher „Verlust“ dieser Liste. Ein Angreifer, dem (z. B. bei einem Systemeinbruch) diese Liste in die Hand fällt, kennt damit alle in Frage kommenden Einmalkennwörter. Ein System, welches die Liste nicht komplett speichern muss, ist demnach diesem Verfahren vorzuziehen.

Kennwortgeneratoren

Ein Kennwortgenerator ist ein Programm welches automatisch ein Kennwort generiert.

Verfahren

Bei den Kennwortgeneratoren wird durch einen speziellen Algorithmus zu jedem Zeitpunkt jeweils ein aktuelles Kennwort generiert. Dabei müssen drei Verfahren unterschieden werden:

  1. Zeitgesteuerte Generatoren
  2. Ereignisgesteuerte Generatoren
  3. Challenge-Response-gesteuerte Generatoren

Bei allen dreien ist es nicht der Algorithmus selbst, der übertragen wird, sondern nur der Beweis, das Ergebnis des Algorithmus. Mit dem richtigen Ergebnis weist der Client nach, dass er über den richtigen Algorithmus und, wenn nötig, die richtige Initialisierung verfügt.

Zeitgesteuert

Obwohl der Server jeweils dieselbe Berechnung wie der Client (der Token) ausführt, akzeptiert und berechnet er im allgemeinen innerhalb eines Toleranzbereichs mehrere Einmalkennwörter, da eventuell im Token die eingebaute Uhr nicht hundertprozentig exakt geht. Dennoch hat jedes Einmalkennwort ein genau definiertes Zeitinvall für seine Gültigkeit, welche im Regelfall zwischen 1 bis max. 15 Minuten liegt.

Dazu ein kurzes Beispiel eines Tokens, welcher jede Minute sein Einmalkennwort ändert. Das Einmalkennwort ist jedoch nicht nur zum Zeitpunkt t gültig, sondern wird serverseitig wegen der Toleranz auch zum Zeitpunkt t − 1 min und t + 1 min und damit drei Minuten lang akzeptiert. Gute Verfahren synchronisieren sich anhand der eingehenden Daten auf den Client. Bei längeren Unterbrechungen zwischen den Anmeldungen kann aber auch dies fehlschlagen.

Bei Verwendung eines einzigen Tokens bei mehreren unabhängigen Stellen würde sich bei einem Ablauschen des Einmalkennworts bei einer Stelle ein Sicherheitsrisiko für die anderen Stellen innerhalb des Toleranzbereiches eröffnen.

Ereignisgesteuert

Auch bei dem ereignisgesteuerten Verfahren führt der Server wie beim zeitgesteuerten dieselbe Berechnung aus, die auf der Client-Seite stattgefunden hat, und auch hier berechnet und akzeptiert er in einem Toleranzbereich mehrere Einmalkennwörter, ausgenommen schon verwendeter. Der Grund ist, dass der Besitzer gelegentlich ein generiertes Kennwort nicht verwenden könnte. Dieses Verfahren ist viel schonender für die Batterien eines entsprechenden Gerätes (Token). Es ist auch möglich, es ohne permanente Stromversorgung zu betreiben, indem einfach der letzte verwendete und damit ohnehin entwertete Wert gespeichert wird.

Bei einer Verwendung eines einzigen Tokens bei mehreren unabhängigen Stellen, müssen alle Stellen zeitnah über jede Verwendung bei irgendeinem Ereignis informiert werden.

Challenge-Response-gesteuert

Synchronisationsprobleme gibt es im Falle eines Challenge-Response-Verfahrens nicht. Bei diesem Verfahren gibt der Server eine Aufgabe (Challenge) vor, die der Client beantworten muss (Response). Der Client erhält also einen Wert des Servers als Eingabe und berechnet darauf basierend ein Einmalkennwort.

Der Vorteil dieses Verfahrens ist, dass die Challenge völlig unabhängig gestellt werden kann. Gibt es auf der Server-Seite keinen Algorithmus, der sich vorausberechnen lässt, dann gibt auf der Client- bzw. Cracker-Seite keine Möglichkeit, eine Response im Voraus zu berechnen. Damit ist auch die Verwendung eines einzigen Algorithmus bei mehreren unabhängigen Stellen möglich, die Sicherheit wird dadurch nicht reduziert. Es gibt Lösungen, welche mit einem Gerät (Token) die Response berechnen. In diesem Fall kann auch die unten beschriebene Technik zur Anwendung kommen, mit dem Initialwert als Challenge.

Verwendete Technik in den meisten Generatoren

Typische Beispiele für die am häufigsten verwendeten Verfahren sind einerseits die sogenannten Token von z. B. RSA Security, ID Control, Vasco, Kobil und anderen Herstellern, andererseits etwa Implementierungen des Einmalkennworts nach Lamport (auch als Lamport Hash bezeichnet), dessen Algorithmus im wesentlichen auf dem wiederholten Anwenden einer Hashfunktion beruht.

Voraussetzung für das One-Time-Password-Verfahren ist, dass beide Beteiligte (Client und Server) ein gemeinsames, geheimes Kennwort ggKW kennen. Aus diesem wird nun eine Reihe von One-Time-Passwords (OTP) erzeugt.

Initialisierung

Konfiguriert wird das Verfahren, indem der Server und der Client mit dem gleichen Wert einer Zufallszahl rA initialisiert werden. Dieser berechnet über diesen sogenannte Seed (Saat), konkateniert mit seinem geheimen Kennwort, einen Hash-Wert S = H(rA,ggKW) mittels einer kryptographischen Hash-Funktion H.

Berechnung der One-Time-Passwords

Nun wird eine Reihe von One-Time-Passwords generiert, indem auf S mehrfach iterativ die Hash-Funktion angewandt wird: Das erste OTP entsteht, indem die Hash-Funktion N-mal angewandt wird: KWN = HN(S). Das nächste, indem die Hash-Funktion N − 1-mal angewandt wird. Ein möglicher Mithörer kann aus dem verschickten Kennwort nicht das Nächste berechnen, da er dazu die Hash-Funktion invertieren müsste, um von KWN auf KWN − 1 zu kommen. Dies ist jedoch unmöglich.

Verifizierung des OTP beim Server

Der Client schickt nun sein OTP an den Server, der es verifiziert, indem er initial die gleiche Operation durchführt, wie der Client (da auch er das gemeinsame, geheime Kennwort ggKW kennt). Im Folgenden speichert der Server das jeweils letzte von dem Client erhaltene OTP KWN. Indem er auf das neu-erhaltene OTP KWN + 1 einmal die Hash-Funktion anwendet und das Ergebnis mit dem letzten OTP KWN vergleicht, kann er das Kennwort verifizieren. Es wird nun das gespeicherte OTP KWN mit dem neuen OTP KWN + 1 überschrieben.

Reinitialisierung

Da bei jeder Authentifizierung ein neues OTP geschickt wird, und der Zähler N irgendwann Null erreicht, muss das OTP-System reinitialisiert werden. Dazu kann der Client z. B. selbständig einen neuen Seed rA und ein neues N wählen und dem Server mitteilen. Auch kann über eine sichere Leitung ein neues gemeinsames, geheimes Kennwort ggKW vereinbart werden. Bei vielen, heute verwendeten Token ist jedoch eine Kommunikation über den Wert selbst hinaus nicht vorgesehen.

Sicherheit

Da kryptographische Hash-Funktionen nicht invertierbar sind, kann das geheime Kennwort nicht in Erfahrung gebracht werden. Auch ist das System gegen Replay-Attacken geschützt, da jedes Mal ein neues Kennwort übertragen wird.

Authentifiziert wird aber nur der Client vom Server. Der Server authentifiziert sich hingegen nicht beim Client. Somit kann ein Angreifer einen eigenen Server im Netzwerk installieren und dem Client vorgaukeln, dass dieser Server der Authentifizierungs-Server sei.

Siehe auch

Weblinks


Wikimedia Foundation.

Игры ⚽ Нужен реферат?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • One-time password — A one time password (OTP) is a password that is valid for only one login session or transaction. OTPs avoid a number of shortcomings that are associated with traditional (static) passwords. The most important shortcoming that is addressed by OTPs …   Wikipedia

  • One-time-password — Ein Einmalkennwort oder Einmalpasswort ist ein Kennwort zur Authentifizierung oder auch Autorisierung. Es ist nur für einen einzigen Vorgang gültig und kann kein zweites Mal benutzt werden. Jede Authentifizierung oder Autorisierung erfordert ein… …   Deutsch Wikipedia

  • one-time password — vienkartinis slaptažodis statusas T sritis informatika apibrėžtis ↑Slaptažodis, galiojantis vienam ryšio seansui. Kai klientas užmezga ryšį su serveriu, serveris jam išsiunčia teksto eilutę. Klientas šią eilutę sumaišo su iš šio serverio prieš… …   Enciklopedinis kompiuterijos žodynas

  • Time-based One-time Password Algorithm — TOTP (Time based One Time Password Algorithm, RFC 6238.) OATH алгоритм создания одноразовых паролей для защищенной аутентификации, являющийся улучшением HOTP (HMAC Based One Time Password Algorithm). Является алгоритмом односторонней… …   Википедия

  • One-Time-Password-System — Ein Einmalkennwort oder Einmalpasswort ist ein Kennwort zur Authentifizierung oder auch Autorisierung. Es ist nur für einen einzigen Vorgang gültig und kann kein zweites Mal benutzt werden. Jede Authentifizierung oder Autorisierung erfordert ein… …   Deutsch Wikipedia

  • One-time pad — Excerpt from a one time pad In cryptography, the one time pad (OTP) is a type of encryption, which has been proven to be impossible to crack if used correctly. Each bit or character from the plaintext is encrypted by a modular addition with a bit …   Wikipedia

  • One-time authorization code — as used in the yammer s desktop client One time authorization code (OTAC) allows desktop clients for web applications to securely authenticate to the web application. The web application generates a unique code (pin) that the user can input into… …   Wikipedia

  • Password — For other uses, see Password (disambiguation). A password is a secret word or string of characters that is used for authentication, to prove identity or gain access to a resource (example: an access code is a type of password). The password… …   Wikipedia

  • Password policy — A password policy is a set of rules designed to enhance computer security by encouraging users to employ strong passwords and use them properly. A password policy is often part of an organization s official regulations and may be taught as part… …   Wikipedia

  • Password cracking — is the process of recovering passwords from data that has been stored in or transmitted by a computer system. A common approach is to repeatedly try guesses for the password. The purpose of password cracking might be to help a user recover a… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”