
SMS, TOTP, push-уведомления, аппаратные ключи — каждый следующий метод MFA надёжнее предыдущего. Но у всех есть общая слабость: пароль никуда не исчезает. Его можно перехватить, утащить из базы данных или выманить фишингом. WebAuthn решает эту проблему радикально — убирает пароль совсем.
FIDO2 и WebAuthn
FIDO2 — открытый стандарт аутентификации от альянса FIDO и W3C. Состоит из WebAuthn (API для браузеров и приложений) и CTAP (протокол общения с аутентификатором: USB-ключом, телефоном или встроенной биометрией).
WebAuthn заменяет пароли криптографией с открытым ключом:
- При регистрации устройство генерирует пару ключей — приватный и публичный
- Сервер сохраняет только публичный ключ
- При входе сервер отправляет challenge — случайную строку
- Устройство запрашивает подтверждение владельца — отпечаток пальца, скан лица или PIN-код
- После подтверждения устройство подписывает challenge приватным ключом
- Сервер проверяет подпись публичным ключом
Приватный ключ никогда не покидает устройство. Серверу нечего красть — у него только публичный ключ, бесполезный для атакующего.
Passkeys
Passkeys — маркетинговое название WebAuthn-аутентификации. Ключевое отличие от аппаратных ключей: Passkeys синхронизируются через облако — iCloud Keychain, Google Password Manager, Windows Hello. Работают на всех устройствах без физического ключа.
Каждый Passkey жёстко привязан к домену при регистрации. Если ключ создан на example.com, браузер не отдаст его фишинговому examp1e.com — проверка происходит автоматически на уровне протокола.
Распространённые заблуждения
«Passkeys — это биометрия» — нет. Биометрия лишь разблокирует доступ к приватному ключу, но сама ключом не является.
«Потерял телефон — потерял доступ» — не обязательно. Passkeys синхронизируются через облако, при замене устройства восстанавливаются автоматически.
Ограничения
- Зависимость от облака — компрометация облачного аккаунта ставит под угрозу все синхронизированные ключи
- Привязка к экосистеме — Passkeys из iCloud не переносятся в Google Password Manager и наоборот. Сторонние менеджеры паролей вроде Bitwarden решают эту проблему, храня ключи кроссплатформенно
- Восстановление доступа — при потере всех устройств и облачного аккаунта восстановить ключи невозможно
Passkeys — редкий случай в безопасности, когда более защищённый метод оказывается одновременно и более удобным: не нужно ничего запоминать, вводить или копировать.
Этот пост также доступен в Telegram

