Passkeys vs 2FA: будущее аутентификации
Коротко. Passkeys — это учётные данные на основе стандартов WebAuthn и FIDO2, привязанные к устройству и устойчивые к фишингу. Они заменяют пароль криптографической парой ключей: приватный ключ никогда не покидает устройство. Классическая двухфакторная аутентификация (2FA) добавляет второй шаг (TOTP-код, SMS) поверх пароля, но остаётся уязвимой к фишингу и перехвату. Стандарт passkeys продвигают Apple, Google и Microsoft, и в 2026 году это де-факто направление развития входа.
Что не так с паролями и 2FA
Пароли воруют через фишинг, утечки баз и подбор. 2FA снижает риск, но не устраняет его: TOTP-код можно выманить на фейковой странице, SMS — перехватить через SIM-swap. Корень проблемы в том, что и пароль, и одноразовый код — это «общий секрет», который пользователь может случайно отдать злоумышленнику.
Passkey невозможно «случайно ввести» на фишинговом сайте: браузер проверяет домен на криптографическом уровне, и ключ просто не сработает на чужом origin.
Как работают passkeys
При регистрации устройство генерирует пару ключей. Публичный ключ уходит на сервер, приватный остаётся в защищённом хранилище (Secure Enclave, TPM). При входе сервер присылает challenge, устройство подписывает его приватным ключом после подтверждения биометрией или PIN. Сервер проверяет подпись публичным ключом. Секрет никогда не передаётся по сети.
- Фишинг-устойчивость — ключ привязан к домену (origin binding).
- Нет общего секрета — нечего украсть с сервера при утечке.
- Биометрия локально — отпечаток или лицо не покидают устройство.
- Синхронизация — облачные passkeys (iCloud Keychain, Google Password Manager) переносятся между устройствами.
Passkeys против 2FA: сравнение
| Критерий | Пароль + 2FA (TOTP) | Passkey |
|---|---|---|
| Устойчивость к фишингу | Нет | Да |
| Общий секрет на сервере | Есть (хеш пароля) | Только публичный ключ |
| Защита от утечки БД | Зависит от хеширования | Полная |
| Удобство входа | Пароль + ввод кода | Биометрия в один шаг |
| Восстановление доступа | Email/SMS | Облачная синхронизация / резервный фактор |
Где 2FA всё ещё нужна
Не списывайте 2FA со счетов. Многие системы ещё не поддерживают passkeys, а где-то passkey используется как первый фактор, дополняемый вторым для критичных операций. Грамотная стратегия 2026 года — это послойный подход: passkey как основной вход, TOTP или аппаратный ключ как резерв и для high-risk действий.
Пример проверки challenge на сервере
WebAuthn-флоу на клиенте инициирует получение учётных данных:
// Запрос аутентификации passkey (упрощённо)
const credential = await navigator.credentials.get({
publicKey: {
challenge: serverChallenge, // случайный nonce от сервера
rpId: 'example.com', // origin binding
userVerification: 'required' // биометрия / PIN
}
});
// credential.response.signature проверяется публичным ключом на сервере
Сервер должен валидировать подпись, проверять, что origin и rpId совпадают, и контролировать счётчик подписей для защиты от клонирования.
Чек-лист внедрения passkeys
- Поддержите WebAuthn на бэкенде (библиотеки есть под все стеки).
- Дайте пользователю включить passkey, сохранив пароль как резерв.
- Проверяйте
userVerificationи счётчик подписей. - Настройте восстановление через второй passkey или аппаратный ключ.
- Обеспечьте SSL/TLS проверку и корректные security-заголовки.
FAQ
Passkeys полностью заменяют пароли?
Постепенно — да. Но на переходном этапе пароль и 2FA обычно сохраняют как резервный путь входа и восстановления доступа.
Что будет, если я потеряю устройство с passkey?
Облачные passkeys синхронизируются между вашими устройствами через iCloud Keychain или Google Password Manager. Также стоит зарегистрировать второй passkey или аппаратный ключ.
Passkeys защищают от фишинга?
Да. Ключ криптографически привязан к домену, поэтому на фишинговом сайте он просто не сработает — это главное преимущество перед 2FA.
Нужна ли всё ещё 2FA при passkeys?
Для критичных операций — желательно. Послойный подход (passkey + резервный фактор) даёт максимальную защиту.
Проверьте безопасность своего сайта с помощью сканера безопасности enterno.io — он оценивает security-заголовки и HTTPS по шкале A–F. Полезны также SSL-чекер для проверки сертификата и CSP-анализатор для контроля политики контента.