Eine Authenticator-App kann einen Code erzeugen, ohne eine Nachricht zu empfangen. Ein per SMS gesendeter Bestätigungscode kommt stattdessen über einen Zustellkanal an, daher unterscheiden sich Einrichtung und Fehlerbehandlung.
Was bedeutet jeder Begriff?
OTP beschreibt einen Code, der einmal akzeptiert wird. HOTP und TOTP beschreiben Algorithmen zur Erzeugung dieses Codes.
| Begriff | Was den Code liefert | Was der Nutzer benötigt |
|---|---|---|
| OTP | Die allgemeine Kategorie, unabhängig vom Erzeugungsverfahren | Abhängig vom gewählten Verfahren |
| HOTP | Ein geteiltes Geheimnis und ein fortlaufender Zähler | Ein registriertes Token oder eine Anwendung |
| TOTP | Ein geteiltes Geheimnis und das aktuelle Zeitintervall | Ein registrierter Authenticator mit funktionierender Uhr |
RFC 4226 definiert das geteilte Geheimnis und den Zähler von HOTP. RFC 6238 verwendet für TOTP die Zeit anstelle dieses Zählers.
Der Authenticator und der Verifizierer benötigen dasselbe Geheimnis, um übereinstimmende Codes zu berechnen. Schützen Sie dieses Geheimnis bei der Registrierung und Speicherung, da sein Besitz die Codeerzeugung ermöglicht.
Wie ändert HOTP seinen Code?
Das Token erhöht einen Zähler, wenn es einen Code erzeugt. Der Verifizierer erhöht seinen entsprechenden Zustand nach Annahme des erwarteten Codes.
Ein HOTP-Code verfällt nicht allein durch Zeitablauf. Das Erzeugen von Codes ohne deren Übermittlung kann das Token dem Verifizierer vorausbringen.
Stellen Sie die von der Spezifikation von HOTP geforderte Zähler-Resynchronisierung bereit. Begrenzen Sie die Suche nach späteren Zählerwerten, da die Annahme weiterer Kandidaten die Ratemöglichkeit erhöht.
Beschränken Sie fehlgeschlagene Authentifizierungsversuche während dieses Vorgangs. Die Resynchronisierung darf kein Einfallstor für unbegrenzte Rateversuche werden.
Wie ändert TOTP seinen Code?
TOTP erzeugt einen Code aus dem geteilten Geheimnis und dem aktuellen Zeitintervall, auch wenn niemand einen neuen Code anfordert.
RFC 6238 empfiehlt einen 30-Sekunden-Zeitschritt. Der angezeigte Code wechselt, wenn die Uhr ins nächste Intervall übergeht.
Ein Code, der nahe dem Ende eines Intervalls eingegeben wird, kann den Verifizierer im folgenden Intervall erreichen. Erlauben Sie eine begrenzte Verzögerung, damit normales Eingabetiming keine unnötigen Fehler verursacht.
Der RFC empfiehlt höchstens einen Schritt für Netzwerkverzögerung. Diese Empfehlung betrifft die Übertragungsverzögerung; sie ist kein universelles Limit für jede Uhr-Resynchronisierung.
Halten Sie die Uhren von Gerät und Server synchron. Ein breites Akzeptanzfenster toleriert mehr Abweichung. Es akzeptiert aber auch mehr Codekandidaten.
Lehnen Sie einen bereits akzeptierten Code ab, auch innerhalb seines Zeitintervalls. Der spätere Uhrenwechsel erzwingt allein keine Einmalverwendung.
Ist ein per Bird gesendeter Bestätigungscode ein TOTP?
Nein. Bird Verify erzeugt einen zufälligen Bestätigungscode und stellt ihn über den gewählten Kanal zu.
Der Empfänger registriert kein geteiltes Authenticator-Geheimnis, um diesen Code zu erhalten. Seine Gültigkeit folgt der Ablaufzeit und der Versuchsrichtlinie der Verifizierung, nicht dem Zähler oder Zeitintervall eines Authenticators.
Wählen Sie Codelänge, Ablaufzeit und Versuchslimit für den Verifizierungsablauf. Messen Sie die Zustell- und Abschlussintervalle, wenn Empfänger Verzögerungen melden.
HOTP und TOTP erzeugen Codes nach der Registrierung lokal, sodass sie bei der Anmeldung nicht auf eine Nachricht warten. Ihre Wiederherstellung muss stattdessen den Verlust eines Authenticators oder geteilten Geheimnisses berücksichtigen.
Welche Methode sollte ich wählen?
- Verwenden Sie einen zugestellten Bestätigungscode, wenn der Ablauf den Zugang zu einer erreichbaren Nummer oder Adresse verifizieren muss.
- Verwenden Sie TOTP, wenn Nutzer einen Authenticator mit zuverlässiger Uhr registrieren und behalten können.
- Verwenden Sie HOTP, wenn das Token sich nicht auf die Zeit verlassen kann und Sie die Zählersynchronisierung aufrechterhalten können.
- Begrenzen Sie bei jeder Methode die Rateversuche, erzwingen Sie die Einmalverwendung und definieren Sie die Kontowiederherstellung vor dem Start.
In short
OTP ist die Kategorie.
HOTP und TOTP sind Verfahren zur Erzeugung von Einmalcodes. Ein Server kann auch einen zufälligen Bestätigungscode erzeugen und zustellen.
HOTP folgt einem Zähler.
Das Erzeugen ungenutzter Codes kann das Gerät dem Verifizierer vorausbringen. Stellen Sie einen begrenzten Weg zur Resynchronisierung bereit.
TOTP folgt der Uhr.
Der empfohlene Zeitschritt beträgt 30 Sekunden. Berücksichtigen Sie die Eingabeverzögerung, ohne das Akzeptanzfenster unnötig weit zu machen.
Wählen Sie das Registrierungs- und Wiederherstellungsmodell.
Authenticator-Codes erfordern ein zuvor geteiltes Geheimnis. Zugestellte Codes erfordern einen funktionierenden Zustellkanal.