MFA, биометрия и ключи доступа: различать гарантии

Кратко

Два шага не обязательно означают два фактора: пароль и PIN относятся к знанию. Биометрия может активировать аутентификатор, но сама по себе не гарантирует анонимность или устойчивость к фишингу.

Вымышленная пустая комната проверки доступа: два ключа безопасности, чистая карта и бордовая папка
В этой статье

Два шага не обязательно означают два фактора: пароль и PIN относятся к знанию. Биометрия может активировать аутентификатор, но сама по себе не гарантирует анонимность или устойчивость к фишингу.

Сравнивать механизмы, а не экраны

NIST различает знание, владение и биометрические характеристики. Введённый вручную одноразовый код можно ретранслировать через поддельный сайт; SMS и TOTP не равнозначны устойчивой к фишингу аутентификации. Правильно реализованный ключ доступа связывает ответ с сервисом. Гарантии зависят также от локальной проверки, резервирования и синхронизации.

Понимать роль биометрии

В WebAuthn распознавание может выполняться внутри аутентификатора; биометрические данные не передаются принимающему веб-сервису. Локальная проверка может использовать PIN. Присутствие пользователя (UP) и его проверка (UV) различаются. Сервер должен проверять ответ по протоколу; экрана распознавания лица недостаточно.

Защитить жизненный цикл

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

Источники

Редакционная проверка: 1 ноября 2026 года.

Отделите второй фактор от устойчивости к фишингу.

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

  • Составьте список приложений, все еще принимающих SMS, коды или обходные подтверждения, и отдайте приоритет привилегированным учетным записям.
  • Протестируйте регистрацию, потерю устройства и аннулирование на основе реального пользовательского опыта.
  • Измерьте охват коэффициента устойчивости и сохраняйте датированные исключения у владельцев.

Первичный источник: NIST SP 800-63B-4. Связанный метод: прочитать практическое руководство.

Passkey: подготовить смену домена и RP ID

Разделить учётную запись, веб-источник и RP ID, чтобы не переназначать данные входа скрытно.

  • Запишите старые и новые источники, RP ID и связанные записи. Одинаковое имя записи не делает passkey действительным для другого RP ID. Проверьте допустимые сочетания WebAuthn и доступные пути входа на переходе.
  • В разрешённой тестовой среде проверьте challenge, источник, RP ID и связь с записью подходящей библиотекой. Испытайте неожиданный источник и повтор challenge. Смена RP ID требует новой аутентифицированной регистрации: копирование строки не переносит ключ.
  • Проверьте пользователя только со старым credential, восстановление и открытые сессии. Задайте открытие и закрытие путей с проверенным возвратом. Регистрация на новом домене не доказывает отзыв всех старых сессий.

Воспроизводимый приёмочный случай

Вымышленный пример: данные не описывают клиента или наблюдаемый результат.

Посмотреть данные случая
{
    "old_origin": "https://login.old.example",
    "old_rp_id": "old.example",
    "new_origin": "https://login.new.example",
    "new_rp_id": "new.example",
    "same_service_account": true,
    "expected": "authenticated_new_registration"
}

Ожидаемое решение

Вымышленный пример: запись та же, но old.example меняется на new.example с другим RP ID. Старый credential нельзя скрытно перепривязать; новая регистрация проходит предусмотренный аутентифицированный путь.

W3C — Web Authentication Level 2

Можно ли изменить RP ID passkey редактированием базы?

Нет. RP ID входит в проверяемую область credential. Подготовьте допустимую новую регистрацию и аутентифицированную связь записи.

Первичный источник: W3C — Web Authentication Level 2. Связанный метод: прочитать практическое руководство.

postMessage: проверять источник, окно и команду

Задайте контракт сообщений iframe или всплывающего окна, отклоняющий неожиданных отправителей и данные.

  • Перечислите точные origin, ожидаемую ссылку на окно и типы сообщений. Для чувствительных данных задайте точный targetOrigin. Origin включает протокол, хост и порт; поиск подстроки в домене не проверяет отправителя.
  • Сравните event.origin и для этой интеграции event.source с ожидаемым окном. Проверьте схему, допустимые значения и состояние операции. Обрабатывайте содержимое как данные без eval и вставки HTML. Разрешённый origin не заменяет авторизацию на сервере.
  • Испытайте похожий домен, другой порт, другое окно того же origin, неверные поля и сообщения после закрытия. Удаляйте ненужные обработчики и завершайте обмены. Ответы направляйте только на заранее разрешённый origin даже после навигации.

Воспроизводимый приёмочный случай

Вымышленный пример: данные не описывают клиента или наблюдаемый результат.

Посмотреть данные случая
{
    "allowed_origin": "https://widget.example",
    "observed_origin": "https://widget.example",
    "expected_window": "active_iframe",
    "observed_window": "another_window",
    "payload_schema_valid": true,
    "expected": "reject_without_effect"
}

Ожидаемое решение

Вымышленный пример: https://widget.example разрешён, но event.source — другое окно. Контракт требует активное окно iframe: отклоните сообщение без команды.

MDN — Window.postMessage

Первичный источник: MDN — Window.postMessage. Связанный метод: прочитать практическое руководство.

Идентификация: факторы, сеансы и восстановление

Два фактора: проверять протокол, а не только интерфейс

Вводимые коды, push-подтверждения и ответы WebAuthn по-разному связывают вход с сервисом. Биометрия может активировать аутентификатор, но не заменяет криптографическую проверку ответа.

WebAuthn: четыре отдельных контроля
Пример с обязательной проверкой пользователя. PIN или биометрия остаются локальными; бизнес-авторизация проверяется отдельно.
  1. Локальная активация — PIN или биометрия в зависимости от устройства.
  2. Подпись ответа — Ключ сервиса и полученный вызов.
  3. Проверка сервером — Вызов, источник, подпись и флаги.
  4. Разрешение действия — Права на объект и операцию.
  • Наблюдать UP и UV раздельно.
  • Проверять необходимые условия синхронизации и неэкспортируемости.
  • Проверять потерю и добавление способа из действующего сеанса.

Подробнее о контроле идентификации →

Источники проверены · NIST SP 800-63B-4 · final publication NIST · Authenticator Event Management W3C · WebAuthn Level 3

Расширения: разрешения и доступ

Подробные справочные заметки в этой версии доступны на английском.

Robust authentication does not describe extension access

Phishing resistance does not remove the need to examine what runs in the browser after a session opens. A manifest provides clues about cookies, scripting, debugging and identity without establishing collection.

  • Test approved extensions in a profile dedicated to sensitive operations.
  • For identity, inspect OAuth scopes and recipients; this permission does not enumerate identity-provider rights.
  • Distinguish session revocation, token revocation, extension disablement and native-component removal.

Read the permission directory and manifest examples →

Google Chrome · Stay secure · Documentation consulted 2026-10-23; browser behaviour remains version-dependent