2FASync
TOTP — пароль, зависящий от времени
TOTP означает Time-based One-Time Password. Это стандарт, при котором приложение и сайт получают совпадающие значения из заранее согласованного секрета и текущего временного интервала.
Обычно код живёт недолго
Распространённая схема использует шесть цифр и обновляет их через 30 секунд. Однако конкретный сервис может задавать другой допустимый период и разрядность. Цифры из предыдущего интервала могут перестать подходить сразу после смены окна проверки.
Секрет важнее показанного числа
Одноразовый код скоро устаревает. Полный секрет из QR-настройки или адреса otpauth:// позволяет получать следующие коды, поэтому его нельзя размещать в открытых заметках или сообщениях поддержки.
Второй фактор полезен, но не всесилен
TOTP добавляет препятствие злоумышленнику, который узнал только пароль. При этом поддельная форма входа способна переслать действующий код настоящему сервису немедленно; не вводите коды на подозрительных страницах.
Что происходит в пределах одного временного окна
Для типичного тридцатисекундного профиля часы показывают текущий отрезок времени, из которого вместе с общим секретом получается код. Сайт и приложение могут вычислить его независимо, если знают одинаковые параметры. После перехода к следующему отрезку результат изменится. Некоторые сервисы допускают небольшое расхождение часов, но правила проверки принадлежат самому сервису, а не генератору 2FASync.
Код на экране отличается от ключа, полученного при настройке. Даже множество старых шестизначных значений не заменяет безопасно сохранённый оригинальный секрет или аварийные коды провайдера. При утрате телефона выясните заранее, какие запасные способы входа предусмотрены в вашей почте, рабочем сервисе или облачной панели. И не путайте TOTP с короткими кодами, которые вам присылают по SMS.
Почему код у меня и на сайте должен совпадать?
Обе стороны знают общий секрет и используют совместимые параметры алгоритма и времени. Сильно неверные часы нарушают это совпадение.
