Привет, Хабр! Меня зовут Андрей, и в Компании «Актив» я отвечаю за развитие направления многофакторной аутентификации. В 2023 году мы выпустили линейку первых и (пока) единственных отечественных устройств на базе технологии FIDO2 – Рутокен MFA. Хотя FIDO2 в мире существует уже 7 лет и многие отечественные бигтехи (вроде Яндекса и VK) уже внедрили ее в свои сервисы, отечественные потребители слабо знакомы с этой технологией.
Как первопроходцам, нам, как компании, и мне лично пришлось заниматься евангелизмом и просвещением, что же это за такая технология, как она упрощает жизнь пользователям и какие преимущества несет. Самый популярный вопрос, который мне приходил – «А в чем разница с PKI?»

Т.к. этот вопрос достаточно комплексный, в данной статье я решил попробовать сравнить технологии по нескольким критериям:

  • Назначение

  • Распространенность

  • Универсальность применения

  • Масштабируемость

  • Особенности управления жизненным циклом аутентификации

  • Внедрение

Итак, начнем. На рынке представлены решения, основанные на двух принципиально разных технологиях аутентификации с использованием асимметричной криптографии: PKI (Инфраструктура открытых ключей) и FIDO (Fast IDentity Online). В их основе лежит использование асимметричной криптографии, но применяются разные схемы аутентификации — PKI и FIDO. Обе технологии обеспечивают конфиденциальность, целостность и доступность аутентификационных данных, а также защиту от фишинговых атак и защиту от атак Man-in-the-Middle.

Но несмотря на общую криптографическую основу, PKI и FIDO — это совершенно разные технологии с точки зрения архитектуры, применения и пользовательского опыта. Попробуем сравнить их по ключевым критериям, чтобы разобраться в их сильных сторонах и ограничениях.

Назначение технологий

Технология PKI (Public Key Infrastructure, рус. Инфраструктура открытых ключей) — универсальная технология, предназначенная для обеспечения безопасности в любых информационных системах. PKI используется в задачах аутентификации, шифрования данных, электронной подписи.

Схема PKI позволяет проводить взаимную аутентификацию пользователя и сервиса, сервиса с сервисом или устройства с устройством. Она используется в различных технологиях и протоколах на разных уровнях модели OSI (The Open Systems Interconnection model):

  • на канальном уровне при подключении устройства к Wi-Fi точке доступа;

  • на сетевом при построении VPN между территориально распределенными объектами;

  • на транспортном при организации защищенного доступа к веб-ресурсам по протоколу TLS;

  • на сессионном при двухфакторной аутентификации пользователя в операционную систему.

Применительно к пользовательской аутентификации, PKI позволяет проводить одностороннюю и взаимную аутентификацию. Сертификаты могут использоваться не только для взаимной проверки пользователя и ресурса, но и для создания защищенного канала связи, обеспечивая защиту от атак Man-in-the-Middle.
Технология FIDO (Fast Identity Online, рус. Быстрая онлайн-идентификация) предназначена для обеспечения безопасности пользователей при доступе к веб-ресурсам.

Механизмы FIDO работают на уровне приложения (например, браузера или другого прикладного ПО) и полагаются на использование протокола TLS для защиты каналов связи. Асимметричная криптография применяется для аутентификации пользователя перед ресурсом. Подлинность ресурса подтверждается другими инструментами, такими как:

  • сверка доменного имени, полученного при регистрации ключа и того, что видит пользователь в браузере при аутентификации;

  • наличие доменного имени в белом списке (механизм Enterprise Attestation);

  • счетчик проводимых операций.

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

Распространенность технологий

Технология PKI активно используется уже более 30 лет. Она хорошо изучена, не имеет критичных недостатков в области безопасности и широко распространена в корпоративных и государственных информационных системах.

Первая версия набора стандартов FIDO2 была представлена в апреле 2018г. FIDO2 включает в себя Протокол веб-аутентификации (WebAuthn), разработанный в сотрудничестве с консорциумом W3C (World Wide Web Consortium), и протокол Client to Authentificator Protocol (CTAP). Создатели стандарта стремились привнести безопасность строгой аутентификации, обеспечив, при этом, максимально широкую совместимость с пользовательскими устройствами и убрав сложности администрирования PKI схемы. Спецификации, входящие в стандарт, активно дорабатываются и модернизируются, добавляя новые функциональные возможности, такие как поддержка пальцевой биометрии, расширенных политик PIN-кода и многие другие.

Из-за относительной новизны стандарта многие старые технологии, например, Kerberos, не умеют с ним работать.

Вместе с этим стандарт FIDO подходит для федеративной аутентификации (см. далее Windows Hello for Buisness), что позволяет использовать его в ряде сценариев корпоративной пользовательской аутентификации.

Постепенно растет количество дополнительных сценариев, работающих с технологией FIDO:

  • использовать FIDO-устройства в качестве аутентификатора в различие сервисы с помощью инфраструктурных систем класса Identity and Access Management; в том числе и с мобильными приложениями соответствующих систем;

  • аутентифицировать пользователя в локальные учетные записи ОС семейства Linux через модуль pam-u2f;

  • шифровать содержимое жестких дисков с помощью LUKS;

  • хранение ключей для SSH;

  • использовать TPM модуль рабочей станции, как средство хранения ключа FIDO для ОС Windows и macOS (FIDO Platform Authenticator).

Универсальность применения

Технология PKI использует сертификаты как для аутентификации пользователей, так и для аутентификации устройств.

Технология FIDO изначально разрабатывалась именно для аутентификации пользователей. Она в обязательном порядке требует интерактивных действий от пользователя, таких как ввод PIN-кода, нажатие на кнопку или прикладывание пальца для считывания отпечатка.

Масштабируемость технологий

В основе PKI лежит принцип доверия третьей стороне — Центру регистрации или Удостоверяющему Центру (УЦ). Два и более участников процесса аутентификации должны доверять третьей стороне. Несколько подчиненных УЦ могут доверять корневому, образуя цепочку доверия. Такая иерархическая модель имеет крайне высокую масштабируемость, позволяющую объединить в один контур сотни тысяч устройств и пользователей.

Устройство FIDO использует принцип Challenge-Response на основе открытого-закрытого ключа для взаимодействия с конкретным ресурсом. По сути, это является аналогом самоподписанного сертификата в PKI. Каждый ресурс хранит базу открытых ключей зарегистрированных пользователей.

В технологии FIDO существуют два инструмента проверки пользователя и ресурса для корпоративных заказчиков:

  • Расширение Attestation позволяет проверить, что пользователь использует настоящее физическое устройство, выпущенное конкретным производителем, а не подделку или эмулятор. Для этого используется отдельное удостоверение, подписанное закрытым ключом производителя устройства.

  • Расширение Enterprise Attestation позволяет ограничить на стороне устройства список конкретных ресурсов, на которых будет проверяться удостоверение аттестации. Данный список записывается производителем на устройства по просьбе конкретного заказчика.

Таким образом, FIDO является менее масштабируемым, чем PKI.
Потенциальное решение проблемы масштабирования предлагает один из разработчиков стандарта — корпорация Microsoft, за счет технологии Windows Hello For Business, призванной решить проблему децентрализованной привязки ключей безопасности к разным ресурсам.

Технология Windows Hello For Business построена на основе федеративной аутентификации, привычной для корпоративных заказчиков. Пользователь может пройти аутентификацию в облачном провайдере идентификации (idP) Azure Active Directory, который обеспечит безопасный доступ на другие ресурсы по протоколу OpenID Connect + oAuth 2.0.

В архитектуре решений класса Identity and Access Management сейчас активно распространена концепция федеративной аутентификации. Она позволяет увеличить уровень масштабирования стандарта FIDO2 и при этом упростить администрирование системы.

Управление жизненным циклом аутентификации

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

В FIDO процедура привязки устройств и создания ключей передано пользователю. Обслуживание PKI требует соблюдения различных процедур, таких как:

  • обеспечение процедуры выдачи сертификатов сотрудникам и устройствам;

  • контролем срока жизни пользовательских и машинных сертификатов и необходимостью своевременного их обновления;

  • доступностью УЦ и способов проверки валидности сертификатов (CRL, OSCP);

  • необходимостью постоянного или временного отзыва сертификата, например, в случае увольнения сотрудника или утери токена.

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

Внедрение

Внедрение PKI является многоэтапным. Необходимо:

  • Развернуть один или несколько УЦ;

  • Настроить инструменты работы с отозванными сертификатами;

  • Произвести интеграцию с целевыми системами;

  • Передать ключевую информацию пользователям безопасным способом;

  • Разработать схему миграции с парольной аутентификации на аутентификацию с сертификатами.

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

Сводная таблица сравнения технологий PKI и FIDO

Сервис, система, протокол и т. д.

Устройства с аутентификацией PKI

FIDO-устройства

Доменная аутентификация (Active Directory, SambaDC, FreeIPA и т. д.)

PKI является одним из двух доступных методов аутентификации для Kerberos наравне с паролем, обеспечивая при этом более высокий уровень защищенности.

FIDO не поддерживается нативно для доменной аутентификации. Необходимо использовать систему класса Identity and Access Management с поддержкой стандарта FIDO.

Поддержка IAM-системами

Устройство поддерживается IAM-системами для большинства сценариев.

Устройство поддерживается IAM-системами для аутентификации в ресурсы по современным протоколам федеративной аутентификации (Open ID Connect +oAuth, SAML).

Подключение к Wi-FI точке доступа

Поддерживается (EAP-TLS)

Не поддерживается

Подключение через VPN-клиент

Поддерживается хранение ключей на USB-токене\смарт-карте 

Не поддерживается

VDI и системы виртуализации

Доступ виртуальной машины к токену\смарт-карте требует поддержки работы с CCID-устройствами. Большинство современных гипервизоров работают с CCID-устройствами.

Возможность аутентификации в интерфейс системы виртуализации по смарт-карте распространен в зарубежных решениях (Citrix, Microsoft, VMWare), но только начинает развиваться в российских решениях.

Устройство представляет собой USB-HID устройство. Все современные гипервизоры работают с USB-HID устройствами.

Возможность аутентификации в интерфейс системы виртуализации есть в ряде зарубежных решений (Citrix Microsoft) и отечественных при использовании IAM-систем (Termidesk, Скала-Р).

Удаленный доступ по SSH

Поддерживается.

Аутентификация по SSH использует схему, где закрытый ключ хранится на токене\смарт-карте, а открытый ключ — на сервере.

Поддерживается.

Аутентификация по SSH использует схему, где закрытый ключ хранится на токене\смарт-карте, а открытый ключ — на сервере.

Удаленный доступ по RDP (Remote Desktop Protocol)

Поддерживается для входа в учетные записи.

Устройство прокидывается на удаленный рабочий стол.

Поддерживается только в гибридном облаке Azure Active Directory.

Устройство прокидывается на удаленный рабочий стол.

Системы класса PAM (Privileged Access Management)

Поддерживается для защиты входа администраторов через web-интерфейс. Требуется использовать специальный плагин.

Поддерживается для защиты входа администраторов через web-интерфейс.

Веб-ресурсы

Поддерживается.

Требуется использование специального плагина для браузера.

Поддерживается нативно, если ресурс имеет поддержку WebAuthn.

Windows Hello для входа локальную учетную запись Windows

Не поддерживается

Не поддерживается

Windows Hello for Business для входа в доменные сервисы

Поддерживается

Поддерживается

Выводы

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

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

С другой стороны, на стороне PKI существенно большее количество различных технических и прикладных сценариев, таких как электронная подпись документов, аутентификация устройств, построение защищенного соединения и т.д. Технология PKI обеспечивает полный контроль над действием пользователей и устройств, за что и ценится многими Enterprise-заказчиками.

За годы существования PKI вокруг выстроилась целая инфраструктура, куда вошли системы управления жизненном циклом сертификатов, системы учета СКЗИ, различные технологии автоматического обновления (SCEP, EST, ACME), механизмы проверки валидности сертификатов (CRL, OSCP) и многое другое, что не рассматривалось в этой статье.

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

Андрей Шпаков

Руководитель отдела развития многофакторной аутентификации, Компания «Актив».

Комментарии (0)