One-Time Password (OTP)

Als One-Time Password (OTP), zu Deutsch Einmal-Passwort oder Einmal-Kennwort, bezeichnet man ein Passwort, das aus einer zufällig generierten Zeichenfolge besteht und nur für einen bestimmten Zeitraum und nur für eine einzelne Anmeldung/Transaktion verwendet werden kann.

Sehr häufig wird ein One-Time Password dabei in Verbindung mit einem üblichen Passwort als zusätzliche Sicherheitsmaßnahme in der Multi-Faktor-Authentifizierung (MFA) auch bekannt unter Zwei-Faktor-Authentifizierung (2FA) verwendet. Der User meldet sich hierbei zuerst mit seinem Benutzernamen bzw. seiner Mailadresse und dem von ihm festgelegten Passwort an. Im nächsten Schritt wird dann das One-Time Password verwendet und dient so als zusätzliche Sicherheitsstufe.

Wichtig ist, dass das Einmal-Passwort nur dem Benutzer und dem System (für das der Code gilt), bekannt ist. Nachfolgend die beiden Methoden wie ein OTP erstellt werden kann.

  • Erstellung eines OTP auf der Dienstleister/Server Seite: Ein separater Dienstleister oder Server erstellt hierbei ein Einmal-Passwort und schickt es über einen vorher definierten Weg direkt an den Benutzer. Dies kann zum Beispiel ein Code oder Magic Link sein der per SMS/E-Mail an eine zuvor verifizierte Mobilfunknummer/E-Mail-Adresse gesendet wird. Oder aber auch ein Schreiben, das an eine zuvor verifizierte postalische Anschrift gesendet wird und ein Einmal-Passwort bzw. eine Liste mit mehreren Einmal-Passwörtern (Beispiel TAN-Liste) enthält. Der Nachteil bei dieser Methode ist, dass Briefe, E-Mails oder SMS von Dritten abgefangen, der Inhalt gelesen und für bösartige Zwecke verwendet werden kann. Somit ist das nicht die sicherste Form der Passwortübermittlung.

  • Erstellung eines OTP auf der Benutzer/Client Seite: Die immer häufiger genutzte und sichere Methode ist die Generierung eines Passwortes durch einen OTP-Generator. Entweder durch eine Authenticator App oder durch eine separate Hardware (OTP-Token) meist in Form eines Schlüsselanhängers. Die Abstimmung zwischen Client und Server erfolgt hierbei nur einmal zum Abgleich des verwendeten Algorithmus (bei Einrichtung der Software/Hardware). Bei jeder weiteren Kommunikation dient der Server nur noch als Empfänger (anders als bei der vorherigen Methode). Das bedeutet, der Client generiert mithilfe des vorher festgelegten Algorithmus ein Einmal-Passwort und schickt es verschlüsselt an den Server. Dieser kennt den Algorithmus und die verwendete Verschlüsselung und kann im Ergebnis prüfen, ob die Daten übereinstimmen.

Wir von Engity sind der Meinung man sollte immer dann ein One-Time Password verwenden, wenn es um wichtige und sensible Daten geht wie zum Beispiel beim Thema Online Banking.