Уязвимость TPM-Fail, позволяющая восстановить ключи, хранимые в TPM-модулях
14 ноября 2019 года
Группа исследователей из Вустерского политехнического института, Любекского университета и Калифорнийского университета в Сан-Диего разработала метод атаки по сторонним каналам, позволяющий восстановить значение закрытых ключей, хранимых в TPM (Trusted Platform Module). Атака получила кодовое имя TPM-Fail и затрагивает fTPM ( программная реализация на базе прошивки, работающая на отдельном микропроцессоре внутри CPU) от компании Intel (CVE-2019-11090) и аппаратные TPM на чипах STMicroelectronics ST33 (CVE-2019-16863).
Исследователи опубликовали прототип инструментария для совершения атаки и продемонстрировали возможность восстановления 256-разрядного закрытого ключа, применяемого для формирования цифровых подписей с использованием алгоритмов на базе эллиптических кривых ECDSA и EC-Schnorr. В зависимости от прав доступа общее время атаки на системы Intel fTPM составляет 4-20 минут и требует анализа 1-15 тысяч операций. Для атаки на системы с чипом ST33 требуется около 80 минут и анализа около 40 тысяч операций по генерации цифровой подписи.
Исследователями также продемонстрирована возможность совершения удалённой атаки в высокоскоростных сетяx, позволившая в локальной сети с пропускной способностью 1GB в лабораторных условиях за пять часов восстановить закрытый ключ, после измерения времени ответа для 45 тысяч сеансов аутентификации с VPN-сервером на базе ПО strongSwan, хранящем свои ключи в подверженном уязвимости TPM.
Метод атаки базируется на анализе различий во времени выполнения операций в процессе генерации цифровой подписи. Оценка задержки при выполнении вычислений позволяет определить информацию об отдельных битах во время выполнения умножения на скаляр при операциях с эллиптической кривой. Для ECDSA определения даже нескольких битов с информацией о векторе инициализации (nonce) достаточно для совершения атаки по последовательному восстановлению всего закрытого ключа. Для успешного совершения атаки требуется анализ времени генерации нескольких тысяч цифровых подписей, созданных над известными атакующему данными.
Уязвимость устранена компанией STMicroelectronics в новой редакции чипов, в которых реализация алгоритма ECDSA была избавлена от корреляций со временем выполнения операций. Интересно, что подверженные проблеме чипы STMicroelectronics в том числе используются в оборудовании, соответствующем уровню безопасности CommonCriteria (CC) EAL 4+. Исследователями также были проверены TPM-чипы компаний Infineon и Nuvoton, но в них утечка на основе изменения времени вычислений отсутствует.
В процессорах Intel проблема проявляется начиная с выпускаемого с 2013 года семейства Haswell. Отмечается, что проблеме подвержен широкий спектр ноутбуков, ПК и серверов, выпускаемых различными производителями, включая Dell, Lenovo и HP.
Компания Intel включила исправление в ноябрьское обновление прошивок, в котором помимо рассматриваемой проблемы устранено ещё 24 уязвимости, из которых девяти присвоен высокий уровень опасности, а одной критический. По указанным проблемам приводится лишь общая информация, например, упомянуто, что критическая уязвимость (CVE-2019-0169) обусловлена возможностью вызвать переполнение кучи на стороне окружений Intel CSME (Converged Security and Management Engine) и Intel TXE (Trusted Execution Engine), что позволяет злоумышленнику повысить свои привилегии и получить доступ к конфиденциальным данным.
Также можно отметить раскрытие результатов аудита различных SDK для разработки приложений, взаимодействующих с кодом, выполняемым на стороне изолированных анклавов. C целью выявления проблемных функций, которые могут применяться для совершения атак, были изучены восемь SDK: Intel SGX-SDK, SGX-LKL, Microsoft OpenEnclave, Graphene, Rust-EDP и Google Asylo для Intel SGX, Keystone для RISC-V и Sancus для Sancus TEE. В ходе аудита было выявлено 35 уязвимостей, на базе которых разработано несколько сценариев атак, позволяющих извлечь AES-ключи из анклава или организовать выполнение своего кода через создание условий для повреждения содержимого памяти.
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.