Deutsch
  • OTP
  • TOTP
  • MFA
  • HOTP
  • Einmal-Passwort

Was ist ein Einmal-Passwort (OTP)?

Was ist OTP? Was ist der Unterschied zwischen OTP und TOTP? Wie funktioniert OTP? Dieser Artikel erklärt die grundlegenden Konzepte von OTP und warum es gegenüber statischen Passwörtern bevorzugt wird.

Simeng
Simeng
Developer

OTP steht für Einmal-Passwort, auch bekannt als Einmal-Pin, Einmalcode oder dynamisches Passwort. Es ist ein einzigartiges, automatisch generiertes temporäres Passwort, das für eine einzige Authentifizierungssitzung oder Transaktion verwendet wird.

Im Gegensatz zu herkömmlichen statischen Passwörtern ändern sich OTPs jedes Mal, wenn sie verwendet werden, und laufen nach kurzer Zeit ab. Dies macht sie zu einer äußerst sicheren Authentifizierungsmethode, da es für Angreifer viel schwieriger ist, sie zu stehlen und erneut zu verwenden.

OTPs sind in verschiedenen Sicherheitsanwendungen weit verbreitet, einschließlich Online-Banking, E-Commerce und dem Schutz des Zugriffs auf sensible Daten oder Systeme. Sie werden auch häufig als zweiter Faktor in der Multi-Faktor-Authentifizierung (MFA) eingesetzt, um eine zusätzliche Sicherheitsschicht zu bieten. Durch die Kombination von etwas, das der Benutzer kennt (z. B. ein Passwort), mit etwas, das er besitzt (z. B. ein Mobilgerät), sind OTPs ein unverzichtbares Werkzeug moderner Authentifizierungssysteme geworden.

Wie funktioniert OTP?

Es gibt verschiedene Arten von OTPs, die jeweils für unterschiedliche Anwendungsfälle unterschiedlich generiert und bereitgestellt werden. Einige gängige Methoden von OTPs umfassen:

SMS OTP / E-Mail OTP

SMS OTP oder E-Mail OTP ist eine der einfachsten Formen von OTPs, bei der ein eindeutiger Code von einem Server generiert und sicher per SMS oder E-Mail an den Benutzer gesendet wird. Der Benutzer gibt dann diesen Code ein, um sich zu authentifizieren.

So funktioniert es:

  • Der Benutzer fordert ein OTP vom Server an.
  • Der Server generiert einen zufälligen numerischen oder alphanumerischen Code und sendet ihn per SMS oder E-Mail an den Benutzer.
  • Der Benutzer ruft das OTP aus seinem SMS- oder E-Mail-Posteingang ab und gibt es in die Anwendung ein.
  • Der Server überprüft den Code anhand seiner Aufzeichnungen und gewährt Zugang, wenn der Code gültig ist.

Sicherheitsmaßnahmen:

  • Das OTP ist nur für kurze Zeit (z. B. 5 Minuten) gültig, um das Risiko von Abfang- und Replay-Angriffen zu minimieren.
  • Der SMS-Übertragungskanal verlässt sich auf Mobilfunknetze und ist anfällig für Abfangmaßnahmen durch SIM-Swapping-Angriffe oder andere Schwachstellen in der Telekommunikationsinfrastruktur.
  • Die E-Mail-basierten OTPs sind nur so sicher wie das E-Mail-Konto des Benutzers. Wenn das E-Mail-Konto kompromittiert ist, kann das OTP abgefangen werden.

Anwendungsfälle:

SMS- und E-Mail-OTPs werden häufig in verbraucherorientierten Anwendungen wie Online-Banking, E-Commerce und Social-Media-Plattformen eingesetzt. Sie sind nicht nur sicherer als statische Passwörter, sondern bieten auch eine bequeme Möglichkeit für Benutzer, sich zu authentifizieren, ohne sich komplexe Passwörter und Sicherheitsfragen merken zu müssen.

Da die meisten Benutzer ständig Zugriff auf ein Mobiltelefon oder ein E-Mail-Konto haben, sind SMS und E-Mail OTPs zu einer bevorzugten Wahl für die Benutzer-Authentifizierung, die Verifizierung der Eigentümerschaft einer E-Mail-Adresse oder Telefonnummer und die Passwortwiederherstellung geworden.

HMAC-basiertes OTP (HOTP)

HMAC-basiertes OTP, definiert in RFC 4226, ist ein zeitsynchronisierter OTP-Algorithmus, der eine Folge von Einmal-Codes basierend auf einem geheimen Schlüssel und einem Zählerwert generiert. Jedes OTP wird durch das Hashen des geheimen Schlüssels und des Zählerwerts mit einer kryptografischen Hash-Funktion (z. B. SHA-1, SHA-256) abgeleitet.

So funktioniert es:

  1. Geheimnis: HOTP erfordert einen geteilten geheimen Schlüssel zwischen dem Server und dem Client.

  2. Zähler: Der Server und der Client halten einen Zählerwert, der bei jeder OTP-Generierung inkrementiert wird.

  3. Der Client berechnet den HMAC-SHA1(oder andere Hash-Funktionen)-Hash des Zählerwerts (C) unter Verwendung des geteilten geheimen Schlüssels (K)

    • H = HMAC-SHA1(K, C)
  4. Der Hash-Wert wird auf einen 6- oder 8-stelligen Code verkürzt (abhängig von der Implementierung), um das OTP zu generieren.

    • OTP = Truncate(H) mod 10^d
  5. Der Server verfolgt den Zählerwert und überprüft das eingehende OTP, indem er den Hash-Wert unter Verwendung desselben Zählerwerts und des geheimen Schlüssels berechnet. (Wenn es eine leichte Abweichung gibt, kann der Server ein kleines Fenster von Zählerwerten zulassen, z. B. eine oder zwei Inkremente, um Synchronisationsprobleme zu berücksichtigen)

Sicherheitsmaßnahmen:

  • HOTP stellt sicher, dass jedes Passwort einzigartig und gültig ist, bis es verwendet wird, da der Zähler nach jeder erfolgreichen Authentifizierung inkrementiert wird.
  • Der geteilte geheime Schlüssel wird niemals über das Netzwerk übertragen, was das Risiko von Abfangmaßnahmen reduziert.
  • Der Zählerwert ist zwischen dem Server und dem Client synchronisiert, um Replay-Angriffen vorzubeugen.

Anwendungsfälle:

HOTP wird häufig in Hardware-Token und Altsystemen verwendet, bei denen Zeitbeschränkungen schwierig umzusetzen sein könnten. Für moderne Anwendungen wird TOTP aufgrund seiner zeitbasierten Natur und einfachen Implementierung häufiger verwendet.

Zeitbasiertes OTP (TOTP)

Zeitbasiertes OTP, definiert in RFC 6238, ist ein Algorithmus, der eine Folge von Einmal-Codes basierend auf der aktuellen Zeit und einem geteilten geheimen Schlüssel generiert. TOTP ist eine fortschrittlichere Erweiterung von HOTP, die einen Zeitstempel anstelle eines Zählerwerts verwendet, um OTPs zu generieren. Es verleiht den OTPs eine zeitbasierte Gültigkeit und macht sie sicherer als HOTP.

So funktioniert es:

  1. Geheimnis: Wie HOTP erfordert auch TOTP einen geteilten geheimen Schlüssel zwischen Server und Client.

  2. Zeitabschnitt: Der Hauptunterschied zwischen HOTP und TOTP besteht darin, dass TOTP einen zeitbasierten Abschnittswert (typischerweise 30 Sekunden) statt eines Zählerwerts verwendet.

  3. Der Client berechnet den HMAC-SHA1-Hash der aktuellen Zeit geteilt durch den Zeitabschnitt unter Verwendung des geteilten geheimen Schlüssels.

    • H(Time) = HMAC-SHA1(K, Time/TimeStep)
  4. Der Hash-Wert wird gekürzt, um einen 6- oder 8-stelligen Code zu generieren, um das OTP zu erstellen.

    • OTP(Time) = Truncate(H(Time)) mod 10^d
  5. Dynamisches OTP: Da die OTP-Generierung zeitbasiert ist, ändert sich das OTP alle 30 Sekunden und bietet ein höheres Maß an Sicherheit.

  6. Der Server überprüft das eingehende OTP durch die Berechnung des Hash-Wertes mit der aktuellen Zeit und dem geheimen Schlüssel. Solange das OTP innerhalb des gültigen Zeitfensters liegt, akzeptiert der Server die Authentifizierung.

Sicherheitsmaßnahmen:

  • Die Abhängigkeit von der Zeitsynchronisierung stellt sicher, dass ein OTP nur für kurze Zeit gültig ist, wodurch das Risiko von Abfangmaßnahmen oder Wiederverwendungen verringert wird.
  • Die zeitbasierte Natur von TOTP macht es sicherer als HOTP, da es weniger anfällig für Replay-Angriffe ist. Selbst wenn ein Angreifer ein zuvor verwendetes OTP erhält, wird es ungültig, sobald das Zeitfenster abläuft.
  • Wie bei HOTP wird der geteilte geheime Schlüssel niemals über das Netzwerk übertragen, was das Risiko von Abfangmaßnahmen reduziert.

Anwendungsfälle:

TOTP wird häufig in softwarebasierten Authentifikator-Apps wie Google Authenticator, Authy und Microsoft Authenticator verwendet. Diese Apps generieren zeitbasierte OTPs, mit denen sich Benutzer bei verschiedenen Online-Diensten authentifizieren können, einschließlich sozialer Medienplattformen, Cloud-Diensten und Finanzinstituten.

TOTP Authentifikator-Apps sind zur beliebtesten Form von OTP für MFA geworden, da sie ein Gleichgewicht zwischen Sicherheit und Benutzerfreundlichkeit bieten. Benutzer können OTPs auf ihren Mobilgeräten generieren, ohne auf SMS oder E-Mail-Zustellung angewiesen zu sein, was es zu einer sichereren und bequemeren Authentifizierungsmethode macht.

Vorteile von OTP

  1. Erhöhte Sicherheit

    • OTPs verringern die Risiken, die mit gestohlenen oder kompromittierten Passwörtern verbunden sind.
    • OTPs sind zeitkritisch und verfallen schnell, wodurch das Zeitfenster für Angreifer minimiert wird, sie abzufangen und erneut zu verwenden.
    • Seine Einmaligkeit macht es sicherer als statische Passwörter, da jedes OTP einzigartig ist und nicht erneut verwendet werden kann.
  2. Benutzerfreundlichkeit

    • OTPs sind einfach zu generieren und zu verwenden und erfordern nur minimalen Benutzereingriff.
    • Breite Unterstützung durch verschiedene Plattformen und Dienste, wie TOTP, erfordert minimale Einrichtung und kann eine breite Palette bestehender Authentifikator-Apps nutzen.
  3. Flexibilität

    • OTPs können über mehrere Kanäle bereitgestellt werden, einschließlich SMS, E-Mail und Authentifikator-Apps, was den Nutzern Flexibilität bietet, ihre bevorzugte Methode auszuwählen.
  4. Einhaltung von Vorschriften

    • OTPs sind konform mit Industriestandards und Vorschriften wie PCI DSS, GDPR und HIPAA, die starke Authentifizierungsmechanismen zum Schutz sensibler Daten erfordern.

Warum wird OTP gegenüber statischen Passwörtern bevorzugt?

OTP ist eine sichere und bequeme Authentifizierungsmethode, die zu einem wesentlichen Werkzeug in modernen Sicherheitspraktiken geworden ist. Durch die Bereitstellung eines einzigartigen, zeitempfindlichen Codes für jede Authentifizierungssitzung bieten OTPs ein höheres Sicherheitsniveau als herkömmliche statische Passwörter. Egal ob per SMS, E-Mail oder Authentifikator-Apps bereitgestellt, OTPs sind in verschiedenen Anwendungen weit verbreitet, um sensible Daten zu schützen und den Zugang zu Online-Diensten zu sichern. Da sich die Bedrohungslage weiterentwickelt, spielen OTPs weiterhin eine entscheidende Rolle bei der Sicherung von Benutzerkonten und der Verhinderung unbefugten Zugriffs auf persönliche und Unternehmensinformationen.