У меня на ютуб-канале и на сайте есть серия статьей и роликов, посвященных IAM решениям: Authentik, Authelia, Keycloak и Zitadel. Все они обладают возможностями логиниться в разнообразные сервисы и идентификации пользователей с помощью totp кодов, биометрии и ключей. Но в ру-сегменте я не встречал четких объяснений, а что это за технологии, и чем они отличаются друг от друга. Цель это статьи постараться разобраться что же это такое.
TOTP, WebAuthn и Passwordless Login: в чём разница?#
Современная аутентификация развивается быстрее, чем когда-либо. Если раньше пароль был единственным способом войти в учётную запись, то сегодня всё говорят о TOTP, WebAuthn и Passwordless Login. И даже далекий от it-технологий человек уже пользуются вышеперечисленными возможностями с теми же Госуслугами. Давайте разберём, что это за технологии, как они работают и чем отличаются.
1. TOTP — одноразовые коды по времени#
TOTP (Time-based One-Time Password) — это метод двухфакторной аутентификации, при котором одноразовый код генерируется на основе текущего времени и секретного ключа.
Как это работает:
- При привязке TOTP-приложение (Google Authenticator, Authy, Bitwarden, Vaultwarden и др.) получает секретный ключ от сервиса. Привязка представляет из себя простое сканирование qr-кода
- Приложение каждые 30 секунд генерирует новый 6–8-значный код.
- Пользователь вводит этот код при входе в дополнение к паролю.
Плюсы:
- Простая интеграция в любые сервисы.
- Не требует подключения к интернету для генерации кодов (не всегда).
- Усиливает безопасность пароля.
Минусы:
- Всё ещё зависит от знания пароля. То есть это не замена процедуры ввода пароля, а скорее дополнительная защита при вводе пароля. Если ваш пароль скомпрометирован, то этого еще недостаточно для злоумышленника, нужно получить доступ к физическому устройству, генерирующему totp код.
- Уязвим к фишингу: злоумышленник может перехватить код в реальном времени (но это уже из раздела весьма специфических случаев, что могут уже к вам возникнуть вопрос, что же ты такое, что так интересен).
2. WebAuthn — аутентификация с помощью криптографии#
WebAuthn (Web Authentication API) — это стандарт от W3C и FIDO Alliance, который позволяет входить в систему с помощью криптографических ключей, встроенных в устройство.
Как это работает:
- При регистрации создаётся уникальная пара ключей: приватный остаётся на устройстве, публичный отправляется на сервер.
- При входе сайт отправляет случайный челлендж, который подписывается приватным ключом.
- Сервер проверяет подпись с помощью публичного ключа.
Варианты использования:
- Ключи безопасности (YubiKey, SoloKey).
- Биометрия (отпечаток пальца, Face ID, Windows Hello).
- Защищённые модули устройства (TPM, Secure Enclave).
Плюсы:
- Не уязвим к фишингу — приватный ключ никогда не покидает устройство.
- Нет пароля → нет утечек хэшей паролей.
- Поддержка аппаратных токенов и биометрии.
Минусы:
- Требует поддержки браузером и сайтом.
- Возможны сложности с переносом ключей между устройствами.
- YubiKey достаточно дорогие устройства. Крайне желательно иметь копию на случай утери одного из YubiKey.
3. Passwordless Login — вход без пароля#
Passwordless Login — это общий подход, при котором для входа вообще не используется пароль. Вместо него — одноразовая ссылка, код, биометрия или криптографический ключ.
Популярные варианты:
- По e-mail: сервис присылает одноразовую ссылку (magic link).
- По SMS/мессенджеру: код подтверждения приходит на телефон.
- Через WebAuthn: криптографический вход без пароля. Я сам использую или Vaultwarden или Windows Hello, в зависимости от устройства.
- Через OAuth: вход через Google, GitHub, Microsoft и др.
Плюсы:
- Нет паролей → нечего забывать и нечему утекать.
- Упрощает процесс входа для пользователей.
- Может использоваться как основная или дополнительная аутентификация.
Минусы:
- При использовании почты или SMS безопасность зависит от стороннего канала. Лучше не использовать такой вариант
- Необходима надёжная защита учётных записей, к которым привязан вход. Но это само собой разумеющееся факт.
4. В чем разница между WebAuthn и Passwordless login#
WebAuthn и Passwordless login пересекаются, но не одно и то же — первое скорее технология, второе — подход к аутентификации.
Связь между ними#
- WebAuthn — это конкретная, современная и безопасная технология, которая может использоваться для реализации passwordless login.
- Passwordless login — это более широкое понятие, которое может использовать WebAuthn, но не ограничивается им.
Если совсем коротко#
- WebAuthn — инструмент (протокол, API).
- Passwordless login — цель/стратегия (убрать пароли).
Сравнительная таблица#
Характеристика | WebAuthn | Passwordless login (в целом) |
---|---|---|
Что это | Стандарт и API для аутентификации с помощью ключей и криптографии | Метод входа без пароля, любыми средствами |
Технологическая база | Асимметричная криптография (публичный/приватный ключ) | Может использовать разные технологии: WebAuthn, email-ссылки, одноразовые коды, biometrics API и т.д. |
Примеры использования | YubiKey, Windows Hello, Face ID, встроенный TPM | Magic link на email, код по SMS, push-уведомление, WebAuthn |
Безопасность | Очень высокая: приватный ключ никогда не покидает устройство, защита от фишинга и утечек паролей | Зависит от технологии: SMS/e-mail уязвимее, WebAuthn и biometrics — надёжнее |
Удобство для пользователя | Быстро, без ввода пароля, но требует поддерживаемого устройства | Может быть проще (просто клик по ссылке), но иногда медленнее |
Поддержка браузерами | Современные браузеры (Chrome, Firefox, Safari, Edge) + OS-интеграция | Зависит от метода (e-mail/SMS работает везде) |
Требования к инфраструктуре | Сервер должен реализовать FIDO2/WebAuthn API | Может быть проще: только SMTP, SMS-шлюз или push-сервер |
Можно использовать как 2FA | Да | Да, но не всегда (зависит от метода) |
Основная цель | Заменить или дополнить пароль с помощью криптографии | Избавиться от паролей любым способом |
5. Главное отличие между TOTP, WebAuthn и Passwordless Login#
Технология | Использует пароль? | Основана на времени? | Устойчива к фишингу? | Пример использования |
---|---|---|---|---|
TOTP | ✅ Да | ✅ Да | ❌ Нет | Google Authenticator |
WebAuthn | ❌ Нет | ❌ Нет | ✅ Да | YubiKey, Touch ID |
Passwordless | ❌ Нет | ❌ / ✅ | Зависит от метода | Magic Link, WebAuthn |
6. Как выбрать?#
- Если нужен второй фактор к паролю — TOTP подойдёт почти всегда.
- Если важна защита от фишинга и максимальная безопасность — WebAuthn с аппаратным ключом или встроенной биометрией.
- Если хотите полностью избавиться от паролей — Passwordless Login (на основе WebAuthn или magic link) станет логичным выбором.
Выводы#
TOTP — это усиление пароля.
WebAuthn — это безопасный вход без пароля с криптографией.
Passwordless Login — это концепция, где пароль не используется вообще, а WebAuthn — лишь один из способов её реализации.