Luka TPM-Fail umożliwiająca odzyskanie kluczy przechowywanych w modułach TPM

Zespół naukowców z Worcester Polytechnic Institute, Uniwersytetu w Lubece i Uniwersytetu Kalifornijskiego w San Diego rozwinęła się Metoda ataku typu side-channel pozwalająca odzyskać wartość kluczy prywatnych przechowywanych w module TPM (Trusted Platform Module). Atak otrzymał kryptonim Błąd modułu TPM i wpływa na fTPM (wdrożenie oprogramowania w oparciu o oprogramowanie sprzętowe działające na oddzielnym mikroprocesorze wewnątrz procesora) firmy Intel (CVE-2019-11090) i sprzętowy moduł TPM na chipach STMicroelectronics ST33 (CVE-2019-16863).

Badacze opublikowane prototypowy zestaw narzędzi do ataków i zademonstrował możliwość odzyskania 256-bitowego klucza prywatnego używanego do generowania podpisów cyfrowych przy użyciu algorytmów krzywych eliptycznych ECDSA i EC-Schnorr. W zależności od uprawnień dostępu całkowity czas ataku na systemy Intel fTPM wynosi 4-20 minut i wymaga analizy 1-15 tys. operacji. Zaatakowanie systemów chipem ST33 i przeanalizowanie około 80 tysięcy operacji w celu wygenerowania podpisu cyfrowego zajmuje około 40 minut.

Badacze wykazali także możliwość przeprowadzenia zdalnego ataku w szybkich sieciach, co umożliwiło odzyskanie klucza prywatnego w sieci lokalnej o przepustowości 1 GB w warunkach laboratoryjnych w ciągu pięciu godzin, po zmierzeniu czasu odpowiedzi przez 45 sesji uwierzytelniania z serwerem VPN opartym na oprogramowaniu strongSwan, który przechowuje swoje klucze w podatnym na ataki TPM.

Metoda ataku polega na analizie różnic w czasie wykonania operacji w procesie generowania podpisu cyfrowego. Oszacowanie opóźnienia obliczeń pozwala określić informacje o poszczególnych bitach podczas mnożenia skalarnego w operacjach na krzywych eliptycznych. W przypadku ECDSA określenie nawet kilku bitów z informacją o wektorze inicjującym (nonce) wystarczy, aby przeprowadzić atak mający na celu sekwencyjne odzyskanie całego klucza prywatnego. Aby skutecznie przeprowadzić atak, konieczna jest analiza czasu wygenerowania kilku tysięcy podpisów cyfrowych utworzonych na danych znanych atakującemu.

Słaby punkt wyłączony firmy STMicroelectronics w nowej odsłonie chipów, w których realizacja algorytmu ECDSA została uwolniona od korelacji z czasem wykonania operacji. Co ciekawe, dotknięte chipy STMicroelectronics są stosowane także w sprzęcie spełniającym poziom bezpieczeństwa CommonCriteria (CC) EAL 4+. Naukowcy przetestowali także chipy TPM firm Infineon i Nuvoton, ale nie doszło do wycieku ze względu na zmiany czasu obliczeń.

W procesorach Intela problem pojawia się począwszy od rodziny Haswell wydanej w 2013 roku. Należy zauważyć, że problem dotyczy szerokiej gamy laptopów, komputerów stacjonarnych i serwerów produkowanych przez różnych producentów, w tym Dell, Lenovo i HP.

Firma Intel umieściła poprawkę w Listopad aktualizacja oprogramowania sprzętowego, w której oprócz rozpatrywanego problemu, wyłączony kolejne 24 luki, z których dziewięć ma wysoki poziom zagrożenia, a jedna jest krytyczna. W przypadku tych problemów podano jedynie ogólne informacje, przykładowo wspomniano, że krytyczna luka (CVE-2019-0169) wynika z możliwości spowodowania przepełnienia sterty po stronie Intel CSME (Converged Security and Management Engine ) oraz środowiska Intel TXE (Trusted Execution Engine), które umożliwiają atakującemu zwiększenie swoich uprawnień i uzyskanie dostępu do poufnych danych.

Można to również zauważyć ujawnienie wyniki audytu różnych zestawów SDK pod kątem tworzenia aplikacji wchodzących w interakcję z kodem wykonywanym po stronie izolowanych enklaw. W celu zidentyfikowania problematycznych funkcji, które można wykorzystać do przeprowadzenia ataków, zbadano osiem zestawów SDK: Intel SGX-SDK, SGX-LKL, OpenEnklawa Microsoftu, Grafen,
Rdza-EDP и Google Asylo dla Intela SGX, Zwornik dla RISC-V i Sankus dla Sancus TEE. Podczas kontroli tak było ujawnił 35 podatności, na podstawie których opracowano kilka scenariuszy ataków, które pozwalają wydobyć klucze AES z enklawy lub zorganizować wykonanie swojego kodu poprzez stworzenie warunków do uszkodzenia zawartości pamięci.

Luka TPM-Fail umożliwiająca odzyskanie kluczy przechowywanych w modułach TPM

Źródło: opennet.ru

Dodaj komentarz