Прошлый 2022 год обещали сделать переломным: отказаться от использования паролей и перейти на беспарольный доступ. Реальность оказалась скромнее, тотального отказа от паролей пока нет, но технология беспарольной защиты уже появилась.
- Введение
- Passkeys в деталях
- Парольная или беспарольная защита?
- Трудности стыковки Passkeys
- Безопасность благодаря технологии Passkeys
- Преимущества технологии Passkeys
- Выводы
Введение
В мае 2022 года компания Google объявила о поддержке стандарта нового поколения для беспарольной аутентификации в Android и браузере Chrome, получившего название Passkeys. Он был предложен альянсом Fast Identity Online (FIDO Alliance) и получил поддержку со стороны не только Google, но также Apple и Microsoft.
Мы сообщали ранее позицию Google по этой технологии: «Passkeys — это гораздо более безопасная альтернатива паролям и другим факторам аутентификации, которые легко перехватить с помощью фишинга. Passkeys нельзя повторно использовать, они не утекают при взломе серверов и защищают пользователей от фишеров».
В чём же секрет Passkeys на техническом уровне? Действительно ли это прорыв в беспарольное будущее? Попробуем разобраться в некоторых деталях реализации Passkeys, опираясь на материалы опубликованные ранее в других источниках.
Passkeys в деталях
Идея появления Passkeys связана с необходимостью избавиться от использования традиционных паролей и многофакторной аутентификации (MFA), получив, как следствие, возможность предотвращать фишинговые атаки. Согласно задумке, Passkeys должна стать прозрачной для применения технологией, которая облегчит работу с интернет-ресурсами и избавит от многих рисков мошенничества.
Название Passkeys является больше маркетинговым. В основе этого инструмента — уже существующий механизм WebAuthn, разработанный в рамках FIDO Alliance и одобренный консорциумом W3C. Он поддерживается во всех основных браузерах. Защита здесь опирается на пару «интегрированных паролей» — открытый и закрытый ключи, которые позволяют аутентифицировать пользователя через API на веб-сайте или в приложении.
Доступ к ключам осуществляется через протокол CTAP2 (Client to Authenticator Protocol 2). Физическим местом хранения ключей является т. н. аутентификатор (Authenticator) — защищённое место, которое отвечает требованиям по безопасности и создаётся с учётом реально существующих возможностей на устройстве клиента. Такое защищённое хранилище может создаваться в памяти смартфона или быть отдельно запускаемой виртуальной машиной.
Парольная или беспарольная защита?
Сказать, что защита на базе открытого и закрытого ключей — это совершенно новое слово в криптографии, конечно, нельзя. Эта технология давно и широко используется на практике. Она встречается при передаче данных в интернете.
Почему же тогда пароль до сих пор остаётся основным инструментом аутентификации человека, который всегда считался «самым слабым звеном»?
Отказ от паролей сдерживался до сих пор отсутствием готовой универсальной экосистемы, которая могла бы обеспечить техническую поддержку ключей, сохраняя при этом прозрачность и удобство процесса аутентификации для пользователей на практике.
Технология защиты на базе ключей уже давно применяется при двухфакторной аутентификации (2FA), но до сих пор это играло вспомогательную роль. Новизна Passkeys состоит в том, что теперь делается попытка сделать защиту на базе ключей основной.
Рисунок 1. Процесс регистрации ключей при использовании технологии Passkeys
Предложенная система получилась вполне прозрачной. Используется пара ключей, которые хранятся на клиентском устройстве (например, в смартфоне). Они доступны через механизм WebAuthn.
На стороне сервера хранится также второй закрытый ключ, который шифруется с использованием первого закрытого ключа, полученного из аутентификатора от клиента. На базе этих данных на сервере создаётся двоичный объект (blob), который и играет роль идентификатора учётных данных для конкретного пользователя.
Секрет защиты состоит в том, что расшифровать эти blob-данные на сервере возможно только при получении закрытого ключа от пользователя. Без него сохранённые на сервере данные бессмысленны. Поэтому даже в случае их кражи они не могут скомпрометировать пользователя, которого защищают.
Рисунок 2. Процесс аутентификации при использовании технологии Passkeys
Трудности стыковки Passkeys
На первый взгляд схема предложенного решения выглядит безупречно и кажется странным, что она не появилась раньше.
Но ответ вполне прост: стандарт WebAuthn в своей оригинальной версии не предусматривал экспорта учётных данных, а это необходимо делать для аутентификации при Passkeys.
Здесь и возникает главная проблема. Поскольку единого технического стандарта для содержимого ключей доступа не существует, разные провайдеры синхронизируют учётные данные по-разному. Это ведёт к изолированности их решений, поскольку подробности реализации своего механизма они не разглашают. Например, Google использует свой инструмент Google Password / Passkeys Manager, а Apple — свой.
Рисунок 3. Пример реализации технологии Passkeys (Tom’s Guide)
Безопасность благодаря технологии Passkeys
Конечно, главная угроза, от которой избавляет Passkeys, — это фишинг. Сегодня злоумышленники могут выкрасть у пользователя пароль при помощи разнообразных, подчас очень креативных и необычных методов. Носителем секретов является человек, а его можно обмануть. Пользователь же может узнать о свершившейся краже только когда случится инцидент (или, добавим полушутя, когда Anti-Malware.ru опубликует новость о соответствующей утечке).
Главное преимущество использования ключей доступа и WebAuthn состоит в том, что теперь применение секретных данных для аутентификации становится сугубо технической процедурой. Именно это обеспечивает надёжную защиту от фишинга, потому что разработчики получают возможность выстроить защиту на технологическом уровне.
Какие преграды уже известны?
Во-первых, для работы WebAuthn требуется использование криптопротокола TLS. В случае обращения к WebAuthn все браузеры автоматически выполняют проверку источника запроса. Если опознать источник не удаётся (фишинг), то запрос на получение данных отклоняется.
Соответственно, теперь для компрометации учётных данных злоумышленнику потребуется использовать существующие уязвимости программных систем. Это могут быть, например, известные ошибки межсайтового исполнения сценариев (XSS), если таковые обнаруживаются в ситуации с конкретным пользователем. Злоумышленнику в этом случае потребуется каким-то образом привязать свои действия к тому веб-сайту, который выдаёт запрос. Другой вариант атаки, на который может пойти злоумышленник, — эксплуатировать уязвимости в самом браузере, которым пользуется жертва.
Но даже если злоумышленнику удастся успешно обойти проверку со стороны WebAuthn, всё равно он может получить доступ не к самому закрытому ключу, а только к сеансовому токену (cookie). Срок жизни этих данных определяет разработчик веб-сайта, по умолчанию срок действия токена истекает после завершения сеанса. Поэтому риск прорыва через выстроенную с помощью Passkeys оборону, наверное, остаётся, но его можно уменьшить посредством безопасной разработки.
Преимущества технологии Passkeys
Технология Passkeys привязывает ключи, используемые для аутентификации, к конкретному устройству. Валидность обеспечивается за счёт ввода ПИН-кода или через биометрию. Без них разблокировать экран и получить доступ к аккаунту не удастся. Passkeys повышает защищённость, хотя и не устраняет полностью угроз. Контроль за устройством аутентификации (например, смартфоном) всё равно остаётся на стороне пользователя.
Преимущество Passkeys состоит в том, что этот механизм избавляет от прямой необходимости вводить пароль при обращении к конкретному веб-ресурсу. Так возникает беспарольная аутентификация. Как следствие, обесцениваются атаки фишеров, которые крадут тем или иным способом пароль, а потом могут действовать от чужого имени. Теперь для реализации своих преступных планов им потребуется получить доступ к самому устройству, где хранятся ключи, или попробовать выполнить все операции удалённо, заразив устройство вредоносным софтом.
Выводы
Применение технологии Passkeys не требует передачи биометрической информации. В случае утери самого устройства привязки (смартфона) пользователь может заблокировать ранее настроенный вход и провести аутентификацию заново.
В то же время определённые риски при использовании Passkeys сохраняются. Они связаны с возможным использованием ошибок межсайтового скриптинга или мошенническим захватом управления над устройством привязки, а также с отсутствием единого стандарта по содержимому ключей доступа в WebAuthn.
К текущему моменту пока нет информации о появлении техник взлома Passkeys.