Исследователи из компании NCC Group раскрыли (https://www.nccgroup.trust/us/our-research/private-key-extra... детали (https://www.nccgroup.trust/globalassets/our-research/us/whit... уязвимости (CVE-2018-11976 (https://www.qualcomm.com/company/product-security/bulletins#... в чипах Qualcomm, позволяющей определить содержимое закрытых ключей шифрования, размещённых в изолированном анклаве Qualcomm QSEE, основанном на технологии ARM TrustZone. Проблема проявляется в большинстве
SoC Snapdragon, получивших распространение в смартфонах на базе платформы Android. Исправления, устраняющие проблему, уже включены (https://source.android.com/security/bulletin/2019-04-01) в апрельское обновление Android и в новые выпуски прошивок для чипов Qualcomm. На подготовку исправления компании Qualcomm потребовалось больше года - изначально сведения об уязвимости были направлены в Qualcomm ещё 19 марта 2018 года.Напомним, что технология ARM TrustZone позволяет создавать аппаратно изолированные защищённые окружения, которые полностью отделены от основной системы и выполняются на отдельном виртуальном процессоре c использованием отдельной специализированной операционной системы. Основным предназначением TrustZone является обеспечение изолированного выполнения обработчиков ключей шифрования, биометрической аутентификации, платёжных данных и другой конфиденциальной информации. Взаимодействие с основной ОС осуществляется косвенно через интерфейс диспетчеризации. Закрытые ключи шифрования размещаются внутри аппаратно изолированного хранилища ключей, что при надлежащей реализации позволяет предотвратить их утечку в случае компрометации основной системы.
Уязвимость связана с недоработкой в реализации алгоритмов обработки эллиптических кривых. Исследователи разработали технику атаки по сторонним каналам, позволяющую по имеющимся косвенным утечкам восстановить содержимое закрытых ключей, размещённых в аппаратно изолированном Android Keystore (https://developer.android.com/training/articles/keystore.html). Утечки определяются на основе анализа активности блока предсказания переходов и изменения времени доступа к данным в памяти. В ходе эксперимента исследователи успешно продемонстрировали восстановление 224- и 256-разрядных ключей ECDSA из аппаратно изолированного хранилища ключей, применяемого в смартфоне Nexus 5X. Для восстановления ключа потребовалась генерация около 12 тысяч цифровых подписей, на которую ушло более 14 часов.
Основной причиной возникновения проблемы является совместное использование общих аппаратных компонентов и кэша для вычислений в TrustZone и в основной системе - изоляция выполнена на уровне логического разделения, но с использованием общих вычислительных блоков и с оседанием следов вычислений и информации об адресах переходов в общем процессорном кэше. При помощи метода Prime+Probe, основанном на оценке изменения времени доступа к прокэшированной информации, можно через проверку наличия определённых шаблонов в кэше с достаточно высокой точностью отслеживать потоки данных и признаки выполнения кода, связанного с вычислениями цифровых подписей в TrustZone.
Большая часть времени формирования цифровой подписи с использованием ключей ECDSA в чипах Qualcomm тратится на выполнение операций умножения в цикле с использованием неизменного для каждой подписи вектора инициализации (nonce (https://ru.wikipedia.org/wiki/Nonce)). Если атакующий сможет восстановить хотя бы несколько бит с информацией о данном векторе, появляется возможность совершения атаки по последовательному восстановлению всего закрытого ключа.
В случае с Qualcomm выявлено два места утечки подобной информации в алгоритме умножения: при выполнении операций поиска в таблицах и в коде условного извлечения данных на основе значения последнего бита в векторе "nonce". Несмотря на наличие в коде Qualcomm мер по противодействию утечкам сведений по сторонним каналам, разработанный метод атаки позволяет обойти эти меры и определить несколько бит значения "nonce", которых достаточно для восстановления 256-разрядных ключей ECDSA.
URL: https://news.ycombinator.com/item?id=19738394
Новость: https://www.opennet.ru/opennews/art.shtml?num=50572