Właśnie takiej nazwy użyto do określenia nowo odkrytego błędu w implementacji protokołu SSL/TLS. Inna nazwa błędu – zdradzająca trochę więcej jego szczegółów – to Factoring Attack on RSA-EXPORT Keys. Wykorzystanie podatności może prowadzić do złamania szyfrowanej komunikacji.
Błąd, do którego przypisany został identyfikator CVE-2015-0204, został odkryty przez badaczy z jednego z francuskich instytutów (INRIA) oraz Microsoftu.
Scenariusz ataku
Do skutecznego przeprowadzenia ataku konieczne jest wykonanie poniższych kroków:
- Klient przesyła do serwera żądanie Client Hello w SSL Handshake.
- Atakujący podmienia treść tego żądania prosząc o szyfrowanie z użyciem tzw. wersji eksportowej RSA.
- Serwer spełnia prośbę atakującego, przesyłając mu tymczasowy 512 bitowy klucz publiczny RSA.
- Klient akceptuje ten klucz. Ten punkt to sedno błędu FREAK.
- Atakujący odzyskuje klucz prywatny na podstawie przechwyconego klucza publicznego. Dla kluczy 2048 bitowych proces ten trwałby nieopłacalnie długo. Jednak w przypadku kluczy 512 bitowych zadanie to można wykonać stosunkowo szybko niewielkim kosztem.
- Klient generuje i szyfruje za pomocą 512 bitowego klucza publicznego tzw. pre-master secret. Atakujący, będący już w posiadaniu klucza prywatnego, może go zdeszyfrować. Jest to równoznaczne z możliwością odczytania całej, przyszłej komunikacji*.
* Przynajmniej do momentu zmiany tymczasowego klucza. Problem polega na tym, że klucz ten nie zawsze jest używany zgodnie ze swoim przeznaczeniem (nazwą), przez co atakujący ma czas na złamanie klucza prywatnego.
Przeprowadzenie skutecznego ataku w rzeczywistym środowisku nie jest proste i wymaga spełnienia kilku warunków:
- Znalezienie podatnego serwera (oferującego słabe szyfrowanie i nie zmieniającego klucza tymczasowego zbyt często).
- Znalezienie podatnego klienta.
- Uzyskanie dostępu do ruchu sieciowego pomiędzy klientem a serwerem.
- Złamanie klucza.
Podatne systemy
Mimo, iż wspomniana wcześniej wersja eksportowa RSA jest pozostałością z ubiegłego wieku, do dzisiaj nie usunięto jej z konfiguracji wielu serwerów. Listę zapominalskich możecie sprawdzić m.in. tu. Na tej samej stronie sprawdzicie też czy Wasza przeglądarka jest podatna na atak.
Wśród klientów bezpieczne są wszystkie nowe przeglądarki. Mimo to podatność może dotknąć sporej części użytkowników, ponieważ FREAK nie ominął:
- biblioteki OpenSSL – korzysta z niej m.in. Android Browser,
- Apple Secure Transport, wykorzystywany w produktach Apple.
Google już przygotowało odpowiednią poprawkę. Apple zapowiedziało, że łatka będzie dostępna w następnym tygodniu.
Co ciekawe, poprawka dla OpenSSL była gotowa już na początku stycznia o czym nawet sam informowałem. Wtedy jednak, przyznaję, nie zwróciłem większej uwagi na ten błąd. Być może wpływ miało na to nadanie mu niskiego priorytetu? A być może z uznałem, że prawdopodobieństwo wykonania skutecznego ataku nie jest zbyt wysokie i nie warto o tym wspominać? O tym czy, i jak bardzo mogłem się wtedy pomylić nie doceniając tej podatności, dowiemy się pewnie niebawem :-)