Найти в Дзене
Игорь Бедеров

Time-based One-Time Password (TOTP) — это стандарт (RFC 6238), который работает на чистой математике и времени

Как это работает? При настройке сервер и ваше приложение обмениваются секретным ключом (через QR-код). Этот ключ и текущее время (округлённое до 30-секундных интервалов) обрабатываются алгоритмом HMAC-SHA1. На выходе — те самые 6 цифр. И сервер, и ваш телефон производят расчёты независимо, им не нужно общаться. Нужны лишь общий секрет и точное время. Интернет не нужен. Вы в самолёте, в лесу, в бункере — код генерируется локально. Полная приватность. Хорошее TOTP-приложение ничего никуда не шлёт. Оно не знает ваш номер, IP или контакты. Это просто «молотилка» чисел на вашем устройстве. И нет риска перехвата «в пути». Код не летит по сотовым сетям, его нельзя перехватить через SS7. Главная слабость TOTP — зависимость от точного времени. Проблема: Если часы на телефоне и сервере рассинхронизируются, коды перестанут совпадать. Но есть и более серьёзная угроза — компрометация секретного ключа. Если злоумышленник получит тот самый Shared Secret (из QR-кода), ваша защита рухнет. Обычно така

Time-based One-Time Password (TOTP) — это стандарт (RFC 6238), который работает на чистой математике и времени. Как это работает? При настройке сервер и ваше приложение обмениваются секретным ключом (через QR-код). Этот ключ и текущее время (округлённое до 30-секундных интервалов) обрабатываются алгоритмом HMAC-SHA1. На выходе — те самые 6 цифр. И сервер, и ваш телефон производят расчёты независимо, им не нужно общаться. Нужны лишь общий секрет и точное время.

Интернет не нужен. Вы в самолёте, в лесу, в бункере — код генерируется локально. Полная приватность. Хорошее TOTP-приложение ничего никуда не шлёт. Оно не знает ваш номер, IP или контакты. Это просто «молотилка» чисел на вашем устройстве. И нет риска перехвата «в пути». Код не летит по сотовым сетям, его нельзя перехватить через SS7.

Главная слабость TOTP — зависимость от точного времени. Проблема: Если часы на телефоне и сервере рассинхронизируются, коды перестанут совпадать. Но есть и более серьёзная угроза — компрометация секретного ключа. Если злоумышленник получит тот самый Shared Secret (из QR-кода), ваша защита рухнет. Обычно такая атака происходит через фишинг или утечку скринштов. Следовательно, никогда не храните QR-коды и текстовые секреты в галерее или непроверенном облаке. Лучше — сразу записать на бумагу и убрать в сейф. При малейшем подозрении на утечку — немедленно перевыпускайте 2FA в настройках сервиса.

Подпишись на @ibederov