Klonowanie tokena RSA? Nawet nie blisko…

Przedwczoraj, na znanym blogu niebezpiecznik.pl został zamieszczony wpis z niepokojącą informacją

„Grupa kilku naukowców właśnie zademonstrowała sposób na `sklonowanie` tokena… „

Jako, że jednym z głównych moich zainteresowań jest kryptografia, z przyjemnością przeczytałem dokument przygotowany przez zespół w składzie Bardou, Focardi, Kawamoto, Simionato, Steel i Tsay.
Dokument ten przedstawia kilka usprawnień do znanego już od dawna (1998) ataku dokonanego przez D. Bleichenbacher’a pozwalającego uzyskać materiał wrażliwy poprzez serię wywołań standardowej funkcji API PKCS#11 C_UnwrapKey.
Pierwszą rzeczą, którą należy tutaj wyjaśnić, jest pojęcie Materiał Wrażliwy. Jest to informacja przenoszona poza tokenem w formie zaszyfrowanej. Najczęściej są to symetryczne klucze kryptograficzne (jak na przykład AES) służące do szybkiego szyfrowania dużych ilości danych (szyfrowanie symetryczne jest dużo szybsze od niesymetrycznego), ale także inne zaszyfrowane porcje danych.
Ponieważ dokument opisuje atak wykorzystujący wywołanie API mające w zamierzeniu zarządzać kluczami, często określenie Klucz jest używane jako Materiał Wrażliwy
Oryginalna metoda była na tyle wolna, że została nazwana „atakiem miliona pytań”, a sam atak został trochę zapomniany. Przytoczony na początku dokument spowodował burzę ze względu na zmniejszenie w bardzo pomysłowy sposób ilości wymaganych operacji na tokenie do wartości umożliwiających przeprowadzenie całego ataku w przeciągu godzin, czy nawet minut.
Jednak należy przypomnieć iż rozważana metoda ataku umożliwia na uzyskanie w formie jawnej jedynie danych podlegających szyfrowaniu kluczami RSA, nie zaś samych Kluczy RSA. Dlatego nie może być mowy o sklonowaniu tokena RSA!
Po tym zasadniczym wyjaśnieniu można przystąpić do analizy, jakie znaczenie praktyczne ma wynaleziona, nowa metoda.
Oceńmy fakty:

  1. Dostęp do funkcji C_UwrapKey możliwy jest tylko po otworzeniu sesji do tokena, czyli po podaniu hasła. Metoda ta korzysta z obiektu klucza prywatnego RSA i nie ma możliwości wywołania jej z kontekstu publicznego, a co za tym idzie bez wiedzy i zgody właściciela tokena.
  2. dane, które mogą wyciec muszą być wcześniej dostępne dla atakującego w formie zaszyfrowanej, co w praktyce jest trudne do realizacji.
  3. typowe zastosowania w biznesie tokenów RSA obejmują przede wszystkim autoryzację i podpis, tokeny wykorzystywane do szyfrowania jak i klucze przeznaczone do tego celu mają podwyższony poziom bezpieczeństwa (służą do tego odpowiednie atrybuty kluczy, stanowiące swoiste plany zastosowania, np. tylko do wymiany kluczy, czy tylko do szyfrowania danych użytkownika)
  4. Pomyślne przeprowadzenie ataku faktycznie umożliwia Wyprowadzenie poza system źródłowy kontroli nad danymi zaszyfrowanymi zaatakowanym kluczem symetrycznym.

Na podstawie powyższego można stwierdzić, że jeśli atak dojdzie do skutku, to tylko za autoryzacją użytkownika i tylko na danych, które są mało istotne z punktu widzenia bezpieczeństwa danych przechowywanych, gdyż Materiał Wrażliwy stanowiący Klucze Kryptografii symetrycznej jest zazwyczaj trudno dostępny nawet w formie zaszyfrowanej. Jako przykład weźmy system szyfrowania plików EFS, wykorzystywany w popularnym systemie plików NTFS, stworzonym przez Microsoft. Dostęp do zaszyfrowanych kluczy AES jest mocno ograniczony ze względu na dodatkowe zabezpieczenia tego systemu.

Czytaj dalej