ВаняБОТ Журнал Личный кабинет
Инструкции

Как работают приложения-аутентификаторы

Шестизначный код, который меняется каждые полминуты, выглядит магией. На деле там простая арифметика, и понимание её помогает не потерять доступ к аккаунтам.

Когда вы включаете двухфакторную аутентификацию через приложение, сайт показывает QR-код. Внутри него — секретная строка. Приложение её запоминает, и с этого момента и сайт, и приложение знают один и тот же секрет.

Откуда берётся код

Приложение берёт две вещи: сохранённый секрет и текущее время, округлённое до тридцатисекундного интервала. Пропускает их через математическую функцию и получает шесть цифр. Сайт в этот же момент делает ровно то же самое со своей копией секрета — и ждёт от вас такое же число.

Отсюда несколько важных следствий.

Интернет не нужен. Приложение ничего не запрашивает и никуда не отправляет. Код посчитается в самолёте и в метро.

Время должно быть точным. Если часы телефона сбились на минуту, коды перестанут подходить. Лечится включением автоматической синхронизации времени.

Секрет нельзя подсмотреть по коду. Функция работает только в одну сторону: из секрета получаются цифры, из цифр секрет не восстановить.

Почему QR-код нельзя никому показывать

В QR-коде при настройке лежит сам секрет. Кто его сфотографировал, тот может завести себе точно такой же генератор и получать ваши коды бесконечно. Скриншот этого экрана не стоит хранить в галерее и тем более отправлять кому-либо — это равносильно второму ключу от квартиры.

Главная проблема: смена телефона

Секреты лежат в приложении на конкретном устройстве. Утонул телефон — пропали все коды. Сайты при этом работают исправно и исправно требуют код, которого у вас больше нет.

Есть два способа подстраховаться, и лучше использовать оба.

Резервные коды. При включении второго фактора сайт показывает список одноразовых кодов. Каждый срабатывает один раз и выручает ровно в такой ситуации. Их надо сохранить сразу — потом эта страница не вернётся.

Приложение с синхронизацией. Многие аутентификаторы умеют хранить зашифрованную копию секретов в облаке. Это немного снижает безопасность (появляется ещё одно место, где лежит секрет) и сильно повышает шансы не потерять доступ. Для большинства людей обмен выгодный.

Если телефон всё-таки потерян

  1. Используйте резервные коды, если сохранили.
  2. Если нет — у большинства сервисов есть процедура восстановления через почту или поддержку. Она долгая и может занять дни.
  3. Войдя, сразу отключите старый второй фактор и настройте новый на новом телефоне.
  4. Заодно проверьте список активных сессий и завершите незнакомые.

Один совет напоследок

Не держите аутентификатор и менеджер паролей за одним и тем же разблокированным экраном без необходимости. Смысл второго фактора в том, что он отдельный; если и пароль, и код достаются из одного приложения на одном устройстве, факторов фактически остаётся полтора.