← Назад к блогу

Passkeys / Пароли / Аутентификация

Пароли против ключей доступа: как на самом деле работает современный вход

PetexSpace

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

Это различие устраняет несколько распространенных проблем с паролями, но не делает остальную часть учетной записи неуязвимой. Безопасность устройства, восстановление через провайдера passkey, реализация приложения и восстановление учетной записи по-прежнему важны. Поэтому полезное сравнение - не «пароли плохи, passkeys идеальны», а какие атаки предотвращает каждая схема и какие обязанности остаются.

Как работает вход по паролю

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

Повторное использование усугубляет ущерб. Если один и тот же пароль защищает несколько учетных записей, одна скомпрометированная учетная запись может быть проверена в других местах с помощью credential stuffing. Уникальные пароли, созданные и сохраненные менеджером паролей, ограничивают такое распространение. Многофакторная аутентификация добавляет еще один барьер, хотя коды, которые пользователь может ввести на фишинговой странице, также могут быть перехвачены злоумышленником.

Что содержит passkey

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

Разблокировка устройства с помощью PIN-кода, отпечатка пальца, проверки лица или графического ключа авторизует использование закрытого ключа. Биометрическая проверка обычно происходит локально; сервис получает криптографическое доказательство, а не данные отпечатка пальца или лица. Обзор passkey от FIDO Alliance описывает passkeys как кроссплатформенные учетные данные FIDO, используемые с помощью того же действия, которое разблокирует устройство.

Device creating a key pair while keeping one key inside and sending the public key to a service
When a passkey is created, the service stores a public key. The corresponding private key remains with the passkey provider.

Как работает вход с помощью passkey

  1. Сервис отправляет свежий криптографический вызов в браузер или приложение.
  2. Аутентификатор подтверждает, что запрос принадлежит зарегистрированному сервису, и при необходимости запрашивает согласие пользователя или проверку устройства.
  3. Закрытый ключ подписывает вызов локально.
  4. Сервис проверяет подпись с помощью открытого ключа, который он уже хранит.
  5. Свежий вызов предотвращает повторное использование старого ответа для нового входа.

Веб-механизм стандартизирован через WebAuthn. Спецификация веб-аутентификации W3C определяет учетные данные, ограниченные проверяющей стороной и опосредованные браузером и аутентификатором. Эта привязка к источнику является ключевой для устойчивости к фишингу: учетные данные, зарегистрированные для одного сервиса, не предлагаются подделывающему домену.

Legitimate origin completing a signed challenge while an imitation origin is rejected
A passkey is scoped to the legitimate service origin, which is why a look-alike phishing site cannot request the same credential.

Что улучшают passkeys

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

Что passkeys не решают сами по себе

  • Скомпрометированное или разблокированное устройство может по-прежнему раскрыть активную сессию или позволить использовать учетные данные.
  • Вредоносные расширения браузера, ошибки приложений и кража сессий существуют вне протокола passkey.
  • Слабое восстановление учетной записи может обойти надежный метод входа.
  • Потеря доступа ко всем устройствам и методам восстановления может по-прежнему заблокировать пользователя.
  • Пользователя все еще можно обманом заставить авторизовать вредоносное действие после законного входа.

Руководство FIDO подчеркивает, что полная устойчивость к фишингу включает регистрацию и восстановление, а не только обычный шаг входа. Сервис, который позволяет злоумышленнику сбросить учетную запись через слабый запасной вариант, переместил слабое место, а не устранил его.

Практический план перехода

  1. Создайте passkeys для важных сервисов, которые их поддерживают, затем проверьте, где хранятся эти passkeys и как они синхронизируются или остаются привязанными к устройству.
  2. Добавьте более одного пути восстановления, если сервис это позволяет, например второе доверенное устройство или аппаратный ключ безопасности.
  3. Храните уникальные пароли в менеджере паролей для сервисов, которые все еще требуют пароли.
  4. Включите самый надежный доступный второй фактор для оставшихся парольных учетных записей, предпочитая методы, устойчивые к фишингу, где это возможно.
  5. Храните коды восстановления в автономном режиме в месте, доступном, если ваше основное устройство недоступно.
  6. Проверьте старые устройства и активные сессии после замены или потери устройства.

Passkeys - это значительное улучшение, потому что они меняют протокол, а не только форму секрета. Внедрение еще некоторое время будет смешанным, поэтому большинству людей нужны обе системы: passkeys там, где они поддерживаются, и надежные уникальные пароли с соответствующей многофакторной защитой везде остального.

Основные ссылки

FIDO Alliance: Passkeys. W3C: Спецификация веб-аутентификации.