Уязвимост в чиповете на Qualcomm, която позволява частните ключове да бъдат извлечени от хранилището на TrustZone

Изследователи от NCC Group непокрит детайли уязвимости (CVE-2018 11976-) в чипове Qualcomm, което ви позволява да определяте съдържанието на частни ключове за криптиране, разположени в изолиран анклав Qualcomm QSEE (Qualcomm Secure Execution Environment), базиран на технологията ARM TrustZone. Проблемът се проявява в най-много Snapdragon SoC, който стана широко разпространен в смартфоните, базирани на платформата Android. Поправките, които решават проблема, вече са включени в априлската актуализация на Android и нови версии на фърмуера за чипове на Qualcomm. На Qualcomm отне повече от година, за да подготви корекция; информацията за уязвимостта първоначално беше изпратена на Qualcomm на 19 март 2018 г.

Нека припомним, че технологията ARM TrustZone ви позволява да създавате хардуерно изолирани защитени среди, които са напълно отделени от основната система и работят на отделен виртуален процесор, използвайки отделна специализирана операционна система. Основната цел на TrustZone е да осигури изолирано изпълнение на процесори за ключове за криптиране, биометрично удостоверяване, данни за плащане и друга поверителна информация. Взаимодействието с основната ОС се осъществява индиректно чрез интерфейса за изпращане. Частните ключове за шифроване се съхраняват в хардуерно изолирано хранилище на ключове, което, ако се внедри правилно, може да предотврати тяхното изтичане, ако основната система е компрометирана.

Уязвимостта се дължи на пропуск в изпълнението на алгоритъма за обработка на елиптичните криви, което доведе до изтичане на информация за напредъка на обработката на данните. Изследователите са разработили техника за атака на страничен канал, която позволява използването на съществуващи непреки течове за възстановяване на съдържанието на частни ключове, намиращи се в хардуерно изолиран Android Keystore. Течовете се определят въз основа на анализ на активността на блока за прогнозиране на разклонения и промени във времето за достъп до данни в паметта. В експеримента изследователите успешно демонстрираха възстановяването на 224- и 256-битови ECDSA ключове от хардуерно изолираното хранилище на ключове, използвано в смартфона Nexus 5X. Възстановяването на ключа изисква генериране на около 12 хиляди цифрови подписа, което отне повече от 14 часа. Инструменти, използвани за извършване на атаката Cachegrab.

Основната причина за проблема е споделянето на общи хардуерни компоненти и кеш за изчисления в TrustZone и в основната система - изолацията се извършва на ниво логическо разделяне, но с помощта на общи изчислителни единици и със следи от изчисления и информация за клон адреси, които се съхраняват в общия кеш на процесора. Използвайки метода Prime+Probe, базиран на оценка на промените във времето за достъп до кешираната информация, е възможно, чрез проверка на наличието на определени шаблони в кеша, да се наблюдават потоци от данни и знаци за изпълнение на код, свързани с изчисленията на цифровите подписи в TrustZone с доста висока точност.

По-голямата част от времето за генериране на цифров подпис с помощта на ECDSA ключове в чипове на Qualcomm се изразходва за извършване на операции за умножение в цикъл, като се използва вектор за инициализация, който е непроменен за всеки подпис (нунций). Ако нападателят може да възстанови поне няколко бита с информация за този вектор, става възможно да се извърши атака за последователно възстановяване на целия частен ключ.

В случая на Qualcomm две места, където е изтекла такава информация, са идентифицирани в алгоритъма за умножение: при извършване на операции за търсене в таблици и в условния код за извличане на данни въз основа на стойността на последния бит във вектора „nonce“. Въпреки факта, че кодът на Qualcomm съдържа мерки за противодействие на изтичането на информация през канали на трети страни, разработеният метод за атака ви позволява да заобиколите тези мерки и да определите няколко бита от стойността „nonce“, които са достатъчни за възстановяване на 256-битови ECDSA ключове.

Източник: opennet.ru

Добавяне на нов коментар