Miliony kluczy RSA generowanych sprzętowo podatnych na złamanie

dodał 16 października 2017 o 21:20 w kategorii Krypto  z tagami:
Miliony kluczy RSA generowanych sprzętowo podatnych na złamanie

(źródło: takacsi75)

Dzień złych wiadomości w świecie bezpieczeństwa się jeszcze nie skończył – ujawniono dzisiaj, że na skutek błędu w popularnej bibliotece kryptograficznej można odzyskać niektóre klucze prywatne RSA tylko na podstawie kluczy publicznych.

Czescy i słowaccy naukowcy poddali analizie duże liczby kluczy RSA i odnaleźli w wynikach ciekawe nieprawidłowości. Okazało się, że procesory bardzo popularnego producenta, firmy Infineon, korzystały z niedoskonałego algorytmu generowania liczb pierwszych w trakcie tworzenia kluczy RSA. Procesory Infineona znajdują się w sprzęcie producentów takich jak Microsoft, Google, HP, Lenovo, Fujitsu czy Yubico a liczba podatnych kluczy używanych dzisiaj w internecie może iść w miliony. Wszyscy, którzy generowali klucze na dedykowanych urządzeniach (czyli teoretycznie w bezpiecznym środowisku, zamiast na komputerze, który mógł być zainfekowany), powinni sprawdzić, czy ich klucze są na atak podatne.

512, 1024 i 2048 bitów

Algorytm RSA opiera się na operacjach matematycznych wykonywanych na liczbach pierwszych. Kluczem do bezpieczeństwa jest pewność, że liczby pierwsze użyte w obliczeniach są naprawdę losowe. Analiza naukowców wykazała, że od roku 2012 procesory Infineona tworzyły liczby pierwsze o specyficznej, określonej strukturze, pozwalając na ich odtworzenie – co skutkuje możliwością obliczenia klucza prywatnego na podstawie znajomości klucza publicznego. Obliczenia są pracochłonne, lecz wykonalne. Czas i koszty dla procesora Intel E5-2650 v3@3GHz Q2/2014 wyglądają następująco:

  • klucz RSA 512 bitów – 2 godziny pracy CPU (koszt 21 groszy),
  • klucz RSA 1024 bitów – 97 dni pracy CPU (koszt 150 – 300 PLN),
  • klucz RSA 2048 bitów – 141 lat pracy CPU (koszt 70 000 – 140 000 PLN).

Dla lepszego zrozumienia skali problemu – bez odkrycia naukowców proces łamania klucza o długości 2048 bitów trwałby miliony razy dłużej niż dotychczasowe życie wszechświata. Możliwe jest także przeprowadzenie obliczeń dla kluczy o długości 4096 bitów, lecz czas trwania operacji powoduje jej nieopłacalność.

Co jest podatne

Sama podatność w kluczach RSA pewnie wielu osobom niezbyt dużo mówi. Autorzy badania wskazują, gdzie znaleźli klucze podatne na złamanie. Były to elektroniczne dokumenty (w tym estoński dowód osobisty), tokeny uwierzytelniające, urządzenia „trusted boot”, klucze podpisujące oprogramowanie, klucze TLS/HTTPS oraz klucze PGP. Potwierdzili do tej pory istnienie co najmniej 760 tysięcy podatnych kluczy, jednak szacują, że ich realna liczba może być od 100 do 1000 razy większa. Odtworzenie klucza prywatnego może pozwolić na wiele innych ataków – odszyfrowanie korespondencji lub ruchu internetowego, podszycie się pod użytkownika czy też sfałszowanie podpisów cyfrowych. Dodatkowo podatne na atak okazały się moduły TPM u 10 różnych producentów laptopów. Szczególnie poważnym problemem jest TPM w wersji 1.2 – jego klucze pozwalają na odszyfrowanie dysku zabezpieczonego BitLockerem. Odpowiednie zalecenia wydały Microsoft oraz Google.

Co robić, jak szyfrować

Badacze udostępnili narzędzia umożliwiające weryfikację używanych kluczy. Proponujemy – szczególnie firmom – weryfikację WSZYSTKICH kluczy RSA używanych w całej organizacji. Tak, to dużo roboty, ale analiza powłamaniowa jest bardziej pracochłonna. Dostępne narzędzia:

Badacze piszą, że testy są bardzo rzetelne i nie są obarczone błędami – test nie uzna za podatny dobrego klucza ani za niepodatny klucza złego. Złe klucze trzeba szybko odwołać i wymienić na lepsze – np. generowane przez OpenSSL (jest bezpieczny) lub inny algorytm (np. ECC zamiast RSA).

Chcielibyśmy, by to był koniec złych wiadomości na dzisiaj, a tu czeka kolejna kampania Thomasa do opisania…