Контекст

Как приложение для кодов входа работает без интернета

Подтверждено: объяснение основано на установленных данных.

При настройке аутентификатора сайт передает приложению секретный ключ, обычно через QR-код. Затем приложение и сервер независимо вычисляют одноразовые коды из этого ключа и текущего времени. В распространенной схеме код состоит из шести цифр и меняется каждые 30 секунд. Для самого вычисления телефону не нужен интернет.

Коротко

Шесть цифр вычисляются на вашем телефоне из времени, а не присылаются на него.

Самое интересное

Часы телефона и сервера могут немного расходиться. Поэтому сервер обычно допускает небольшое отклонение, например принимает код из предыдущего 30-секундного интервала. Алгоритм TOTP стандартизировали в 2011 году.

Ещё одна деталь

30-секундное окно — сознательный компромисс. Более короткое было бы надёжнее, но людям нужно время, чтобы прочесть код и ввести его до смены.

Подробнее

  • Шаги времени отсчитываются от эпохи Unix — полуночи UTC 1 января 1970 года.
  • Если часы телефона сильно сбиты, коды перестают работать.
  • QR-код, который вы сканируете при настройке, содержит сам секретный ключ.

Источник: IETF RFC 6238: TOTP, Time-Based One-Time Password Algorithm

Показать на карте знаний

Связанные факты