Qualcomm също е уязвим, възможно е да се извлекат частни ключове

пълен_ecdsa_1

В предишни публикации разбрахме, че чиповете Broadcom бяха уязвими за атакии сега този път изследователи от компанията NCC Group разкри подробности за уязвимостта (CVE-2018 11976- ) на чипове Qualcomm, че ви позволява да определите съдържанието на частните ключове за криптиране разположен в изолирания Qualcomm QSEE (Qualcomm Secure Execution Environment) анклав, базиран на ARZ TrustZone технология.

Проблемът се проявява в повечето SnaCdragon SoC, на смартфони, базирани на Android. Поправките за проблема вече са включени в априлската актуализация на Android и новите версии на фърмуера за чипове Qualcomm.

Qualcomm отне повече от година, за да подготви решение: Първоначално информацията за уязвимостта беше изпратена до Qualcomm на 19 март 2018 г.

Технологията ARM TrustZone ви позволява да създавате защитени хардуерни изолирани среди, които са напълно отделени от основната система и работят на отделен виртуален процесор, използвайки отделна специализирана операционна система.

Основната цел на TrustZone е да осигури изолирано изпълнение на манипулатори на ключове за криптиране, биометрично удостоверяване, данни за фактуриране и друга поверителна информация.

Взаимодействието с основната операционна система се осъществява индиректно чрез диспечерския интерфейс.

Частните ключове за криптиране се поставят в хардуерно изолирано хранилище на ключове, което, ако е правилно внедрено, предотвратява изтичането им, ако основната система е компрометирана.

Относно проблема

Уязвимостта е свързана с неуспех в изпълнението на алгоритъма за обработка на елиптични криви, което доведе до изтичане на информация за обработката на данните.

Изследователите са се развили техника на атака на трета страна, която позволява, въз основа на непряко изтичане, rизвличане на съдържанието на частните ключовеs се намира в хардуерно изолиран Android Keystore.

Течовете се определят въз основа на анализ на активността на преходите на блока за прогнозиране и промени във времето за достъп до данни в паметта.

По време на експеримента, Изследователите успешно демонстрираха възстановяването на 224- и 256-битови ECDSA ключове от изолиран магазин за ключове върху хардуера, използван в смартфона Nexus 5X.

За да се възстанови ключът, бяха необходими около 12 14 цифрови подписа за генериране, което отне повече от XNUMX часа. За извършване на атаката е използван инструментариумът Cachegrab.

Основната причина за проблема е споделянето на общи кеш и хардуерни компоненти за изчисления в TrustZone и в хост системата: изолирането се извършва на ниво логическо разделяне, но чрез използване на общи изчислителни блокове и задаване на изчислителни следи и информация за скока адреси в общия кеш на процесора.

Използвайки метода Prime + Probe, въз основа на оценка на промяната във времето за достъп до кешираната информация, можете да проверите наличието на определени модели в кеша с достатъчно висока точност на потоците от данни и знаците за изпълнение на кода, свързани с цифровия подпис изчисления в TrustZone.

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

Si нападателят може да възстанови поне няколко бита с информация за този вектор, възможно е да започнете атака срещу последователното възстановяване на целия частен ключ.

В случая на Qualcomm бяха разкрити две точки на изтичане на тази информация в алгоритъма за умножение: при извършване на справки за таблици и в условния код за извличане на данни въз основа на стойността на последния бит във вектора "nonce".

Въпреки факта, че кодът на Qualcomm съдържа мерки за противодействие на изтичането на информация в канали на трети страни, разработеният метод за атака ви позволява да заобиколите тези мерки и да дефинирате някои битове от стойността "nonce", което е достатъчно за възстановяване на 256 ECDSA ключа бита.