it-swarm.com.de

Wie unterscheiden sich Einmalkennwortgeneratoren wie Google Authenticator von zwei Kennwörtern?

Google Authenticator verwendet den TOTP-Algorithmus , um Ihr Einmalkennwort (OTP) zu generieren. TOTP funktioniert folgendermaßen: Der Server generiert einen geheimen Schlüssel und teilt ihn mit dem Client (Ihnen), wenn sich der Client beim Server registriert. Mit dem gemeinsam genutzten Schlüssel und dem aktuellen Zeitstempel wird alle 30 Sekunden ein neues Passwort generiert.

Wenn jemand über den gemeinsam genutzten Schlüssel verfügt, kann er das OTP mithilfe des TOTP-Algorithmus selbst generieren. Ist das nicht ähnlich wie ein Passwort? Wird es nicht auf zwei Passwörter reduziert - eines ist das Passwort, mit dem Sie sich anmelden, und das andere ist der gemeinsame Schlüssel zwischen Ihnen und dem Server?

62
Ashwin

Passwörter werden jedes Mal angezeigt, wenn Sie sie verwenden: Wenn Sie zwei Passwörter haben und diese in ein betrügerisches Webformular eingeben, werden beide gestohlen.

Das gemeinsame Geheimnis kann nicht aus einem einzelnen OTP (oder sogar aus einem Satz von ihnen **) berechnet werden, sodass ein gestohlenes OTP nur für eine begrenzte Zeit gültig ist. Das gemeinsame Geheimnis wird während der Authentifizierung niemals übertragen, daher erfordert das Stehlen einen anderen Angriffsvektor: Zugriff auf das Gerät, auf dem es aufbewahrt wird, oder Kopieren (z. B. seinen QR-Code) während der Initialisierung.

** Das Rückwärtsrechnen gemeinsamer Geheimnisse wäre sehr unpraktisch, da es sich um einen Einwegalgorithmus handelt. Außerdem beträgt die minimale Schlüssellänge 128 Bit und der Algorithmus erzeugt nur 6 Zahlen, d. H. ~ 20 Bit OTP. Dies bedeutet, dass es für jedes OTP Ozeane potenzieller gemeinsamer Geheimnisse geben würde, und dass es nur mit brutaler Gewalt möglich wäre, auch nur eine einzige Übereinstimmung zu finden, d. H. Alle 30 Sekunden 2 ^ 128 Hashes zu berechnen und jedes nicht übereinstimmende OTP auszuschließen.

99
Esa Jokinen