Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book
Klonowanie kart chipowych w praktyce (pre-play attack)
Badacze z uniwersytetu Cambridge opublikowali pracę pokazującą z dość dużą dokładnością jak wykonać transakcję finansową (np. wypłata z bankomatu) sklonowaną kartą chipową. Klonowanie zostało tutaj zdefiniowane jako wykonanie operacji nierozróżnialnej po stronie banku (np. na podstawie logów) z operacją wykonaną kartą oryginalną.
Oczywiście karty chipowe są po pierwsze odpowiednio zabezpieczone fizycznie (przechowywanie odpowiednich danych w hardware), po drugie cała transakcja kartą jest zabezpieczona kryptograficznie (m.in. używane są podpisy RSA czy liczone są sumy MAC; dla dociekliwych polecam sekcję III powyższej pracy – „OVERVIEW OF AN ATM TRANSACTION”). W całej transakcji finansowej bierze też udział kilka stron – właściciel karty (czy dokładniej: sama karta będąca mini-komputerem), terminal POS / bankomat, wreszcie wystawca karty.
Badacze zaczęli przyglądać się wszystkim ww. komponentom i w trakcie rozpoznania wpadł im w oko ciekawy wątek. Wiele algorytmów kryptograficznych wykorzystuje liczby losowe i jest to jeden z istotnych elementów całej układanki. Otóż nasi bohaterowie uzyskali dane sądowe dotyczące jednego z procesów gdzie klient banku twierdził, że operacja wykonana jego kartą była „nielegalna” (czyli być może karta została np. sklonowana). W tym przypadku UNs, czyli Unpredictable Numbers, pozyskane z logów wyglądały np. tak:
Date Time UN 2011-06-29 10:37:24 F1246E04 2011-06-29 10:37:59 F1241354 2011-06-29 10:38:34 F1244328 2011-06-29 10:39:08 F1247348
Czy te Unpredictable Numers nie wyglądają przypadkiem jak Predictable? ;-)
Zachęceni wstępnym powodzeniem, badacze postanowili przeanalizować w jaki sposób UNs generują bankomaty/terminale kartowe i między innymi w tym celu zakupili na eBayu dwa używane bankomaty, a także skorzystali z około 20 bankomatów i terminali POS do wykonania „testowych” transakcji. Testowych czyli zbierających pewnie dane przesyłane pomiędzy kartą a terminalem (bankomatem lub terminalem sklepowym). W tym celu wykorzystane zostały odpowiednio przygotowane karty – m.in. z wlutowanym dodatkowym storage (umożliwiającym na przechowywanie zesniffowanej komunikacji):
Wyniki operacji były różne, ale udało się zlokalizować maszyny posiadające jako UN – np. zwykły licznik ;-)
Co realnie daje możliwość przewidzenia UN?
Istotne jest tutaj pojęcie ARQC (Authorization Request Crytogram) – czyli kryptogramu wysyłanego przez kartę docelowo do wystawcy karty – w celu potwierdzenia możliwości zrealizowania transakcji.
W dużym skrócie – wysyłamy ARQC i dostajemy z powrotem informację czy można wypłacić pieniądze. Jeśli wszystko jest OK (np. zgadza się PIN) – kwota jest wypłacana. Można teraz pomyśleć że wystarczy nagrać ARQC i jeszcze raz go później odtworzyć aby bankomat wypłacił ponownie pieniądze (tzw. replay attack). Systemy jednak są przed czym takim zabezpieczone, ale kluczową rolę pełni tutaj UN!
Simply replaying an ARQC should not work, because a competent issuer prevents replay by rejecting any transaction whose application transaction counter (ATC) it has already seen. The ATC prevents simple replay attacks but cannot assure the issuer that the ARQC was computed today rather than yesterday. To ensure freshness, a nonce is used – the unpredictable number (UN).
Czyli cała historia wymaga odpowiednio złożonego UN, który często nie jest odpowiednio złożony ;-)
Autorzy badania pokazali jeszcze kolejny problem – otóż podczas przesyłania numeru UN, nie sprawdzana jest integralność transmisji. Atakujący mając więc możliwość wykonania ataku typu MiTM (np. poprzez malware na bankomacie) jest w stanie podczas realizacji transakcji podmienić UN na wcześniej przejęty i w ten sposób zignorować fakt, że oryginalnie numery UN tworzone są całkiem losowo (po prostu „losowo” wygenerowany UN nie będzie użyty transakcji, przypomina to nieco podatność session fixation znaną aplikacji webowych). Oczywiście atak MiTM to nie taka prosta sprawa – choć np. odpowiednio „przerobiony” terminal POS może zapewnić takie środowisko.
Poniżej oryginalne zdjęcie z cytowanego badania – przerobiony terminal, ale umożliwiający grę w tetris ;-)
Czy zatem karty z chipem są niebezpieczne?
Na pewno bardziej bezpieczne niż „zwykłe” karty z paskiem magnetycznym (tu techniki klonowania są już znane i wykorzystywane…). Atak wykonywania operacji klonowania kart z chipem ma też kilka ograniczeń – np. możliwe okno czasowe w którym musi być zrealizowany atak, czy zdecydowanie większe wymagania „sprzętowe” do realizacji samej operacji. Całość bardziej pokazuje, że nic nie jest w 100% bezpieczne i aby to bezpieczeństwo maksymalizować, trzeba cały czas trzymać rękę na pulsie.
Osobom zainteresowanym tematem polecam przy okazji zerknięcie na książkę: Hacking Point of Sale: Payment Application Secrets, Threats, and Solutions – gdyby byli zainteresowani, możemy ją sprowadzić do naszej księgarni.
–michal.sajdak<at>securitum.pl
niezly artykul, niezle mozliwosci, i ciekawy pdf do przeczytania ;)
Niezły komentarz!
Niezła odpowiedź, w sumie artykuł też niezły.
Ciekawostka przyrodnicza, która zapewne zostanie niedługo uwzględniona przy certyfikacji (czyli weryfikacji poprawności konfiguracji) ATM i produktów chipowych, ale chociażby pkt. V B) określa czynniki, że tego ataku nie można przeprowadzić z ulicy, a tylko jako inside job – a do tego jest wiele innych prostszych środków.
Mówisz o 5B z pdfa? Bo tam to mowa jest tylko o ATM-ach (bez PoS-ów), a co więcej jest też ciekawe info że np. we Włoszech UN są drukowane na potwierdzeniach ;-)
Unprerictable? – 3 akapit przedostatni wiersz
Unpredictable
Poprawione :-)
O mamusiu – nie spodziewalem sie ze ludzie stojacy za projektowaniem rozwiazan bezpieczenstwa elektroncznego zrobia tak podstawowy blad – jak brak prawdziwego generatora liczb losowych ( najlepiej sprzetowego ). Przypadki „lamania” zabezpieczen opartych o liczby pseudolosowe siegaja lat 90tych i „pierwszych” elektronicznych jednorekich bandytow…
Podejrzewam że to zaszłości z dawnych lat (zresztą w cytowanym pdf-ie też o tym wspominają)…
Mam wrażenie, że w tym momencie najbardziej palącym problemem związanym z bezpieczeństwem kart płatniczych nie są chipy, czy paski magnetyczne, ale system płatności bezdotykowych. Chętnie przeczytałbym coś na ten temat, bo słyszy się już różne głupoty (zawijanie karty płatniczej w folię śniadaniową…)