Luka w chipach Qualcomm, która umożliwia wyciąganie kluczy prywatnych z magazynu TrustZone

Badacze z firmy NCC Group ujawnili szczegóły wrażliwości (CVE-2018-11976) w chipach Qualcomm, umożliwiającej określenie zawartości ukrytych kluczy szyfrowania, umieszczonych w izolowanej enklawie Qualcomm QSEE (Qualcomm Secure Execution Environment), opartej na technologii ARM TrustZone. Problem występuje w większości SoC Snapdragon, które znalazły zastosowanie w smartfonach działających na platformie Android. Poprawki, które eliminują problem, są już włączone w kwietniowej aktualizacji Androida oraz w nowych wersjach oprogramowania układowego dla chipów Qualcomm. Przygotowanie poprawki zajęło firmie Qualcomm ponad rok — pierwotnie informacje o wrażliwości zostały przekazane do Qualcomm już 19 marca 2018 roku.

Przypomnijmy, że technologia ARM TrustZone pozwala na tworzenie sprzętowo izolowanych, zabezpieczonych środowisk, które są całkowicie oddzielone od głównego systemu i działają na oddzielnym wirtualnym procesorze z wykorzystaniem osobnego, wyspecjalizowanego systemu operacyjnego. Głównym celem TrustZone jest zapewnienie izolowanego wykonania procesorów kluczy szyfrowania, biometrycznej autoryzacji, danych płatniczych i innych poufnych informacji. Interakcja z głównym systemem operacyjnym odbywa się pośrednio przez interfejs dystrybucji. Ukryte klucze szyfrowania są umieszczane wewnątrz sprzętowo izolowanego magazynu kluczy, co przy odpowiedniej implementacji pozwala zapobiec ich wyciekowi w przypadku kompromitacji głównego systemu.

Wrażliwość wiąże się z niedoskonałością w implementacji algorytmu przetwarzania krzywych eliptycznych, co prowadziło do wycieku informacji o postępie przetwarzania danych. Naukowcy opracowali technikę ataku opartą na kanałach bocznych, pozwalającą na odzyskanie treści ukrytych kluczy na podstawie istniejących pośrednich wycieków, umieszczonych w sprzętowo izolowanym Android Keystore. Wycieków dokonuje się na podstawie analizy aktywności bloku przewidywania przejść oraz zmiany czasu dostępu do danych w pamięci. W trakcie eksperymentu badacze skutecznie wykazali odtworzenie 224- i 256-bitowych kluczy ECDSA z sprzętowo izolowanego magazynu kluczy, wykorzystywanego w smartfonie Nexus 5X. Do odtworzenia klucza potrzebna była generacja około 12 tysięcy podpisów cyfrowych, co zajęło ponad 14 godzin. Do przeprowadzenia ataku użyto narzędzi Cachegrab.

Główną przyczyną problemu jest wspólne użycie wspólnych komponentów sprzętowych i pamięci podręcznej do obliczeń w TrustZone oraz w głównym systemie — izolacja odbywa się na poziomie logicznego podziału, ale z wykorzystaniem wspólnych bloków obliczeniowych, co prowadzi do osadzania śladów obliczeń i informacji o adresach przejść w wspólnej pamięci podręcznej procesora. Metoda Prime+Probe, oparta na ocenie zmiany czasu dostępu do zbuforowanych informacji, pozwala na dość precyzyjne śledzenie przepływów danych i oznak wykonywania kodu związanego z obliczeniami podpisów cyfrowych w TrustZone poprzez weryfikację obecności określonych wzorców w pamięci podręcznej.

Większość czasu potrzebnego na utworzenie podpisu cyfrowego z użyciem kluczy ECDSA w chipach Qualcomm jest przeznaczona na wykonywanie operacji mnożenia w pętli, korzystając z niezmiennego dla każdego podpisu wektora inicjalizacyjnego (nonce). Jeśli atakujący zdoła odzyskać chociaż kilka bitów informacji o tym wektorze, uzyska możliwość przeprowadzenia ataku poprzez sekwencyjne odtwarzanie całego klucza prywatnego.

W przypadku Qualcomm zidentyfikowano dwa miejsca wycieku podobnych informacji w algorytmie mnożenia: podczas wykonywania operacji wyszukiwania w tabelach oraz w kodzie warunkowego wyciągania danych na podstawie wartości ostatniego bitu wektora „nonce”. Pomimo wprowadzenia w kodzie Qualcomm środków zaradczych przeciwko wyciekom informacji przez kanały zewnętrzne, opracowana metoda ataku pozwala na ich ominięcie i określenie kilku bitów wartości „nonce”, co wystarcza do odzyskania 256-bitowych kluczy ECDSA.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster