Badacze z firmy NCC Group wrażliwości () 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 SoC Snapdragon, które znalazły zastosowanie w smartfonach działających na platformie Android. Poprawki, które eliminują problem, są już 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 . 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 .
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 (). 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
