TOTP
TOTP (Time-based One-Time Password) - алгоритм генерации одноразовых паролей, основанный на временном факторе, при котором код меняется каждые 30 секунд и синхронизируется между сервером и клиентским приложением-аутентификатором (Google Authenticator, Яндекс Ключ, Microsoft Authenticator), обеспечивая двухфакторную аутентификацию без необходимости отправки SMS или push-уведомлений.
В интернет-маркетинге TOTP используется для защиты критических систем, работающих с клиентскими данными: CRM, рекламных кабинетов (Яндекс Директ, Google Ads), платёжных систем и корпоративной почты. Например, маркетолог включает двухфакторную аутентификацию в аккаунте Google, сканирует QR-код в приложении Google Authenticator и при каждом входе вводит пароль и 6-значный код из приложения, который меняется каждые 30 секунд - даже если злоумышленник узнал пароль, без доступа к телефону он не сможет войти.
TOTP является стандартом безопасности, определённым в RFC 6238. В отличие от SMS-кодов, TOTP не требует отправки сообщений (бесплатно) и не зависит от сотовой связи, а в отличие от push-уведомлений, не требует установки отдельного приложения для каждого сервиса. В 2026 году, когда риски взлома аккаунтов и утечек данных остаются высокими, внедрение TOTP для всех критических систем становится обязательным требованием кибербезопасности.
Главное
[править]TOTP - это приложение на телефоне, которое каждые 30 секунд показывает новый 6-значный код. Пользователь вводит его вместе с паролем, чтобы подтвердить, что это действительно он. Код меняется так быстро, что его нельзя угадать или перехватить.
Что такое TOTP
[править]TOTP - это реализация двухфакторной аутентификации (2FA), которая использует временной фактор для генерации одноразовых паролей. В отличие от SMS, TOTP не требует отправки сообщений и не зависит от сотовой связи. В отличие от push-уведомлений, не требует установки отдельного приложения для каждого сервиса. Алгоритм основан на HOTP (HMAC-based One-Time Password) с добавлением временного фактора.
Ключевые характеристики: временной интервал 30 секунд (стандарт), длина кода 6 или 8 цифр (чаще всего 6), синхронизация сервера и клиента по секретному ключу и текущему времени, возможность работы офлайн (код генерируется на устройстве без интернета).
Как работает TOTP
[править]- При включении 2FA сервис генерирует секретный ключ (secret key) и отображает его в виде QR-кода.
- Пользователь сканирует QR-код приложением-аутентификатором (Google Authenticator, Яндекс Ключ, Microsoft Authenticator, Authy).
- Приложение сохраняет секретный ключ в защищённом хранилище устройства, сервис сохраняет ключ на своей стороне в зашифрованном виде.
- Приложение вычисляет текущий код по формуле TOTP = HOTP(K, T), где T - текущее время, делённое на 30 секунд.
- Пользователь вводит пароль и текущий код из приложения. Сервис вычисляет ожидаемый код по тому же алгоритму и сравнивает с введённым.
| Характеристика | Описание |
|---|---|
| Временной интервал | 30 секунд (стандарт). По истечении интервала код меняется |
| Длина кода | 6 или 8 цифр (чаще всего 6) |
| Синхронизация | Сервер и клиент используют одинаковый секретный ключ и текущее время |
| Офлайн-работа | Код генерируется на устройстве без подключения к интернету |
| Стандарт | RFC 6238 (IETF) |
Преимущества
[править]- Бесплатность - не нужно платить за SMS-сообщения (экономия для бизнеса).
- Безопасность - код не передаётся по сети, SIM-свопинг не работает.
- Офлайн-доступ - код можно получить даже без интернета (например, в самолёте).
- Стандартизация - поддерживается тысячами сервисов.
- Кроссплатформенность - один аутентификатор может хранить коды для всех сервисов.
Недостатки
[править]- Потеря телефона - при утере телефона доступ к аккаунтам теряется (решение: использовать резервные коды или облачную синхронизацию).
- Неудобство - нужно открывать отдельное приложение (решение: использовать менеджеры паролей со встроенным TOTP).
- Отсутствие push - нельзя подтвердить одним нажатием (решение: комбинировать с push для критических систем).
Где используется
[править]| Сфера | Применение |
|---|---|
| Рекламные кабинеты | Защита аккаунтов Яндекс Директ, Google Ads, VK Реклама, MyTarget |
| CRM и аналитика | Защита доступа к CRM, сквозной аналитике (Roistat, Calltouch) |
| Платёжные системы | Защита аккаунтов ЮKassa, Robokassa, платёжных шлюзов |
| Корпоративная почта | Защита почтовых ящиков сотрудников (Google Workspace, Яндекс Почта, Microsoft 365) |
| Сервисы для маркетологов | Защита аккаунтов Canva, Figma, Notion, Miro |
Сравнение
[править]| Критерий | TOTP | SMS-код | Push-уведомление |
|---|---|---|---|
| Зависимость от интернета | Нет | Нет (требуется сотовая связь) | Да |
| Стоимость | Бесплатно | За каждое SMS (1-3 рубля) | Бесплатно |
| Уязвимость | Низкая (нет передачи по сети) | Средняя (SIM-свопинг, перехват) | Низкая |
| Удобство | Среднее (надо открыть приложение) | Высокое (код приходит автоматически) | Высокое (одно нажатие) |
| Требования | Приложение-аутентификатор | Номер телефона | Приложение сервиса |
| Офлайн | Да | Да (через SMS) | Нет |
Часто задаваемые вопросы
[править]Чем TOTP отличается от SMS-кода?
[править]SMS-код приходит по сообщению - его могут перехватить или подменить SIM-карту (SIM-свопинг). TOTP генерируется на телефоне без передачи по сети - перехватить нечего. Также TOTP бесплатен, а SMS требуют оплаты за каждое сообщение.
Что делать, если потерян телефон с аутентификатором?
[править]При включении 2FA большинство сервисов выдаёт резервные коды (backup codes). Необходимо сохранить их в надёжном месте (не на телефоне). Если потеряны и телефон, и коды - восстановление доступа происходит через поддержку, что может занять несколько дней.
TOTP и Google Authenticator - это одно и то же?
[править]Google Authenticator - это приложение, которое использует TOTP. TOTP - это сам алгоритм. Существуют и другие приложения: Яндекс Ключ, Microsoft Authenticator, Authy, а также менеджеры паролей со встроенным TOTP (1Password, Bitwarden).
Нужно ли интернет-соединение для генерации кода?
[править]Нет. Код генерируется на устройстве по секретному ключу и текущему времени. Интернет нужен только для синхронизации времени (один раз), но в большинстве случаев часы на телефоне синхронизированы автоматически.
