Изследователи от NCC Group уязвимости () в чипов Qualcomm, позволяваща да се определи съдържанието на закритите ключове за криптиране, разположени в изолирания анклав Qualcomm QSEE (Qualcomm Secure Execution Environment), основан на технологията ARM TrustZone. Проблемът се проявява в SoC Snapdragon, който се е разпространил в смартфоните на базата на платформата Android. Поправките, които отстраняват проблема, вече в априлското обновление на Android и в новите версии на фърмуерите за чиповете Qualcomm. Подготовката на поправката е отнела на компания Qualcomm повече от година — първоначално уведомленията за уязвимостта са изпратени до Qualcomm на 19 март 2018 година.
Напомняме, че технологията ARM TrustZone позволява създаването на хардуерно изолирани защитени среди, които са напълно отделени от основната система и работят на отделен виртуален процесор с използването на отделна специализирана операционна система. Основната цел на TrustZone е осигуряването на изолирано изпълнение на обработчиците за криптографски ключове, биометрична автентикация, данни за плащане и друга конфиденциална информация. Взаимодействието с основната ОС се извършва косвено чрез интерфейса на диспетчера. Закритите криптографски ключове са разположени вътре в хардуерно изолирано хранилище на ключове, което при подходяща реализация позволява предотвратяване на тяхната изтичане в случай на компрометиране на основната система.
Уязвимостта е свързана с недоработка в реализацията на алгоритъма за обработка на елиптични криви, която е довела до изтичане на информация за хода на обработката на данни. Изследователите са разработили техника за атака чрез странични канали, позволяваща на базата на съществуващи косвени изтичания да възстановят съдържанието на закритите ключове, разположени в хардуерно изолираното . Изтичанията се определят на базата на анализ на активността на блока за предсказване на преходи и промени във времето за достъп до данните в паметта. В хода на експеримента изследователите успешно демонстрираха възстановяването на 224- и 256-битови ключове ECDSA от хардуерно изолираното хранилище на ключове, използвано в смартфона Nexus 5X. За възстановяване на ключа е била необходима генерация на около 12 хиляди цифрови подписи, за която са отишли над 14 часа. За провеждане на атаката е използван инструментарий .
Основната причина за проблема е съвместното използване на общи хардуерни компоненти и кеша за пресмятания в TrustZone и основната система. Изолацията е осъществена на ниво логическо разделение, но с използването на общи пресмятателни блокове и с оставяне на следи от изчисления и информация за адресите на преходите в общия кеш на процесора. С метода Prime+Probe, който оценява времето за достъп до кешираната информация, е възможно с достатъчно висока точност да се проследяват потоците от данни и признаците за изпълнение на код, свързан с изчисленията на цифрови подписи в TrustZone.
Голяма част от времето за генериране на цифрова подпись с използване на ключове ECDSA в чиповете на Qualcomm се изразходва за извършване на операции умножение в цикъл с неизменен за всяка подпись вектор на инициализация (). Ако нападателят успее да възстанови поне няколко бита от информацията за този вектор, то се появява възможност за нападение чрез последователно възстановяване на целия закрит ключ.
В случая с Qualcomm са открити две места за изтичане на такава информация в алгоритъма за умножение: при извършване на операции за търсене в таблици и в кода на условното извличане на данни на базата на стойността на последния бит от вектора "nonce". Въпреки наличието на мерки в кода на Qualcomm за противодействие на изтичането на данни чрез странични канали, разработеният метод на нападение позволява да се заобиколят тези мерки и да се определят няколко бита от стойността на "nonce", които са достатъчни за възстановяване на 256-битовите ключове ECDSA.
Източник: opennet.ru
