Yesterday, on well known polish security blog niebezpiecznik.pl, there was published new entry stated (in translation):
“Team of several scientists just demonstated method for `cloning` RSA tokens”
This scary post linked to this article.
I have read the original article, prepared by Bardou, Focardi, Kawamoto, Simionato, Steel and Tsay. This was interesting lecture, what describes several improvements to well known attack by D. Bleichenbacher. This attack allows to obtain sensitive material by serie of calls to standard PKCS#11 API function C_UnwrapKey
.
First imporant thing to explain is term Sensitive material. This is information existing outside the token in encrypted form. Most often this are symmetric cryptographical keys (e.g. AES keys), which are used for fast enryption of big amount of data. It is done this way, because symetrical encryption is much faster then asymetrical). Of course, the sensitive material can be also data for direct RSA encryption.
API Calls used in referenced document are indented for managing symetrical keys, so the term Key is used instead Sensitive material. That is why it can be misunderstanded as RSA keys can be compromised. It doesn’t work this way!
The originally described method was slow enough to call it “milion messages attack”, and it was marginalized. New poposition of impovements is importand because it significantly decreases required amount of token calls in really tricky way. The final amout of calls is small enough to successful attack in few hours or often minutes.
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:
- 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. - dane, które mogą wyciec muszą być wcześniej dostępne dla atakującego w formie zaszyfrowanej, co w praktyce jest trudne do realizacji.
- 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)
- 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.