Найти в Дзене
Цифровая Переплавка

🔑 Passkeys: Как криптография избавляет нас от паролей и спасает от фишинга

Оглавление
Рука вставляет аппаратный security-ключ в ноутбук, на экране — иконка замка и мерцающая схема «ключ-замок»: наглядный образ криптографии passkeys, защищающей вход без паролей.
Рука вставляет аппаратный security-ключ в ноутбук, на экране — иконка замка и мерцающая схема «ключ-замок»: наглядный образ криптографии passkeys, защищающей вход без паролей.

Каждый, кто хоть раз забывал пароль от очередного аккаунта или получал подозрительное письмо с просьбой «срочно войти на сайт банка», знает, как ненадёжны и уязвимы привычные нам пароли. За последние годы хакеры научились взламывать и красть пароли с пугающей регулярностью. Но кажется, у нас наконец-то появился шанс навсегда забыть об этой головной боли благодаря passkeys — технологии, которая использует принципы криптографии для безопасной аутентификации.

Но как это работает на самом деле, и почему именно криптография стала ключом к безопасному интернету?

🔐 Что такое passkeys?

В основе passkeys лежит пара криптографических ключей:

  • 🔒 Приватный ключ хранится исключительно на устройстве пользователя.
  • 📬 Публичный ключ хранится на сервере сайта.

Когда пользователь хочет войти в аккаунт, сайт отправляет ему уникальный вызов («challenge»). Пользователь подписывает его своим приватным ключом, а сайт проверяет подпись публичным ключом. Всё просто: никакие чувствительные данные по сети не отправляются, а значит, украсть просто нечего.

🎣 Прощай, фишинг!

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

Главная причина фишинга — это возможность подменить сайт и обманом заставить пользователя раскрыть свои данные. Passkeys решают эту проблему благодаря стандарту WebAuthn, который жёстко связывает ключ с конкретным веб-сайтом. Если злоумышленник пытается заставить пользователя использовать passkey с другим сайтом, устройство просто откажет в аутентификации.

Технически это реализуется так:

  • 🌐 Сайт, запрашивающий аутентификацию, передаёт браузеру своё доменное имя (origin).
  • 🖥️ Браузер передаёт эту информацию аутентификатору (устройству, управляющему passkey).
  • 🔍 Аутентификатор проверяет, совпадает ли origin с изначальным сайтом, для которого был создан passkey.
  • ✅ Если нет совпадения — аутентификация не происходит.

📱💻 Виды аутентификаторов и их особенности

Есть два типа устройств-аутентификаторов:

  • 📱 Платформенные аутентификаторы
    (например, iCloud Keychain, Google Password Manager)
    ➕ Удобны в использовании, имеют облачные резервные копии
    ➖ Уязвимы при компрометации устройства
  • 🔑 Внешние аутентификаторы (roaming authenticators)
    (например, YubiKey, Titan Security Key)
    ➕ Максимальная безопасность, независимы от устройства
    ➖ Можно потерять, обычно нет резервной копии

Для важных аккаунтов лучше всего использовать именно внешние аппаратные ключи.

⚙️ Технические детали: криптография под капотом

На практике passkeys основаны на алгоритмах цифровой подписи (например, ECDSA или Ed25519). Генерация ключей происходит непосредственно на устройстве пользователя:

  • 🌱 Ключи генерируются случайным образом и никогда не покидают устройство.
  • 📃 Публичный ключ отправляется на сервер во время регистрации.
  • 🔐 Приватный ключ используется для подписи вызовов.

Дополнительную безопасность дают криптографические расширения (extensions):

  • 🧩 prf-extension позволяет реализовать HMAC-функции и даже выводить ключи, подходящие для шифрования.
  • 📦 largeBlob даёт возможность хранить сертификаты и дополнительные данные, связанные с пользователем.

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

🚧 Passkeys не серебряная пуля?

Несмотря на впечатляющий потенциал, passkeys не решают всех проблем сразу:

  • ⚠️ Уязвимость при компрометации браузера
    Если браузер взломан, пользователь может быть обманут насчёт того, для какого сайта подписывает запрос.
  • 🕳️ Поддельные аутентификаторы
    Недобросовестные устройства могут незаметно раскрыть ваши приватные ключи хакерам.
  • 📛 Коллизии идентификаторов
    Возможны (хоть и маловероятны) совпадения идентификаторов passkeys, поэтому серверы должны защищаться от такой ситуации.

🛟 А что делать, если ключ потерян?

Важный момент: потеря passkey — это потеря доступа, ведь ключи нельзя восстановить. Поэтому:

  • ☁️ Используйте платформенные решения с резервными копиями, если хотите избежать риска потери.
  • 🛡️ Для наиболее важных аккаунтов предпочтите аппаратные решения и предусмотрите механизмы восстановления аккаунта через дополнительные факторы.

🗝️ Моё мнение: будущее уже здесь

Лично для меня, человека, который уже много лет интересуется вопросами информационной безопасности, технология passkeys — это, пожалуй, лучшее, что происходило в этой области за последнее время. Удобство и криптографическая защищённость становятся доступными каждому пользователю, а не только экспертам по безопасности.

Тем не менее, важно помнить, что любая технология имеет границы применимости. Passkeys отлично защитят от массовых атак, но пользователям и разработчикам стоит внимательно относиться к резервному копированию, выбору аутентификаторов и возможным уязвимостям своих браузеров.

Внедрение passkeys — важный шаг на пути к более безопасному интернету, и я рекомендую всем, кто заботится о своей безопасности, уже сегодня задуматься о переходе на эту технологию.

🌐 Полезные ссылки для изучения темы: