Wie funktioniert eine Zwei Faktor Authentifizierung (2FA)?

2 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Die 2FA Codes die man normalerweise kennt basieren auf OATH TOTP.

OATH hat mehrere Standards ausgearbeitet, TOTP sind Zeitbasierte Codes.

Gelöst ist das über HMAC. Im Prinzip ist HMAC nichts weiter als ein Standard Verfahren um aus einem geheimen Schlüssel und Parameter einen Hash zu bilden.

Bei TOTP haben Server und deine 2FA App den selben Schlüssel. Als Parameter wird der Zeitstempel genommen, auf z.B. 30s genau. Schlüssel + Zeitstempel ergeben den Hashwert, von dem der Einmalcode abgeleitet wird. Funktioniert, solange Server und App die ungefähr die gleiche Zeit haben und der Server schaut einfach, ob er auf das gleiche Ergebnis kommt.

Der Schlüssel und die Parameter wie viele Sekunden eine Zeitspanne sind usw. stehen am Anfang in dem QR Code. Deswegen kannst du bei TOTP theoretisch auch den Code beliebig oft Scannen, auch auf verschiedenen Handys.

Genaueres findest du über den Namen im Internet, das ist natürlich standardisiert wo das dann detailliert beschrieben wird.

Alternativ gibt es auch Varianten die mit einem Zähler statt der aktuellen Zeit arbeiten. Der Zähler wird bei jedem Passwort erhöht, ist aber seltener. Passkeys funktionieren anders, ohne ins Detail zu gehen sind passkeys grundsätzlich sicherer.

Dein Authenticator, sowie die Website die den code will, benutzen einen Algorithmus, der durch die gleiche Uhrzeit und den gleichen geheimen Schlüssel den gleichen Code ausrechnen.Der Schlüssel wird beim Einrichten des 2FA erstellt.

Und da das ganze nach Uhrzeit geht, braucht man kein Internet. Geht natürlich nur mit sowas, wenn du nur Uhrzeit als Synchronisationsfaktor brauchst.

Um diesen Code als Dritter zu generieren, bräuchtest du die genaue Uhrzeit, und den kleinen Schlüssel, und den hast du nicht.