Тренд на беспарольную аутентификацию: как создаются и работают ключи Passkey

Изображение: FreepikAI
Passkey – это технология беспарольной аутентификации, позволяющая пользователю применять криптографические ключи для доступа к учетным записям и приложениям. Сейчас уже многие банки и сервисы, например Яндекс, VK, экосистема МТС, Сбер, mos.ru поддерживают данную технологию входа. Фактически Passkey – маркетинговое название, данное специалистами Google одному из режимов работы популярного протокола FIDO (Fast Identity Online). Эксперты Компании «Актив» подробно рассказывают о возможностях FIDO 2.0 и делятся опытом российской разработки решения на основе Passkey.

Основные понятия и принципы стандарта FIDO

FIDO 2.0 – это открытый стандарт многофакторной проверки подлинности без пароля для входа в аккаунт на веб-сайте или в приложении. Вход в сервис возможен с помощью распознавания лица или отпечатка пальца, если ключ хранится на мобильном или стационарном устройстве, либо при помощи специального аппаратного устройства (например, ключа линейки Рутокен MFA). На данный момент FIDO 2.0 является одной из самых современных технологий аутентификации, стремительно набирающей популярность. Но, чтобы получить такой статус, стандарту пришлось преодолеть достаточно сложный путь.

 

Этапы развития стандарта FIDO

Этапы развития стандарта FIDO
Источник: Компания «Актив»

 

В 2014 году международный консорциум FIDO Alliance выпустил два стандарта, ставшие основой FIDO 1.0: UAF 1.0 (Universal Authentication Framework – предполагает использование биометрических данных для аутентификации пользователя без пароля на стороне устройств) и U2F 1.0 (Universal Second Factor – описывает использование внешнего токена безопасности как второго фактора в дополнение к паролю). К 2018 году произошло их объединение в один стандарт U2F 1.2, или CTAP 1.0 (Client To Authenticator Protocol) и связка со спецификацией WebAuthn (Web Authentication) Консорциума всемирной паутины (World Wide Web Consortium, W3C) – так появилась технология FIDO 2.0. На сегодняшний день предложенным стандартом является версия CTAP2.2 и WebAuthn Level 2, широко внедренный во всех современных браузерах. Черновик версии CTAP2.3 пока на рассмотрении, а версия WebAuthn Level 3 сейчас находится в статусе Candidate Recommendation.

«FIDO 2.0 дает несколько преимуществ. Первое – высокая безопасность аутентификации. Второе – удобство для пользователей: вы можете пройти аутентификацию с помощью биометрических данных или PIN-кода, что упрощает вход в аккаунт, а для работы с внешним устройством, FIDO-аутентификатором, не нужно дополнительно настраивать ваше окружение. Третье – это масштабируемость: разработчикам сервисов и приложений легко внедрить поддержку беспарольной аутентификации благодаря стандарту WebAuthn и поддержке FIDO многими операционными системами и браузерами. Четвертое – расширяемость: стандарт постоянно получает новые версии, в которых есть различные дополнения и расширения для удовлетворения актуальных потребностей пользователей», – говорит эксперт и разработчик ОС Рутокен Компании «Актив» Татьяна Калужнина.

 

Эксперт и разработчик ОС Рутокен Компании «Актив» Татьяна Калужнина

Эксперт и разработчик ОС Рутокен Компании «Актив» Татьяна Калужнина
Фото: Компания «Актив»

 

Стандарт FIDO 2.0 может работать в двух режимах: как второй фактор при аутентификации после ввода логина и пароля, и в режиме полностью беспарольной аутентификации. Пользователь при этом взаимодействует с браузером, а браузер уже с Relying Party сервером (сервер, который обрабатывает запросы доступа к онлайн-ресурсам) по стандарту WebAuthn и с аутентификатором (программным или аппаратным средством подтверждения личности пользователя) по протоколу CTAP.

Например, в случае беспарольной аутентификации при регистрации пользователя на веб-сайте аппаратный аутентификатор (токен) сохраняет всю необходимую информацию, которая может ему понадобиться впоследствии при аутентификации: данные об отправляющей стороне, данные о пользователе и приватный ключ. При аутентификации в токен приходит только информация о проверяющей стороне и challenge (случая последовательность), который нужно подписать.

 

Алгоритм аутентификации пользователя в приложении по стандарту FIDO 2.0

Алгоритм аутентификации пользователя в приложении по стандарту FIDO 2.0
Источник: Компания «Актив»

 

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

«Так как теперь наш токен должен хранить данные учетной записи, ими нужно как-то управлять. Стандарт FIDO предоставляет такую возможность с помощью специальных команд. В CTAP 2.0 этой опции еще не было, а в CTAP 2.1 она уже появилась. Когда мы начали разрабатывать наши устройства Рутокен MFA, CTAP 2.1 уже был запущен, и мы сделали токены по этому стандарту. Но когда начали использовать устройства с реальными платформами, обнаружили, что хоть они и имели функциональность по управлению учетными записями, наши устройства с ними не работали. Оказалось, что между версиями стандарта 2.0 и 2.1 была выпущена промежуточная версия 2.1.pre, в которой для выполнения этого функционала использовались другие команды. И эта предварительная версия CTAP 2.1 была стандартом в различном программном обеспечении. Поэтому нам пришлось выполнить две ревизии устройств Рутокен MFA – во второй раз мы добавили поддержку этого предварительного стандарта», – рассказывает Татьяна Калужнина.

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

Расширение сценариев применения FIDO 2.0: предпосылки к появлению Passkey

«Хотя стандарт FIDO изначально был разработан для веб-идентификации, его можно использовать и в большом количестве других сценариев. Например, сейчас с его помощью уже доступна аутентификация локальной учетной записи операционной системы, шифрование дисков, технология Linux Unified Key Setup (LUKS), хранение ключей SSH. Немаловажно, что благодаря нашим технологическим партнерам, производителям решений класса Identity Access Management, этот перечень сценариев значительно расширяется», – добавляет директор по продуктам Рутокен Компании «Актив» Андрей Шпаков.

 

Директор по продуктам Рутокен Компании «Актив» Андрей Шпаков

Директор по продуктам Рутокен Компании «Актив» Андрей Шпаков
Фото: Компания «Актив»

 

Кроме того, принципы FIDO 2.0 могут быть реализованы не только в аппаратной версии (так называется роуминговые аутентификаторы), но и в программной (платформенные аутентификаторы) – чаще всего как компонент мобильной операционной системы.

«С одной стороны, очень удобно, когда ключи у тебя хранятся на телефоне, который всегда с собой. Например, сейчас уже можно синхронизировать ключ с облаком Apple или Google. Появляется сценарий входа в аккаунт с помощью мобильного телефона через сканирование QR-кода. Но, как мы знаем, ни одно программное решение никогда не будет настолько защищенным как хорошее аппаратное решение. Снова возникает проблема: необходимость выбора между удобством и безопасностью? Более того, если ключ хранится в облаке – потеря доступа к своему облачному аккаунту автоматически означает потерю доступа ко всем ключам. Мы смогли найти способ совместить эти два подхода при разработке провайдера Passkey», – сообщает директор по продуктам Рутокен Компании «Актив» Андрей Шпаков.

 

Отличительные черты Passkey

Отличительные черты Passkey
Источник: Компания «Актив»

 

Passkey – это реализация подмножества FIDO2. Изначально работа с Passkey подразумевала хранение ключей для входа в учетную запись на устройстве пользователя в безопасных хранилищах операционной системы. Получить доступ к этим ключам можно с помощью стандартных механизмов контроля доступа самого устройства: Face ID, сканирования отпечатка пальца или ввода PIN-кода устройства.

Но в дальнейшем появилась возможность создавать сторонние провайдеры Passkey.

Опыт разработки стороннего провайдера Passkey

Passkey на практике представляет собой пару ассиметричных ключей (приватный и публичный) и набор метаданных о связанной с ключами учетной записи. В зависимости от реализации веб-сервиса/приложения Passkey может использоваться как единственный или дополнительный фактор аутентификации.

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

  • First-party (системные): встроенные в ОС (iCloud Keychain на iOS/macOS, Google Password Manager на Android, Windows Credential Manager с Hello).
     
  • Third-party (сторонние): внешние приложения (например, 1Password, Bitwarden), расширяющие возможности ОС.

Разработанный Компанией «Актив» провайдер с хранением Passkey на устройствах Рутокен получил название Рутокен Pass.

 

Поддержка Passkey вендорами ОС

Поддержка Passkey вендорами ОС
Источник: Компания «Актив»

 

Разработка стороннего провайдера Passkey (third-party credential provider по WebAuthn) сопряжена с рядом сложностей. В частности, не все ОС одинаково стабильно поддерживают эту технологию.

В Windows 10/11 системный провайдер Passkey доступен с версии 22H2, а полноценная поддержка сторонних провайдеров появилась только в ноябре 2025 года и доступна для Windows 11 24H2 и новее с подходящим набором обновлений безопасности.

Полноценная поддержка Third-party Passkey Providers реализована в Android 14+, iOS/iPadOS 18+, macOS 15+, но и в этих случаях есть ряд ограничений. Например, на iOS невозможна работа с NFC устройствами из App Extension – специального компонента приложения, обеспечивающего реализацию сценариев работы с Passkey.

На Android все еще сложнее:

  • некоторые браузеры не поддерживают работу с Passkey из коробки, и требуется дополнительная настройка браузеров через их флаги конфигурации;
     
  • несмотря на требования Google, некоторые вендоры не добавили поддержку Passkey в свои сборки Android 14+. Но Google обещает ужесточить требования в этом вопросе;
     
  • в некоторых браузерах работает сценарий регистрации Passkey в веб-сервисе, но не работает сценарий входа.

По словам заместителя технического директора направления Рутокен Компании «Актив» Андрея Лашина, при разработке стороннего провайдера Passkey специалисты столкнулись с большим количеством других подводных камней:

  • скудная документация у вендоров ОС, в процессе реализации нужно изучать стандарт WebAuthn;
     
  • Chrome на Android отказывается работать без дополнительных полей в attestationObject, которые не предусмотрены в Android API и это поведение нигде не задокументировано;
     
  • ОС Apple принимают данные от приложения, валидируют их внутри по незадокументированным правилам и в случае каких-то ошибок отправляют пустые ответы relying party (веб-сервису);
     
  • iOS/iPadOS 17.5 и ниже нарушают контракт на вызовы API App Extension и ломают сценарии работы.

 

Заместитель технического директора направления Рутокен Компании «Актив» Андрей Лашин

Заместитель технического директора направления Рутокен Компании «Актив» Андрей Лашин
Фото: Компания «Актив»

 

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

Автор: Андрей Блинов.

Тематики: Безопасность

Ключевые слова: информационная безопасность, Компания Актив, Рутокен