Luka w chipach Qualcomm, która umożliwia wyodrębnienie kluczy prywatnych z pamięci TrustZone

Naukowcy z Grupy NCC nieosłonięty szczegóły luki w zabezpieczeniach (CVE-2018-11976) w chipach Qualcomm, co pozwala na ustalenie zawartości prywatnych kluczy szyfrujących znajdujących się w izolowanej enklawie Qualcomm QSEE (Qualcomm Secure Execution Environment), opartej na technologii ARM TrustZone. Problem objawia się m.in bardzo Snapdragon SoC, który stał się powszechny w smartfonach opartych na platformie Android. Poprawki rozwiązujące problem już są w zestawie w kwietniowej aktualizacji Androida i nowych wersjach oprogramowania układowego dla chipów Qualcomm. Przygotowanie poprawki zajęło Qualcomm ponad rok; informacja o luce została pierwotnie wysłana do Qualcomm 19 marca 2018 r.

Przypomnijmy, że technologia ARM TrustZone pozwala na tworzenie izolowanych sprzętowo, chronionych środowisk, które są całkowicie oddzielone od głównego systemu i działają na osobnym wirtualnym procesorze korzystającym z osobnego, wyspecjalizowanego systemu operacyjnego. Głównym celem TrustZone jest zapewnienie izolowanej realizacji procesorów dla kluczy szyfrujących, uwierzytelniania biometrycznego, danych płatniczych i innych poufnych informacji. Interakcja z głównym systemem operacyjnym odbywa się pośrednio poprzez interfejs dyspozytorski. Prywatne klucze szyfrujące są przechowywane w izolowanym sprzętowo magazynie kluczy, który, jeśli zostanie prawidłowo wdrożony, może zapobiec ich wyciekowi w przypadku naruszenia bezpieczeństwa podstawowego systemu.

Podatność wynika z wady implementacji algorytmu przetwarzania krzywej eliptycznej, która doprowadziła do wycieku informacji o postępie przetwarzania danych. Badacze opracowali technikę ataku kanałem bocznym, która umożliwia wykorzystanie istniejących wycieków pośrednich do odzyskania zawartości kluczy prywatnych znajdujących się w izolowanym sprzętowo Magazyn kluczy Androida. Wycieki określane są na podstawie analizy aktywności bloku predykcji rozgałęzień oraz zmian czasu dostępu do danych w pamięci. W eksperymencie badacze pomyślnie zademonstrowali odzyskiwanie 224- i 256-bitowych kluczy ECDSA z izolowanego sprzętowo magazynu kluczy używanego w smartfonie Nexus 5X. Odzyskanie klucza wymagało wygenerowania około 12 tysięcy podpisów cyfrowych, co zajęło ponad 14 godzin. Narzędzia użyte do przeprowadzenia ataku Cachegrab.

Główną przyczyną problemu jest współdzielenie wspólnych komponentów sprzętowych i pamięci podręcznej do obliczeń w TrustZone i w systemie głównym - izolacja odbywa się na poziomie separacji logicznej, ale przy użyciu wspólnych jednostek obliczeniowych i ze śladami obliczeń oraz informacjami o gałęzi adresy są składowane we wspólnej pamięci podręcznej procesora. Stosując metodę Prime+Probe, opartą na ocenie zmian czasu dostępu do informacji buforowanych, można poprzez sprawdzenie obecności określonych wzorców w pamięci podręcznej monitorować przepływy danych i znaki wykonania kodu związane z obliczeniami podpisów cyfrowych w TrustZone z dość dużą dokładnością.

Większość czasu na generowanie podpisu cyfrowego przy użyciu kluczy ECDSA w chipach Qualcomm spędza się na wykonywaniu operacji mnożenia w pętli przy użyciu wektora inicjującego, który jest niezmienny dla każdego podpisu (nuncjusz). Jeśli atakującemu uda się odzyskać przynajmniej kilka bitów z informacją o tym wektorze, możliwe staje się przeprowadzenie ataku mającego na celu sekwencyjne odzyskanie całego klucza prywatnego.

W przypadku Qualcomma w algorytmie mnożenia zidentyfikowano dwa miejsca wycieku takich informacji: podczas wykonywania operacji wyszukiwania w tabelach oraz w kodzie warunkowego wyszukiwania danych opartym na wartości ostatniego bitu wektora „nonce”. Pomimo tego, że kod Qualcomm zawiera środki przeciwdziałające wyciekom informacji kanałami stron trzecich, opracowana metoda ataku pozwala ominąć te środki i określić kilka bitów wartości „nonce”, które wystarczą do odzyskania 256-bitowych kluczy ECDSA.

Źródło: opennet.ru

Dodaj komentarz