Ключи доступа были разработаны для решения одной из критических проблем паролей: пользователю больше не требуется вводить секретный код на сайте, что исключает возможность его перехвата на фишинговых страницах. Однако исследование атаки Pass-ta-key выявило серьёзный недостаток в реализации Windows. Вредоносное программное обеспечение может получить доступ к ключам, сохранённым в Google Password Manager. Это открытие вызвало оживлённую дискуссию, так как многие специалисты считали такие ключи защищёнными от обычных приложений после сохранения в доверенном платформенном модуле (TPM).
Термин Pass-ta-key является игрой слов: он комбинирует понятие passkey, выражение "pass the key" и звучит подобно слову "pasta". Эта атака нацелена на Google Password Manager в операционной системе Windows и позволяет извлечь сохранённые ключи доступа при заражении компьютера. Необходимо понимать важный момент: Pass-ta-key не破 криптографическую защиту FIDO2 и не получает секреты с серверов Google через неизвестные уязвимости. Сначала злоумышленнику нужно скомпрометировать сам компьютер пользователя.
Это порождает ключевой вопрос, вызвавший основную путаницу в обсуждениях. Доверенный платформенный модуль (TPM) представляет собой защищённый аппаратный компонент, предназначенный для выполнения криптографических операций и сохранения критических ключей. Если закрытый ключ невозможно извлечь из TPM, каким образом вредоносное ПО получает доступ к набору ключей доступа?
Стандарты FIDO2 не обязывают сохранять каждый ключ доступа внутри TPM или другого аппаратного защищённого хранилища. Разные операционные системы используют собственные механизмы безопасности: Apple применяет Secure Enclave, Android использует доверенную среду выполнения и StrongBox, а также существуют другие варианты. Аппаратная защита играет важную роль, но стандарт не требует привязки всех ключей доступа к одному типу защищённого хранилища.
Строгая привязка каждого ключа к TPM создала бы практические неудобства. Когда пользователь приобретает новый компьютер или смартфон, он не сможет перенести уже созданные ключи. Пришлось бы повторно входить во все сервисы и создавать учётные данные заново. Такой подход превратил бы массовую замену в утомительную процедуру обслуживания десятков или сотен учётных записей.
Поэтому разработчики операционных систем и менеджеров учётных данных внедрили синхронизацию между устройствами. Ключи могут сохраняться локально в защищённом хранилище либо передаваться через зашифрованную облачную инфраструктуру. Конкретный метод зависит от платформы и выбранного менеджера.
На системах macOS, iOS и Android безопасность локального хранилища во многом основывается на строгой изоляции приложений. Установленная программа не получает доступ к памяти и информации других приложений по умолчанию. Для преодоления выделенной области вредоносное ПО обычно должно обойти защитные механизмы самой операционной системы, например, используя серьёзные уязвимости.
Windows исторически позволяет гораздо более свободное взаимодействие программ, действующих с одинаковыми правами пользователя. Система предусматривает песочницы и другие инструменты изоляции, но обычное приложение вне песочницы во многих сценариях получает значительно больший доступ к пользовательским данным, чем мобильные приложения. Радикальное изменение архитектуры затруднено из-за многолетней совместимости Windows с устаревшим программным обеспечением.
Разработчики менеджеров ключей доступа учитывают эту специфику. Сохранять весь набор закрытых ключей непосредственно на Windows-компьютере опасно: после инфицирования вредонос функционирует внутри среды, которой пользователь доверяет свои учётные записи и приложения. Поэтому Google Password Manager, 1Password, Dashlane и другие менеджеры используют для Windows облачную модель с шифрованием.
Google Password Manager сохраняет синхронизированные ключи доступа в облачной учётной записи Google. Компания указывает, что ключи защищаются блокировкой мобильного устройства либо PIN-кодом менеджера. Поддержка реализована для Windows 10 и более новых версий системы.
При входе на сайт через Google Password Manager компьютер проходит проверку, связанную с учётной записью и устройством. В Windows для части процесса используется ключ пользователя или устройства, защищённый TPM. После успешной проверки инфраструктура Google создаёт криптографическое подтверждение для сайта.
Сайт не получает закрытый ключ. Серверу передаётся подписанное подтверждение, доказывающее наличие нужных учётных данных. Закрытый ключ остаётся зашифрованным в инфраструктуре менеджера и применяется для подписи в предусмотренных процедурах. Многие альтернативные менеджеры в Windows строят синхронизацию по аналогичному принципу.
На других платформах операция может выполняться непосредственно на устройстве. Защищённое локальное хранилище содержит закрытый ключ, а смартфон или компьютер самостоятельно подписывает запрос на вход. Сайт получает только криптографическое подтверждение, а не восстанавливаемый секрет.
Pass-ta-key атакует не криптографический алгоритм, а доверие к уже авторизованному Windows-компьютеру. Вредоносная программа использует доступ к учётной записи Google и в отдельных вариантах обращается к защищённому TPM ключу. Злоумышленник фактически действует изнутри системы, которая уже прошла необходимые проверки.
Исследователь описал три варианта Pass-ta-key. Наиболее эффективный метод заставляет заражённый компьютер выдавать себя за iPhone. Google Password Manager затем запускает встроенный механизм синхронизации, предназначенный для переноса ключей доступа на новое устройство.
Этот механизм разработан для удобства владельца учётной записи. При покупке нового смартфона не требуется создавать отдельный ключ доступа для каждого сайта. Pass-ta-key использует эту функцию в вредоносных целях: заражённая машина имитирует новое доверенное устройство и получает синхронизированные ключи.
Результат кажется серьёзным, но это не представляет принципиально новый класс атак. Полностью заражённый компьютер с открытой учётной записью давно рассматривается как крайне опасная ситуация. Если пользователь уже разблокировал менеджер учётных данных, электронную почту, облачное хранилище или другой защищённый сервис, вредонос получает намного больше возможностей, чем при внешних атаках.
Менеджеры учётных данных сталкиваются с идентичной проблемой. Вредоносное ПО на разблокированном компьютере может попытаться читать доступные данные, инициировать вход на сайты или использовать встроенные функции приложения. Конкретный результат зависит от защиты самого менеджера, разграничения доступа и возможностей вредоноса.
Некоторые менеджеры применяют дополнительные методы для затруднения кражи данных из памяти. Программа может использовать системные интерфейсы, ограничивающие чтение определённых областей памяти другими процессами. По описанию Pass-ta-key нельзя исключить, что Google Password Manager защищает некоторые участки слабее специализированных менеджеров вроде 1Password. Однако дополнительные барьеры не изменяют основную модель угроз: полностью скомпрометированная и авторизованная система больше не считается безопасной средой.
Предназначение ключей доступа находится в другом контексте. Пароль должен быть известен пользователю и проверяющему сервису в форме, позволяющей подтвердить совпадение. Пользователь может ввести пароль на поддельном сайте, вредонос может перехватить ввод, а утечка серверной базы создаёт риск дальнейших атак.
Ключи доступа строятся на основе пары криптографических ключей. Сервис хранит открытый ключ, закрытый остаётся под контролем пользователя и его устройств или менеджера. Для входа система подписывает запрос закрытым ключом, сервер проверяет подпись открытым. Передавать сам секрет сайту не требуется.
Поэтому поддельная страница не может просто получить ключ доступа как текстовую строку и затем использовать его на настоящем сайте. Пользователь ничего секретного не вводит и не копирует. Google прямо указывает устойчивость к фишингу как преимущество ключей доступа.
Pass-ta-key показывает другую границу защиты. Если вредонос уже выполняет команды на авторизованном компьютере, атакующему часто незачем ломать FIDO2 или вычислять закрытый ключ. Проще использовать встроенные функции синхронизации и права, предоставленные системой владельцу учётной записи.
Поэтому Pass-ta-key не доказывает ненадёжность ключей доступа как замены паролям. Атака напоминает о более древней и неприятной проблеме: после полного заражения компьютера безопасность зависит не только от способа входа. На Windows последствия особенно серьёзны из-за менее жёсткой изоляции приложений, а открытая учётная запись превращает встроенные механизмы восстановления и синхронизации в инструменты, которыми может воспользоваться вредоносное ПО.
