Присяга никогда не соглашается с Google Authenticator

1342
jar

В настоящее время я использую Google Authenticator для 2FA, например, для подключения к VPN и т. Д. Я хотел посмотреть, смогу ли я получить шестизначный код на моем компьютере с OSX, но по какой-то причине oathtoolникогда не возвращает то же значение, что и Authenticator. И код Аутентификатора работает, а oathtoolодин - нет.

Интересно, что я также пробовал в симуляторе iOS с https://github.com/mattrubin/Authenticator в той же системе, и код, который он производит, соответствует, oathtoolа не Authenticator.

Я подозревал, что, возможно, это проблема синхронизации времени, но после ручной синхронизации времени OSX код остается прежним. Мне интересно, могут ли быть параметры по умолчанию в алгоритме TOTP, которые не совпадают, но я не знаю, какими они будут.

Команда oathtoolвыводит что-то вроде следующего

% 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) 

(Обратите внимание, что $SECRETвыше приведено то же значение, которое использовалось для генерации QR-кода, используемого Authenticator.)

Любая причина, почему они не согласятся?

Обновить

Я попытался поиграть со временем 30 секунд по обе стороны от времени моей системы, используя

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 

Perl выше генерирует время в формате

2016-10-20 23:36:15 UTC 

Я также выводил 20 номеров каждый раз, но ни одно из них не соответствовало тому, что есть в Authenticator.

3
Я предполагаю, что вы используете Google Authenticator на телефоне? TOTP в основном работает, предоставляя текущее время (от Google, в частности, для Google Authenticator) и ваш секретный код. Есть и другие вещи, полное объяснение TOTP, лучше оставить другой вопрос. Согласуются ли ваше системное время и источник времени от Google с временем UTC? Попробуйте увеличить количество генерируемых вами кодов и вручную изменить текущее время на 30 секунд до и после фактического текущего времени и опубликовать результаты. Ramhound 8 лет назад 0
Аутентификатор работает с телефона. хорошо, я сделаю это, спасибо jar 8 лет назад 0
Если у вас есть доступ к такой программе, как VMWare, загрузите пробную виртуальную машину Windows и используйте WinAuth. Посмотрим, согласится ли это. Вы уверены, что секрет верен? Ramhound 8 лет назад 0
Обратите внимание, что Google Authenticator имеет опцию «время синхронизации с Google». Попробуйте, на всякий случай. Но кроме этого, приложение Google на самом деле ничего не поддерживает, но по умолчанию: 6 цифр, шаг 30 с. grawity 8 лет назад 0
хорошо, спасибо Ramhound за ваши мысли, и извините, что потратил ваше время ... это оказывается проблемой _pebkac_, хе. ** секрет был неверным **, я ссылался на неправильный URL-адрес диаграммы / секрета / QR. Я забыл о восстановлении моих кредитов, которые произошли. Я ударил в правильном секрете, и все хорошо. jar 8 лет назад 0

0 ответов на вопрос