Błąd Infineona to miliony kluczy RSA do wymiany. Można je złamać za grosze
Zasygnalizował ten problem Microsoft w swoich październikowychbiuletynach bezpieczeństwa – układ Trusted Platform Moduleprodukcji Infineona miał generować słabe pary kluczy, czyniącszyfrowanie w praktyce bezużytecznym. Za sprawą czeskich isłowackich badaczy z Uniwersytetu Masaryka dowiadujemy się jednak orealnej skali zagrożenia. Co najmniej jedna czwarta wszystkichmodułów TPM na świecie generowała słabe klucze. Laptopy,serwery, smartkarty, sprzętowe tokeny bezpieczeństwa takie jakpopularny Yubikey – wygenerowane na nich klucze można złamaćstosunkowo niewielkim kosztem. Katastrofa gorsza chyba nawet odostatnio ujawnionych lukw WPA2.
18.10.2017 16:28
Formalne szczegóły zostaną przedstawione 2 listopada, podczaskonferencji ACM, w artykule pt. The Return of Coppersmith'sAttack: Practical Factorization of Widely Used RSA Moduli,autorstwa Matusa Nemeca, Marka Sysa, Petra Svendy, Dusana Klineca iVasheka Matyi – badaczy z Uniwersytetu Masaryka, UniwersytetuWeneckiego oraz firmy Enigma Bridge. Jednak już teraz na łamachwiki CRoCS (Centre for Research on Cryptography and Security) możemysię bliżej zapoznać z błędem w generacji par kluczy RSA, którytrafił do biblioteki kryptograficznej wykorzystywanej w modułachTPM produkcji Infineon Technologies AG. Otrzymał on nazwę ROCA(CVE-2017-15361).
Sytuacja wygląda bardzo nieciekawie. Produkowane od 2012 rokumoduły, które otrzymały najwyższe certyfikaty bezpieczeństwaNIST FIPS 140-2 oraz CC EAL 5+, powszechnie wykorzystywane wstosowanych w e-administracji smartkartach, tokenachuwierzytelniających, modułach zabezpieczających laptopy i serwery,złamać można niewielkim kosztem. Wszystko to za sprawą błędu wfirmware, który sprawia, że klucze RSA-1024 i RSA-2048, generowaneza pomocą takich modułów, stają się podatne na atakfaktoryzacyjny. Jak niewielki to koszt? Zakładając zastosowanieprocesora Xeon E5-2650, odkrywcy przedstawiają następujący cennikodtworzenia klucza prywatnego ze znanego klucza publicznego:
- najsłabsze klucze 512-bitowe – 2 procesorogodziny, tj. 6centów
- słabe klucze 1024-bitowe – 97 procesorodni, tj. od 40 do 80dolarów
- powszechnie używane klucze 2048-bitowe – 51400 procesorodni,tj. 20-40 tys. dolarów.
Oczywiście nie trzeba czekać 141 lat na złamanie 2048-bitowegoklucza. Atak łatwo się paralelizuje: dla n procesorów, maksymalnyczas odtworzenia klucza prywatnego zostaje zmniejszony n-krotnie.Obfitość mocy obliczeniowej w chmurze sprawia, że nie trzebainwestować nawet we własne superkomputery, praktycznie każdyodpowiednio zasobny napastnik może te wadliwe klucze RSA-2048 złamaćw czasie kilku dni. Podane tu ceny wynikają właśnie z analizykosztów wykorzystania instancji obliczeniowych AmazonEC2 c4.
Można więc śmiało założyć, że np. wykradzione zaszyfrowanelaptopy z poufnymi firmowymi danymi, które do tej pory były pozazasięgiem przemysłowych szpiegów, już teraz poddawane sąsiłowemu łamaniu klucza – o ile pochodzą od takich firm jak HP,Lenovo czy Fujitsu, które z felernych czipów Infineonakorzystały. Tak samo podatne mogą być te słynne estońskie kartyidentyfikacyjne, wykorzystywane do załatwianiaspraw z e-administracją tego państwa.
Zastanawia nas tylko tytuł pracy czeskich i słowackich badaczy:powrót ataku Coppersmitha? AtakCoppersmitha stosowany jest w wypadkach, kiedy znany jest fragmentklucza prywatnego. Ujawniono też, że ta algorytmiczna podatnośćwynika ze specyficznej struktury wygenerowanych liczb pierwszych inie ma nic wspólnego ze słabością generatora liczbpseudolosowych.
Co mogą obecnie zrobićużytkownicy, obawiający się, że i ich szyfrowanie jest doniczego? Najprościej jest przesłać swój klucz publiczny RSA dowebowej aplikacji keychest.net/roca– sprawdzi ona, czy można z niego łatwo odtworzyć kluczprywatny.Można też podpisany PGP lub S-MIME e-mail wysłać podadresem roca@keychest.net, uzyskamy zwrotną odpowiedź od automatu.
Producenci sprzętu już wydająłatki do firmware,które naprawią błąd w algorytmie. Jeśli jednak załatanieurządzeń będzie niemożliwe, to warto zastosować innykryptosystem, np. na bazie krzywych eliptycznych (ECC), lub teżwygenerować bezpieczną parę kluczy RSA za pomocą np. bibliotekiOpenSSL – one nie będą podatne na to zagrożenie.