Архив рубрики ~Лента новостей~

Как Google Authenticator работает без интернета?

Как Google Authenticator работает без интернета?
Как Google Authenticator работает без интернета?

Как Google Authenticator работает без интернета?

Google Authenticator показывает правильный код даже в авиарежиме. Но как это возможно, если код постоянно обновляется? В статье раскрываем магию такой технологии.

Кто присылает коды, если связи нет?

Отключите Wi-Fi, выньте SIM-карту — Google Authenticator продолжит показывать новые коды. Причём сайт их примет. На первый взгляд странно: приложение не может связаться с сервером, но каким-то образом знает правильный ответ.

Секрет в том, что никто не присылает эти коды на телефон. Приложение вычисляет их самостоятельно. Сервер в этот момент делает ровно то же самое.

Получаются два независимых калькулятора. Они находятся в разных местах, не общаются друг с другом, но имеют одинаковые исходные данные. Поэтому и результат у них совпадает.

Всё начинается с QR-кода

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

После сканирования копия ключа появляется в приложении. Другая копия остаётся у сервера. Дальше этот секрет не нужно передавать при каждом входе: обе стороны уже его знают.

Поэтому QR-код нельзя считать безобидной картинкой из настроек. Если его сфотографирует посторонний человек, он сможет добавить тот же аккаунт в свой аутентификатор и получать такие же коды.

Второй ингредиент — точное время

Одного секретного ключа недостаточно, иначе приложение всегда показывало бы одно и то же число. Чтобы код менялся, в расчёт добавляется текущее время.

Обычно оно делится на интервалы по 30 секунд. Для каждого интервала из секретного ключа и номера временного отрезка вычисляется новое значение. Упрощённо логику можно представить так:

const timeWindow = Math.floor(Date.now() / 1000 / 30); const code = generateCode(secretKey, timeWindow);

Это не готовая реализация, а схема. Внутри используется криптографическая функция HMAC, после которой результат сокращается до удобного шестизначного кода. Алгоритм называется TOTP — Time-based One-Time Password.

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

Почему код иногда не принимается?

У этой красивой схемы есть слабое место: часы телефона и сервера должны показывать примерно одинаковое время. Если смартфон заметно спешит или отстаёт, стороны попадут в разные 30-секундные интервалы и получат разные коды.

Серверы обычно допускают небольшой разброс и могут проверить соседний временной интервал. Но превращать минутную погрешность в часовую никто не станет — слишком широкое окно облегчило бы подбор кода.

Как Google Authenticator работает без интернета?

Поэтому при неожиданной ошибке Authenticator первым делом стоит проверить автоматическую настройку даты и времени. Часовой пояс сам по себе не так важен: расчёт опирается на Unix-время. Важны именно правильно идущие системные часы.

А как же синхронизация через аккаунт Google?

Современный Google Authenticator умеет синхронизировать сохранённые записи между устройствами. Для этого интернет, конечно, нужен. Но синхронизация и генерация кодов — разные процессы.

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

Одноразовый код не всегда одноразовый

Название немного обманывает. В пределах одного 30-секундного интервала приложение будет показывать одинаковое число, сколько бы раз мы его ни открывали. Одноразовым код становится благодаря серверу: после успешного входа тот может запретить повторное использование.

И всё же TOTP не защищает от любой атаки. Поддельный сайт способен попросить пароль и актуальный код, а затем немедленно передать их настоящему сервису. Поэтому для особо важных аккаунтов аппаратные ключи и passkeys обычно надёжнее.

Но сам механизм Google Authenticator мне нравится именно своей простотой. Никакого скрытого канала связи и постоянных запросов к Google. Есть общий секрет, часы и понятная математика. Иногда технология выглядит почти магической лишь потому, что обе стороны умеют молча договориться заранее.

Источник

Оцените материал:

Поделиться
Понравилась статья? Расскажите другим
ВКонтакте
Читайте также
Новости робототехники БИОЛОГ: НЕУМЕРЕННОЕ ИСПОЛЬЗОВАНИЕ ГАДЖЕТОВ НЕОБРАТИМО МЕНЯЕТ ЛИЧНОСТЬ РЕБЁНКА Новости робототехники Искусственный интеллект в БПЛА: преимущества и риски Новости робототехники Новая система искусственного интеллекта поможет машинам более детально понимать трехмерное пространство. Новости робототехники Ростех показал кобота с «умным» зрением Новости робототехники ДНК-роботы могли бы доставлять лекарства и выслеживать вирусы внутри вашего тела. Новости робототехники Человекоподобные роботы, играющие в футбол, забили важный гол в области робототехники, продемонстрировав высокую координацию движений. Новости робототехники Специалист по робототехнике утверждает, что безопасность человекоподобных роботов должна быть первостепенной задачей. Новости робототехники Приводимый в движение мышечными клетками, тончайший, как бумага, робот плывет по водному лабиринту. Архив рубрики ~Коротко из Telegram~ Поселил ИИ‑агента в чёлку макбука: он слушает мой день и… Архив рубрики ~Коротко из Telegram~ Немой парень впервые признался в любви СИЛОЙ МЫСЛИ — его………… Новости робототехники GM делает ставку на вычислительные технологии и искусственный интеллект, которые, по её мнению, помогут ей конкурировать с китайскими автопроизводителями. Архив рубрики ~Коротко из Telegram~ В легендарный Need for Speed: Underground 2 теперь можно поиграть… Архив рубрики ~Коротко из Telegram~ ИИ придумал пистолет, и его напечатали на 3D-принтере Однозарядный пистолет… Архив рубрики ~Коротко из Telegram~ В Швейцарии с помощью бактерий разработали печатный материал, похожий на бетон Новости робототехники БИОЛОГ: НЕУМЕРЕННОЕ ИСПОЛЬЗОВАНИЕ ГАДЖЕТОВ НЕОБРАТИМО МЕНЯЕТ ЛИЧНОСТЬ РЕБЁНКА Новости робототехники Искусственный интеллект в БПЛА: преимущества и риски Новости робототехники Новая система искусственного интеллекта поможет машинам более детально понимать трехмерное пространство. Новости робототехники Ростех показал кобота с «умным» зрением Новости робототехники ДНК-роботы могли бы доставлять лекарства и выслеживать вирусы внутри вашего тела. Новости робототехники Человекоподобные роботы, играющие в футбол, забили важный гол в области робототехники, продемонстрировав высокую координацию движений. Новости робототехники Специалист по робототехнике утверждает, что безопасность человекоподобных роботов должна быть первостепенной задачей. Новости робототехники Приводимый в движение мышечными клетками, тончайший, как бумага, робот плывет по водному лабиринту. Архив рубрики ~Коротко из Telegram~ Поселил ИИ‑агента в чёлку макбука: он слушает мой день и… Архив рубрики ~Коротко из Telegram~ Немой парень впервые признался в любви СИЛОЙ МЫСЛИ — его………… Новости робототехники GM делает ставку на вычислительные технологии и искусственный интеллект, которые, по её мнению, помогут ей конкурировать с китайскими автопроизводителями. Архив рубрики ~Коротко из Telegram~ В легендарный Need for Speed: Underground 2 теперь можно поиграть… Архив рубрики ~Коротко из Telegram~ ИИ придумал пистолет, и его напечатали на 3D-принтере Однозарядный пистолет… Архив рубрики ~Коротко из Telegram~ В Швейцарии с помощью бактерий разработали печатный материал, похожий на бетон

Оставить комментарий