2025-11-14T09:58:11.521609

Passwords and FIDO2 Are Meant To Be Secret: A Practical Secure Authentication Channel for Web Browsers

Gautam, Yadav, Smith et al.
Password managers provide significant security benefits to users. However, malicious client-side scripts and browser extensions can steal passwords after the manager has autofilled them into the web page. In this paper, we extend prior work by Stock and Johns, showing how password autofill can be hardened to prevent these local attacks. We implement our design in the Firefox browser and conduct experiments demonstrating that our defense successfully protects passwords from XSS attacks and malicious extensions. We also show that our implementation is compatible with 97% of the Alexa top 1000 websites. Next, we generalize our design, creating a second defense that prevents recently discovered local attacks against the FIDO2 protocols. We implement this second defense into Firefox, demonstrating that it protects the FIDO2 protocol against XSS attacks and malicious extensions. This defense is compatible with all websites, though it does require a small change (2-3 lines) to web servers implementing FIDO2.
academic

Пароли и FIDO2 должны оставаться секретом: практический защищённый канал аутентификации для веб-браузеров

Основная информация

  • ID статьи: 2509.02289
  • Название: Passwords and FIDO2 Are Meant To Be Secret: A Practical Secure Authentication Channel for Web Browsers
  • Авторы: Anuj Gautam (Университет Теннесси), Tarun Yadav (Университет Brigham Young), Garrett Smith (Университет Brigham Young), Kent Seamons (Университет Brigham Young), Scott Ruoti (Университет Теннесси)
  • Категория: cs.CR (Криптография и безопасность)
  • Конференция: CCS '25 (Конференция ACM SIGSAC по компьютерной и коммуникационной безопасности)
  • Ссылка на статью: https://arxiv.org/abs/2509.02289

Аннотация

Менеджеры паролей обеспечивают пользователям значительные преимущества в безопасности, однако вредоносные клиентские скрипты и расширения браузера могут перехватывать пароли после их автоматического заполнения менеджером в веб-форму. В данной работе авторы расширяют предыдущие исследования Stock и Johns, демонстрируя, как укрепить автоматическое заполнение паролей для предотвращения этих локальных атак. Авторы реализовали свой дизайн в браузере Firefox и провели эксперименты, доказывающие, что предложенная защита успешно предохраняет пароли от атак XSS и вредоносных расширений. Исследование также показывает совместимость реализации с 97% топ-1000 сайтов Alexa. Кроме того, авторы обобщили дизайн и создали второй механизм защиты для предотвращения недавно обнаруженных локальных атак на протокол FIDO2.

Исследовательский контекст и мотивация

Основная проблема

Менеджеры паролей имеют явную уязвимость в безопасности: пароли уязвимы для перехвата в период между автоматическим заполнением в браузер и передачей на веб-сайт. Это включает перехват из следующих источников угроз:

  1. Веб-трекеры: могут непреднамеренно собирать информацию о пароле
  2. Атаки инъекций (например, XSS): вредоносные скрипты могут напрямую читать пароли из DOM
  3. Вредоносные расширения браузера: расширения с надлежащими разрешениями могут получать доступ к содержимому веб-страниц и сетевым запросам
  4. Скомпрометированные библиотеки JavaScript: внедрение вредоносного кода в результате атак на цепь поставок

Важность проблемы

  • Эти атаки относительно распространены; исследования показывают, что по крайней мере 2-3% популярных веб-сайтов содержат веб-трекеры, которые могут утечь пароли
  • Атаки XSS постоянно входят в топ-10 рисков безопасности веб-приложений по версии OWASP
  • Проблема вредоносных расширений браузера становится всё более серьёзной; в Chrome Web Store существуют тысячи расширений с достаточными разрешениями для проведения подобных атак

Ограничения существующих подходов

Stock и Johns предложили протокол защиты паролей на основе замены на случайные значения (nonce) десять лет назад, однако этот протокол несовместим с современным дизайном браузеров. Даже в браузере Firefox, где он работал в то время, соответствующая функциональность была быстро удалена, что препятствовало принятию протокола и развитию дальнейших исследований в этой области.

Основные вклады

  1. Реализация практического API замены паролей на основе nonce: модификация современного браузера для поддержки рабочей реализации протокола Stock и Johns
  2. Расширение модели угроз: выявление и устранение угроз от вредоносных расширений браузера, не рассмотренных в исходном протоколе
  3. Защищённый канал FIDO2: обобщение дизайна на протокол FIDO2 для защиты от недавно обнаруженных локальных атак
  4. Проверка практического развёртывания: реализация в Firefox и оценка, демонстрирующая совместимость с 97% основных веб-сайтов

Подробное описание методологии

Определение задачи

Разработать защищённый канал браузера, позволяющий менеджеру паролей безопасно передавать пароли на веб-сайт, не предоставляя доступ к фактическому содержимому пароля скриптам DOM или расширениям браузера.

Архитектура защиты паролей

Дизайн основного API

Расширение существующего WebRequest API добавлением новой фазы onRequestCredentials:

onRequestCredentials → onBeforeRequest → onBeforeSendHeaders → onSendHeaders → ...

Рабочий процесс

  1. Внедрение nonce: менеджер паролей заполняет веб-страницу случайным значением nonce вместо фактического пароля
  2. Регистрация обработчика: одновременно регистрирует обработчик обратного вызова onRequestCredentials
  3. Проверка безопасности: при отправке страницы выполняются следующие проверки безопасности:
    • Проверка того, что веб-страница не отображается в iFrame
    • Проверка использования безопасного соединения HTTPS для канала передачи
    • Подтверждение совпадения origin с записью менеджера паролей
    • Проверка того, что nonce не находится в параметрах GET
    • Проверка корректности имён полей
  4. Безопасная замена: если проверка пройдена, браузер заменяет nonce на фактический пароль в объекте FormSubmission

Дизайн защиты от вредоносных расширений

Для противодействия угрозе вредоносных расширений внесены два ключевых изменения:

  1. Перемещение onRequestCredentials на этап после всех этапов, имеющих доступ к requestBody
  2. Отображение расширениям requestBody до замены, скрывая фактический пароль

Дизайн защищённого канала FIDO2

Модель угроз

Протокол FIDO2 сталкивается с двумя классами локальных атак:

  1. Модификация значений DOM: переписывание вызовов API webAuthn через вредоносный JavaScript
  2. Перехват запросов и ответов: перехват HTTP-запросов и ответов через расширения

Механизм защиты

  1. Обработка запросов: сервер размещает фактический полезный груз FIDO2 в заголовке webauthn_request, ответ страницы содержит поддельное значение
  2. Перехват заголовков: браузер удаляет конфиденциальные заголовки до того, как расширения получат доступ
  3. Замена API: внутри API webAuthn поддельное значение заменяется на фактическое
  4. Защита ответа: возвращаемое значение API заменяется на поддельное, фактическое значение хранится безопасно
  5. Финальная передача: при отправке запроса на указанную конечную точку поддельное значение заменяется на фактический ответ FIDO2

Экспериментальная установка

Тестовая среда

  • Браузер: Mozilla Firefox 107.0 (защита паролей) и 104.0a1 (защита FIDO2)
  • Менеджер паролей: модифицированная версия Bitwarden
  • Тестовые веб-сайты: 573 веб-сайта с страницами входа из топ-1000 сайтов Alexa

Метрики оценки

  1. Совместимость: процент веб-сайтов, работающих корректно
  2. Безопасность: эффективность защиты от атак DOM и расширений
  3. Накладные расходы производительности: увеличение времени обработки запросов

Методы сравнения

  • Немодифицированный браузер Firefox в качестве базовой линии
  • Использование прокси-сервера для записи всех исходящих сетевых запросов для сравнения

Результаты экспериментов

Основные результаты

Совместимость защиты паролей

  • 97% совместимость: 554/573 веб-сайтов полностью совместимы
  • 2% частичная совместимость: 11/573 веб-сайтов не работают из-за вычисления хеша пароля в DOM
  • 1% несовместимость: 8/573 веб-сайтов изменяют формат пароля перед отправкой

Проверка безопасности

  • Успешная защита от всех протестированных атак DOM (XSS, внедрение вредоносного JavaScript)
  • Эффективное блокирование попыток вредоносных расширений перехватить пароли через WebRequest API
  • Выявление и защита от угроз отражённых атак

Накладные расходы производительности

  • Среднее время запроса при необходимости замены: 4,5222 секунды
  • Время операции замены: 0,443 секунды (10,6% от общего времени)
  • При отсутствии необходимости замены: измеримое влияние на производительность отсутствует

Результаты защиты FIDO2

  • 100% совместимость веб-сайтов (требуется модификация 2-3 строк кода на стороне сервера)
  • Успешная защита от всех протестированных атак DOM и расширений
  • Реализована полная подотчётность сеансов

Связанные работы

Исследования безопасности менеджеров паролей

Существующие исследования в основном сосредоточены на общей безопасности менеджеров паролей, включая:

  • Анализ безопасности генерации, хранения и заполнения паролей
  • Выявление уязвимостей в процессе автоматического заполнения
  • Проблемы безопасности менеджеров паролей на мобильных устройствах

Механизмы безопасности браузера

Соответствующие исследования безопасности браузера включают:

  • Политика одного источника и политика безопасности содержимого
  • Модель разрешений расширений браузера
  • Безопасность протоколов WebAuthn и FIDO2

Позиционирование вклада данной работы

Данная работа впервые предоставляет рабочую реализацию протокола Stock и Johns, заполняя пробел в исследованиях, существовавший в течение десяти лет, и расширяет защиту на протокол FIDO2.

Заключение и обсуждение

Основные выводы

  1. Доказательство практичности: успешная реализация защищённого канала передачи паролей в современных браузерах
  2. Широкая совместимость: совместимость с подавляющим большинством основных веб-сайтов, высокая практическая осуществимость развёртывания
  3. Повышение безопасности: эффективная защита от множества локальных угроз
  4. Масштабируемость: дизайн может быть обобщён на другие взаимодействия браузер-сервер для защиты

Ограничения

  1. Несовместимость с 3% веб-сайтов: в основном вызвана обработкой паролей на стороне клиента
  2. Накладные расходы производительности: операция замены имеет определённую стоимость во времени
  3. Требование модификации браузера: требуется принятие производителями браузеров предложенных изменений API
  4. Модификация сервера FIDO2: хотя и минимальна, но всё же требует координации на стороне сервера

Направления будущих исследований

  1. Повышение совместимости: автоматическое выявление и обработка соответствующего JavaScript через программный анализ
  2. Расширение на ручной ввод: защита паролей, вводимых пользователем вручную
  3. Обнаружение атак: использование механизма nonce для обнаружения и отчётности об атаках
  4. Защита других API: расширение дизайна на другие API браузера, такие как буфер обмена и файловая система

Углублённая оценка

Преимущества

  1. Высокая практическая ценность: решение реальной проблемы безопасности, затрагивающей десятки миллионов пользователей менеджеров паролей
  2. Полная инженерная реализация: предоставление полной реализации Firefox и подробного руководства по переносу
  3. Комплексная оценка: включение комплексной оценки безопасности, совместимости и производительности
  4. Теоретическое расширение: успешное обобщение концепции на протокол FIDO2
  5. Обратная связь от индустрии: получение позитивной обратной связи от производителей браузеров и команд менеджеров паролей

Недостатки

  1. Вызовы развёртывания: требуется сотрудничество производителей браузеров, неопределённость в распространении
  2. Проблемы совместимости: сохранение проблем совместимости с 3% веб-сайтов
  3. Ограничения модели угроз: отсутствие защиты от атак на уровне операционной системы или атак типа "человек посередине" на TLS
  4. Риск путаницы пользователей: пользователи могут быть озадачены отображением случайного значения пароля

Влияние

  1. Академический вклад: возобновление направления исследований, остановившегося десять лет назад
  2. Практическая ценность: обеспечение немедленного улучшения безопасности для десятков миллионов пользователей
  3. Потенциал стандартизации: перспектива стандартизации через W3C для содействия широкому принятию
  4. Вдохновение для исследований: предоставление парадигмы дизайна для защиты других API браузера

Применимые сценарии

  1. Корпоративная среда: развёртывание в корпоративных средах с высокими требованиями безопасности
  2. Высокоценные учётные записи: аутентификация для важных сервисов, таких как банки и государственные учреждения
  3. Пользователи с высокой осведомлённостью о безопасности: группы пользователей с повышенными требованиями к конфиденциальности и безопасности
  4. Исследовательский прототип: предоставление базовой платформы для дальнейших исследований безопасности браузера

Библиография

Данная работа цитирует 47 соответствующих источников, включая в основном:

  • Исходную статью протокола замены на основе nonce Stock и Johns
  • Соответствующие исследования анализа безопасности менеджеров паролей
  • Эмпирические исследования угроз безопасности расширений браузера
  • Литературу по анализу безопасности протокола FIDO2
  • Исследования текущего состояния веб-трекеров и атак XSS

Общая оценка: Это статья системной безопасности с важной практической ценностью, которая успешно преобразовала теоретический дизайн в рабочую прототипную систему и подтвердила её эффективность посредством комплексной экспериментальной проверки. Работа не только решает важную проблему безопасности в реальном мире, но и открывает новые направления для будущих исследований. Несмотря на сохраняющиеся вызовы в развёртывании и совместимости, её технический вклад и практическая ценность делают её важным прогрессом в области безопасности браузеров.