Приложения для аутентификации, аппаратные токены и 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, такими как коды в смс и электронных письмах.

Коды в смс/электронных письмахTOTPHOTP
Срок действия кодаРазличается (от нескольких минут до часов)От 30 до 60 секундДо генерации нового кода
Безопасность*НизкаяВысокаяСредний
Сложность настройкиОтсутствуетНизкаяСредний
Необходимость подключения к сетиДаНетНет
Дополнительное оборудование ОтсутствуетОтсутствуетАппаратный токен

*Уровень безопасности основан на периоде действия кода и риске его перехвата.

Безопасность

HOTP, TOTP и OTP обеспечивают разный уровень безопасности, где ключевыми факторами являются время действия кода и способ его передачи.

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

HOTP основан на криптографических алгоритмах, обеспечивающих надежную защиту. Однако поскольку срок действия HOTP-кодов не истекает по таймеру, потенциально длительное окно их действия может сделать украденные коды уязвимостью.

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

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

Коды в смс/электронных письмахTOTPHOTP
Уязвимость к перехвату из-за необходимости подключения к сетиМинимум времени для использования украденных кодов злоумышленникамиДлительный срок действия дает больше возможностей для атаки
Незашифрованные платформы облегчают кражу кодовБолее низкий риск перехвата, так как коды генерируются на устройствеНадежная безопасность на основе криптографических алгоритмов

Удобство использования

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

TOTP надежен и удобен. Настройка проста (часто достаточно отсканировать QR-код), а коды генерируются даже без подключения к сети. Однако короткий срок действия кода создает ограничение по времени, что может вызвать трудности у медлительных пользователей или тех, кто управляет несколькими аккаунтами.

HOTP, напротив, не имеет ограничений по времени. Однако его настройка гораздо сложнее и может потребовать покупки дополнительного оборудования.

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

Коды в смс/электронных письмахTOTPHOTP
Настройка не требуетсяПростая настройка с помощью QR-кода в приложении для двухфакторной аутентификацииСложная настройка, может потребоваться дополнительное оборудование
Небольшое ограничение по времени, срок действия некоторых кодов истекает через несколько часовОграничение по времени может создавать неудобстваНет ограничений по времени
Полностью зависит от активной сети для доставки кодаНадежно работает даже без подключения к сетиРаботает офлайн, но могут возникнуть проблемы с синхронизацией

Ограничения

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

Для генерации кодов TOTP не требуется подключение к сети, однако для работы кода время на вашем смартфоне должно быть синхронизировано с сервером. Лучший способ обеспечить это — настроить автоматическую синхронизацию часов вашего устройства с интернетом. Таким образом, во время путешествий синхронизация времени сохранится.

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

Коды в смс/электронных письмахTOTPHOTP
Зоны с плохим покрытием сети могут вызывать значительные задержки в доставке кодовВремя на устройстве должно быть синхронизировано со временем сервера, даже во время поездокСинхронизация может нарушиться, если сгенерировано слишком много кодов, но они не используются

Какой метод OTP вам следует использовать?

Краткий ответ: TOTP — лучший стандарт для большинства людей, в то время как HOTP отвечает конкретным потребностям в офлайне. Оба метода лучше, чем СМС.

Хотя индивидуальные потребности различаются, TOTP представляется более сбалансированным выбором в большинстве ситуаций. Привязка ко времени обеспечивает дополнительный уровень безопасности, а доступность на смартфонах делает этот метод удобным и безопасным выбором для аккаунтов, к которым вы регулярно получаете доступ. Но для еще более надежной защиты от фишинга аппаратные методы, такие как FIDO2/ключи доступа, превосходят любой метод OTP.

Безопасно храните пароли и генерируйте OTP

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