Google Authenticator unterschied zeitbasiert und zählerbasiert?
Was bedeutet zeitbasiert und zählerbasiert bei den Codes?
1 Antwort
Zeitbasiert: Geheimnis + Uhrzeit = Code (TOTP)
Zählerbasiert: Geheimnis + interner Zähler = Code (HOTP)
Der Server muss dann auch den Wert des Zählers speichern, der wird nach jedem Login erhöht. In Klammern die Protokollabkürzungen, die findest du auch in Wikipedia.
Beim Zähler hast du das Problem wenn du Code 1 und 2 hast kannst du Code 3 berechnen, sollte es dazu kommen und ist halt "einfacher zu erraten" als ein Code der sich alle 30sec anhand der Zeit ändert.
Nein, das ist ne krypographische Hashfunktion, du kannst vom Code nicht auf das interne Geheimnis zurückrechnen.
Genau findest du das im RFC https://datatracker.ietf.org/doc/html/rfc6238 , im Prinzip wird die Uhrzeit/der Zähler zusammen mittels einer sicheren Hashfunktion wie SHA-2 in einen Code umgewandelt.
Wichtigstes Element ist das interne Geheimnis, was beim Einrichten des Authentifikator per QR Code übertragen wird. Jeder, der diesen Einrichtungs-Code besitzt, kann gültige OTP-Codes erzeugen. Daher sollte man sich auch überlegen, ob man Google verwendet (der den Kram ggf. in der Cloud sichert) oder lieber FreeOTP o.Ä. (es gibt she viele Apps), die dieses Geheimnis nicht exportieren können sondern nur im sicheren Speicher des Handy ablegen.
Aus den OTP-Codes selbst kann man nicht auf die das Geheimnis, die Uhrzeit oder den Zähler zurückrechnen, da das eben eine Einwegfunktion ist, die nicht umkehrbar ist. Werfe mal Hashfunktion uder direkt SHA-2 in Wikipedia. Der wirft also Geheimnis und Uhrzeit in die Hashfunktion und bekommt einen OTP-Code. Der Server macht das Gleiche und vergleicht dann den eingegebenen Code.
HOPT verstehe ich nicht.