Приложения для аутентификации, аппаратные токены и SMS-коды — распространенные методы аутентификации, с которыми вы сталкиваетесь при настройке двухфакторной аутентификации (2FA). Все они основаны на одноразовых паролях (OTP). TOTP и HOTP — это два стандартизированных типа OTP, в то время как коды в SMS и электронных письмах являются другими распространенными способами доставки OTP. Хотя они служат одной и той же базовой цели, их техническая реализация различается, что обуславливает их уникальные преимущества и ограничения. В этой статье мы подробно разберем различия между HOTP, TOTP и OTP и объясним, какой вариант лучше всего подходит для различных сценариев использования.
Разбираемся в HOTP, TOTP и OTP
Одноразовый пароль (OTP)
OTP — это временные коды (их также называют одноразовыми паролями или кодами 2FA), которые используются только один раз. Они не заменяют обычные пароли, а создают дополнительный уровень безопасности. Пароли OTP часто применяются в банковских приложениях для подтверждения личности при входе в систему или при создании онлайн-аккаунта.
Примечание. OTP — это общий термин для различных видов одноразовых паролей, включая TOTP, HOTP, а также коды в электронных письмах и SMS.
Одноразовый пароль на основе времени (TOTP)
Коды TOTP обычно представляют собой 6-значные комбинации, создаваемые приложениями для аутентификации. Они действительны около 30 секунд (иногда до 60 секунд, в зависимости от сервиса). По истечении этого времени код становится недействительным и генерируется новый. Ограничение по времени делает TOTP очень надежным методом, поскольку оно сужает временное окно для использования украденного кода злоумышленниками.
Одноразовый пароль на основе HMAC (HOTP)
HOTP обычно используются в аппаратных токенах, таких как YubiKey, и работают на основе счетчика для генерации кодов. Эта система похожа на книжку пронумерованных купонов: существует последовательность кодов, которая сверяется с системой. Пока аппаратный токен и сервер приложения синхронизированы, вы получаете доступ.
В отличие от TOTP, срок действия HOTP-кодов не истекает по таймеру. Они остаются действительными, пока вы их не используете или не сгенерируете новый код. Это делает их идеальными для использования в офлайн-режиме, но также означает, что если вы сгенерируете код и не используете его, он останется действительным ключом, который злоумышленник может найти и использовать.
HOTP, TOTP и OTP: ключевые различия
TOTP и HOTP — это разновидности OTP с разными методами генерации. Например, если вы сравниваете TOTP и OTP, вы, скорее всего, сравниваете временные коды из приложений для аутентификации с обычными методами OTP, такими как коды в смс и электронных письмах.
| Коды в смс/электронных письмах | TOTP | HOTP | |
| Срок действия кода | Различается (от нескольких минут до часов) | От 30 до 60 секунд | До генерации нового кода |
| Безопасность* | Низкая | Высокая | Средний |
| Сложность настройки | Отсутствует | Низкая | Средний |
| Необходимость подключения к сети | Да | Нет | Нет |
| Дополнительное оборудование | Отсутствует | Отсутствует | Аппаратный токен |
*Уровень безопасности основан на периоде действия кода и риске его перехвата.
Безопасность
HOTP, TOTP и OTP обеспечивают разный уровень безопасности, где ключевыми факторами являются время действия кода и способ его передачи.
TOTP обычно обеспечивает более высокий уровень безопасности, чем коды в смс или электронных письмах, так как они генерируются на устройстве и имеют короткий срок действия. Если злоумышленники каким-то образом получат ваш TOTP-код, он окажется бесполезным.
HOTP основан на криптографических алгоритмах, обеспечивающих надежную защиту. Однако поскольку срок действия HOTP-кодов не истекает по таймеру, потенциально длительное окно их действия может сделать украденные коды уязвимостью.
Коды в смс и электронных письмах являются наименее безопасными из всех. Они передаются по сетям, где могут быть перехвачены или перенаправлены, что делает их более уязвимыми для подмены SIM-карт или фишинговых атак..
Примечание: ни один метод OTP не защищен от атак с использованием социальной инженерии, таких как фишинг. Важно знать, как распознать фишинг, чтобы надежно защитить себя.
| Коды в смс/электронных письмах | TOTP | HOTP |
| Уязвимость к перехвату из-за необходимости подключения к сети | Минимум времени для использования украденных кодов злоумышленниками | Длительный срок действия дает больше возможностей для атаки |
| Незашифрованные платформы облегчают кражу кодов | Более низкий риск перехвата, так как коды генерируются на устройстве | Надежная безопасность на основе криптографических алгоритмов |
Удобство использования
Сложность настройки, ограничение по времени и надежность влияют на удобство использования каждого из трех методов.
TOTP надежен и удобен. Настройка проста (часто достаточно отсканировать QR-код), а коды генерируются даже без подключения к сети. Однако короткий срок действия кода создает ограничение по времени, что может вызвать трудности у медлительных пользователей или тех, кто управляет несколькими аккаунтами.
HOTP, напротив, не имеет ограничений по времени. Однако его настройка гораздо сложнее и может потребовать покупки дополнительного оборудования.
Коды в смс и электронных письмах требуют меньше всего усилий и не нуждаются в настройке, но они зависят от сетевого подключения, что может привести к задержкам во время сбоев в сети.
| Коды в смс/электронных письмах | TOTP | HOTP |
| Настройка не требуется | Простая настройка с помощью QR-кода в приложении для двухфакторной аутентификации | Сложная настройка, может потребоваться дополнительное оборудование |
| Небольшое ограничение по времени, срок действия некоторых кодов истекает через несколько часов | Ограничение по времени может создавать неудобства | Нет ограничений по времени |
| Полностью зависит от активной сети для доставки кода | Надежно работает даже без подключения к сети | Работает офлайн, но могут возникнуть проблемы с синхронизацией |
Ограничения
Уникальные ограничения каждого метода влияют на то, как и когда вы их используете. Коды в смс и электронных письмах работают на ваших существующих устройствах, но их зависимость от сети и интернет-соединения может вызвать задержки при доставке кода, которые могут превысить срок его действия.
Для генерации кодов TOTP не требуется подключение к сети, однако для работы кода время на вашем смартфоне должно быть синхронизировано с сервером. Лучший способ обеспечить это — настроить автоматическую синхронизацию часов вашего устройства с интернетом. Таким образом, во время путешествий синхронизация времени сохранится.
В случае с HOTP генерация новых кодов в офлайн-режиме может быть полезна при плохом сетевом подключении. Однако это палка о двух концах. Повторная генерация кодов без их использования может привести к рассинхронизации вашего устройства с сервером, что вызовет сбои аутентификации. Кроме того, необходимость ручной генерации в HOTP возлагает огромную ответственность за безопасность на пользователя.
| Коды в смс/электронных письмах | TOTP | HOTP |
| Зоны с плохим покрытием сети могут вызывать значительные задержки в доставке кодов | Время на устройстве должно быть синхронизировано со временем сервера, даже во время поездок | Синхронизация может нарушиться, если сгенерировано слишком много кодов, но они не используются |
Какой метод OTP вам следует использовать?
Краткий ответ: TOTP — лучший стандарт для большинства людей, в то время как HOTP отвечает конкретным потребностям в офлайне. Оба метода лучше, чем СМС.
Хотя индивидуальные потребности различаются, TOTP представляется более сбалансированным выбором в большинстве ситуаций. Привязка ко времени обеспечивает дополнительный уровень безопасности, а доступность на смартфонах делает этот метод удобным и безопасным выбором для аккаунтов, к которым вы регулярно получаете доступ. Но для еще более надежной защиты от фишинга аппаратные методы, такие как FIDO2/ключи доступа, превосходят любой метод OTP.
Безопасно храните пароли и генерируйте OTP
Управление паролями и кодами аутентификации TOTP может доставлять неудобства: постоянное переключение приложений при входе в систему сокращает и без того ограниченное время, которое у вас есть на ввод кодов. Proton Pass — это надежный менеджер паролей, который решает эту проблему благодаря нашей интегрированной двухфакторной аутентификации (TOTP). Получайте доступ к паролям, кодам двухфакторной аутентификации и многому другому из одного безопасного зашифрованного хранилища.






