oathtool stimmt niemals mit Google Authenticator überein

1441
jar

Ich benutze Google Authenticator derzeit für 2FA, z. B. das Herstellen einer Verbindung zu VPN usw. Ich wollte herausfinden, ob ich den sechsstelligen Code meiner OSX-Box erhalten könnte, aber aus irgendeinem Grund oathtoolniemals den gleichen Wert wie Authenticator zurückgibt. Und der Authenticator-Code funktioniert, der oathtooleine nicht.

Interessanterweise habe ich auch einen iOS-Simulator mit https://github.com/mattrubin/Authenticator auf demselben System ausprobiert und der Code stimmt mit dem oathtoolAuthenticator überein, nicht mit Authenticator.

Ich hatte den Verdacht, dass es sich hierbei um ein Zeitsynchronisierungsproblem handelt, aber nachdem ich meine OSX-Zeit manuell synchronisiert habe, ist der Code derselbe. Ich frage mich, ob es vielleicht im TOTP-Algorithmus Standardparameter gibt, die nicht übereinstimmen, aber ich weiß nicht, was sie sind.

Der oathtoolBefehl gibt etwa Folgendes aus

% oathtool --verbose --base32 --totp "$SECRET" Hex secret: ... Base32 secret: ... Digits: 6 Window size: 0 Step size (seconds): 30 Start time: 1970-01-01 00:00:00 UTC (0) Current time: 2016-10-20 22:27:22 UTC (1477002442) Counter: 0x2EF3E06 (49233414) 

(Beachten Sie, dass $SECREToben derselbe Wert verwendet wurde, der zum Generieren des QR-Codes verwendet wird, den Authenticator verwendet.)

Gibt es einen Grund, warum diese nicht übereinstimmen würden?

Aktualisieren

Ich habe versucht, mit der Zeit von 30 Sekunden auf beiden Seiten der Systemzeit zu arbeiten

oathtool --now "$(perl -e'use DateTime; print DateTime->now()->subtract(seconds=>30)->strftime( "%Y-%m-%d %H:%M:%S %Z" )')" -b --totp $SECRET -w 20|sort 

Das obige Perl erzeugt Zeit im Format von

2016-10-20 23:36:15 UTC 

Ich habe auch jedes Mal 20 Zahlen ausgegeben, aber keine davon schien mit der in Authenticator übereinstimmen.

3
Ich gehe davon aus, dass Sie einen Google Authenticator auf einem Telefon verwenden. TOTP funktioniert im Wesentlichen durch die Angabe der aktuellen Uhrzeit (speziell von Google im Fall eines Google Authenticators) und Ihres Geheimcodes. Es gibt noch andere Sachen, eine vollständige Erklärung von TOTP, bleibt am besten einer anderen Frage überlassen. Stimmt Ihre Systemzeit und die Zeitquelle von Google mit der UTC-Zeit überein? Erhöhen Sie die Anzahl der von Ihnen generierten Codes und ändern Sie die aktuelle Uhrzeit manuell um 30 Sekunden vor und nach der aktuellen Uhrzeit, und veröffentlichen Sie die Werte. Ramhound vor 8 Jahren 0
Richtig, Authenticator läuft von einem Telefon aus. ok, ich gebe das mal, danke jar vor 8 Jahren 0
Wenn Sie Zugriff auf ein Programm wie VMWare haben, laden Sie eine Windows-Test-VM und verwenden Sie WinAuth. Sehen Sie, ob das stimmt. Bist du sicher, dass das Geheimnis richtig ist? Ramhound vor 8 Jahren 0
Beachten Sie, dass Google Authenticator die Option "Synchronisierungszeit mit Google" hat. Versuchen Sie das, nur für den Fall. Abgesehen davon unterstützt die Google-App zwar nichts, aber die Standardeinstellungen: 6 Ziffern, 30s-Schritt. grawity vor 8 Jahren 0
Nun, danke Ramhound für deine Gedanken und es tut mir leid, dass du deine Zeit verschwendest ... Dies stellt sich als _pebkac_-Problem heraus, heh. Das ** Geheimnis war falsch **, ich hatte auf die falsche Chart- / Geheim- / QR-URL verwiesen. Ich hatte vergessen, dass meine Creds zurückgesetzt wurden. Ich habe das richtige Geheimnis eingeschlagen und alles ist gut. jar vor 8 Jahren 0

0 Antworten auf die Frage