18:28
25/6/2012

Tokeny wraz ze standardowymi hasłami są wykorzystywane do tzw. silnego, dwu-składnikowego uwierzytelnienia. Hasło to coś co wiesz. Token to coś co masz. Żeby atakujący dostał się do chronionego systemu i podszył pod ciebie, musi nie tylko znać twoje hasło, ale również mieć twój token. Grupa kilku naukowców właśnie zademonstrowała sposób na “sklonowanie” tokena…

Atak na tokeny/smartcardy: wyciągnięcie kluczy

W tym raporcie znajdziesz opis ataku typu padding oracle, który pozwala na wyciągnięcie kluczy kryptograficznych zapisanych na tokenie/smartcardzie RSA SecurID 800. Atak padding-oracle jest atakiem typu side-channel i polega na tym, że błędnie dopełniony tekst zaszyfrowany podany na wejście tokena generuje błędy, na podstawie których można odczytać test jawny bez znajomości klucza kryptograficznego przechowywanego na tokenie.

Na tokenach znajdują się 2 rodzaje kluczy. Klucz urządzenia (ten nie jest znany) i klucz użytkownika (np. do VPN, który jest importowany/exportowany w formie zaszyfrowanej). Zaprezentowany atak polega na rozszyfrowaniu klucza użytkownika (poznamy go) przy pomocy klucza urządzenia (tego nie poznamy) poprzez funkcję API, umożliwiającą import i zdradzającą informacje dot. poprawnego/niepoprawnego paddingu w importowanym, zaszyfrowanym materiale.
securid-800

Token RSA SecurID 800

Badacze usprawnili atak Bleichenbachera na RSA PKCS#1v1.5 jeśli chodzi o wariant z kryptografią asymetryczną oraz atak na CBC Vaudenay’a w przypadku kryptografii symetrycznej.

Ile trwa atak i kto jest na niego podatny?

Aby rozszyfrować secret (np. klucz do VPN) przy pomocy tokena (lub smartcarda) wymagane jest wykonanie 9400 operacji (mediana: 3 800), co trwa ok. 13 minut. Na atak podatne są nie tylko tokeny RSA, ale również

  • estońskie dowody osobiste (smartcardy)
  • Aladdin eTokenPro,
  • iKey 2032 od SafeNet
  • CyberFlex od Gemalto
  • Siemensowy CardOS.

Czasy rozszyfrowywania tekstu zaszyfrowanego różni się w zależności od tokena/smartcarda. Dla estońskiego dowodu osobistego podano czas ok. 13 godzin — i daltego Estończycy określili ten atak jako małopraktyczny.

Tokeny podatne na atak

Tokeny podatne na atak

Co to wszystko oznacza w praktyce?

Krótko mówiąc, podpięcie takiego tokena do komputera, który jest zainfekowany złośliwym oprogramowaniem, może spowodować a) przechwycenie eksportowanego (ale zaszyfrowanego!) klucza z tokenu b) jeśli token znajduje się w komputerze przez 13 min., jego szyfrowanie eksportowanego klucza zostanie złamane, rozszyftowany klucz zostanie wyciągnięty, a atakujący będzie mógł swobodnie podszywać się pod właściciela tokenu (np. podpiąć się do jego VPN-a).

Warto przypomnieć, że rok temu nastąpiło potężne włamanie na serwery RSA, a atakujący wykradli wtedy seedy tokenów RSA SecurID. Chwilę potem koncern wojskowy Lockheed Martin upublicznił informacje dotyczące włamania, w których stwierdził, że włamanie do RSA pomogło atakującym w ataku na Lockheed Martina.

Jak na razie RSA odmawia komentarzy w sprawie ataków na swoje tokeny.

Przeczytaj także:

32 komentarzy

Dodaj komentarz
  1. “Jak na razie RSA odmawia komentarzy w sprawie ataków na swoje tokeny.”
    Bo to koniec tej firmy. Zaufanie rzecz bezcenna. W tej chwili nie mają żadnych kontrargumentów.

    • Jak to nie mają ? Wydadzą oświadczenie, w którym poinformują klientów, że tokena nie należy podpinać do PC na dłużej niż 13 minut ;)

    • No tak ale 13 minut to jest średnia, jeśli komputer ma większą moc obliczeniową to zrobi to szybciej.

    • Nie do końca prawda, bo atak zależy od prędkości układu na tokenie :>

    • Jeżeli malware będzie sprytne, to będzie sprawdzało klucz dopóki jest w USB, a jak się go podłączy ponownie, to zacznie od miejsca, gdzie ostatnio skończyło.

      Więc klucz nie może przebywać sumarycznie w jednej stacji dłużej niż 13 minut, i to pod warunkiem, że malware nie będzie sobie wzajemnie rozsyłało informacji o statusie łamania per klucz. Bo wtedy to w sumie nie będzie można go już nigdzie wkładać, nawet na chwilkę ;)

    • “Bo wtedy to w sumie nie będzie można go już nigdzie wkładać, nawet na chwilkę ;)” Cóż, jest pewne miejsce, gdzie będzie można go sobie włożyć, tak w ramach “głębokiego ukrycia”…

  2. Czy nie lepsze były tokeny RSA SecurID bez USB – samo wklepywanie cyferek?

    • security vs usability

    • @Marcin: zależy do czego. Tokeny na które przypuszczono atak, to tak naprawdę “bezpieczne przechowalnie kluczy prywatnych”. To jest ich zadanie. Są też inne tokeny, takie które TYLKO “wypluwają cyferki”, a nie przechowują kluczy klienta (tych atak nie dotyczy). SecurID 800, o którym piszą naukowcy, akurat tak się złożyło, że jest tokenem i “tego” i “tamtego” rodzaju ;)

  3. Dwuskładnikowego, a nie “dwu-składnikowego”, Bleichenbachera i Vaudenaya zamiast “Bleichenbacher’a” i “Vaudenay’a”, ww. zamiast “w/w”… A co, poczepiam się.

    • Ja tu wpadam czytać o hakerach a nie pospać na wykładzie p. Jana Miodka :D Zazdrościsz że nie masz bloga o hakerkach to se go załóż i daj link :D Wpadnę powytykać Ci literówki, Czepaku.

    • To i ja sie poczepiam. Skad Ci sie wzielo Bleichenbacher’a skoro, nie konczy sie ono samogloska?

    • Faktycznie, te czepialstwo zaczyna być denerwujące. Nie można innym kanałem? Jakoś tak out-of-band?

  4. (mediana: 3 800), i czas magicznie spada do jakichś 5 minut? :D

  5. Token powinien mieć zaimplementowane opóźnienie, tak aby atak siłowy z odpytywaniem zajął znacznie więcej czasu. Z drugiej strony, nikt się tego nie spodziewał, że komuś będzie potrzebne masowe odpytywanie tokena..

  6. W źródle nie ma słowa o Aladdin eToken – czy tylko wersja Pro jest podatna?

    • Jak nie ma słowa? Patrz tabelka, która jest prosto z raportu.

    • Jest tylko info nt. eToken Pro – nie ma danych o eToken bez Pro…

  7. Jeśli mnie pamięć nie myli to Lockheed Martin w kwestii RSA nigdy nie przyznał się publicznie do wykorzystania w ataku, informacji wykradzionych z RSA…

    • Bo oni się nie włamali do LM. RSA wykryło kradzież seedów w jej trakcie i przez większość czasu kontrolowało co się dzieje. LM był od początku powiadomiony, że ktoś zassał konkretnie ich seedy a nie pierwsze z brzegu, więc miał czas na zablokowanie dostępu.

  8. Huh, mojego “tokena” (wtf?) nie da się podpiąć do komputera.

  9. Hmm… Może niedokładnie przeczytałem podlinkowany dokument, ale gdzie tam jest napisane, że udało się odczytać klucz zapisany *na* kryptokarcie? Autorzy piszą, o możliwości odzyskania plaintextu (w tym wypadku klucza przesyłanego *do* urządzenia) poprzez odpowiednie modyfikacje szyfrogramu, vide:
    Abstract: We show how to exploit the encrypted key import functions of a variety of different cryptographic devices to reveal the imported key. The attacks are padding oracle attacks, where error messages resulting from incorrectly padded plaintexts are used as a side channel.
    Wg artykułu na wikipedii, zastosowanie ataku typu adaptive chosen-ciphertext może zdradzić informacje na temat klucza, ale w tym wypadku chyba jeszcze trochę do tego brakuje.
    Pisanie, że “[…] podpięcie takiego tokena do komputera […] spowoduje, że jeśli token znajduje się w komputerze przez 13 min., jego klucze zostaną wyciągnięte” jest chyba lekkim “nadużyciem” :)

    • Tak, to zbyt daleko idące uproszczenie, zmodifikowaliśmy tekst w ten sposób, aby było jaśniejsze, że na tokenach znajdują się 2 rodzaje kluczy. Klucz urządzenia (ten nie jest znany) i klucz użytkownika (np. do VPN, który jest importowany/exportowany w formie zaszyfrowanej). Atak oczywiście dotyczy rozszyfrowania klucza użytkownika (ten poznamy) przy pomocy klucza urządzenia (tego nie poznamy)

  10. no a ja mam tokena RSA którego nie da się podłączyć do komputera bo nie ma żadnego portu…

    • Bardzo się cieszymy, że podzieliłeś się z nami tą informacją… :)

    • Mam nadzieję, że Bluetooth w nim też wyłączyłeś.

  11. a czy to ma być ciągły czas 13 minut czy może być przerywany?

    • coit^h^h^h^h pluginus interruptus

      przepraszam… tak mi się skojarzyło…

    • Kontakt przerywany nie jest skutecznym środkiem zapobiegawczym.

  12. Problem polega na tym, że ten atak nie ma większego znaczenia biznesowego. Klucze RSA na tokenach nie podlegają atakowi. Nie ma możliwości sklonowania tokena. Jedyne co ten atak daje to w pewnych specyficznych warunkach możliwość uzyskania w formie niezaszyfrowanej danych, które normalnie by zostały na tokenie po wykonaniu operacji C_UnwrapKey. Po więcej szczegółów zapraszam na swoją stronę.

  13. Koptok:
    “Faktycznie, te czepialstwo zaczyna być denerwujące. Nie można innym kanałem? Jakoś tak out-of-band?”

    Niebezpiecznik stoi chyba na WordPressie, więc może jest opcja. Trzeba wpisać na czarną listę np. #GrammarNazi i komentarze z takim tekstem automatycznie wpadną do moderacji. Tam zarządzający treścią będzie mógł nanieść poprawki i usunąć wiadomość, która nie ma wiele wspólnego z meritum sprawy.

Twój komentarz

Zamieszczając komentarz akceptujesz regulamin dodawania komentarzy. Przez moderację nie przejdą: wycieczki osobiste, komentarze nie na temat, wulgaryzmy.