Osiem lat temu napisałem sceptyczny artykuł o bezpieczeństwie transakcji karcianych. Od tego czasu trochę się zmieniło. Najpierw pojawiły się regulacje prawne poprawiające sytuację okradzionego posiadacza karty - fraud nie ustał ale w większości wypadków jego koszty musiały ponosić banki. A później reakcja (w Polsce na dużą skalę nadchodząca właśnie teraz) - karty chipowe, promowane jako bezpieczniejsze (i faktycznie uniemożliwiające tradycyjne techniki kradzieży) ale zwykle zdejmujące z banków odpowiedzialność za transakcje dokonane przez złodziei (musiał Pan ujawnić PIN).
Świeży news o wynikach badań informatyków z Cambridge rzuca na sprawę bardzo niepokojące światło.
O co chodzi
W popularyzatorskiej wersji newsa można przeczytać na przykład na onecie (w podobnym brzmieniu w paru innych miejscach) albo (po angielsku) na zdnet. Porównanie ilości informacji i szczegółowości opisu może być przyczynkiem do chwili zastanowienia nad jakością treści jakimi karmią nas polskie portale, ale ja dzisiaj nie o tym.
Pełny opis jest w oryginalnym opracowaniu (PDF). Jest to raptem dziesięć stron, czyta się dość dobrze, zachęcam.
W największym skrócie: panowie z Cambridge przy pomocy niezbyt skomplikowanego ekwipunku przekonali terminal, że został wpisany poprawny PIN, choć go nie znali i podali przypadkowy zestaw cyfr.
Jak to działa
Wykorzystane zostały następujące zabawki (zdjęcie z powyższego PDF):
Prawdziwa (ukradziona) karta zostaje włożona do czytnika spiętego z laptopem i dodatkową kartą komunikacyjną (całość można np. mieć w plecaku, można też przy odrobinie wysiłku ją zminiaturyzować by dała się łatwiej ukryć). Do sklepowego czytnika zostaje włożona połączona z nimi fałszywa karta.
Cały ten pakiet po prostu transmituje komunikację między POSem a prawdziwą kartą - więc wszelka weryfikacja kluczy odbywa się poprawnie - z jednym drobnym wyjątkiem. Laptop nie przekazuje do prawdziwej karty pytania o poprawność pinu, zamiast tego po prostu mówi Tak, pin jest poprawny (co wymaga wyłącznie wysłania ... znanej stałej wartości). A potem wracamy do zwykłej transmisji (program działający na karcie kontynuuje działanie, choć nie został spytany o PIN, bo schemat przetwarzania uwzględnia także możliwość autoryzacji podpisem).
Szczegółowy wykaz komunikatów przesyłanych między urządzeniami jest na dwóch ostatnich stronach opracowania. Mój opis jest mocno uproszczony, nie chciałem wchodzić tu w szczegółowy opis protokołu.
Efekt? Sklep ma dowód dokonania transakcji z dopiskiem o zweryfikowaniu pinu, złodzieje towar, a okradziony posiadacz karty beznadziejne zadanie przekonania banku i sądu, że naprawdę nikomu go nie ujawnił.
Ciekawy jest też wątek poświęcony procesowi tworzenia tych protokołów (długotrwałe utrzymywanie w poufności, brak publicznego review i analizy) i jakości dokumentacji (tysiące stron po których kluczowe informacje są chaotycznie rozproszone a wielu ważnych ustaleń i porządnego opisu protokołu - brakuje).
Hasła SMS
I jeszcze dopisek na nieco inny temat. Oficjalnie odtworzono schemat przeprogramowywania Nokii 1100 który był stosowany w celu przechwytywania kodów jednorazowych wysyłanych SMSem.
Polecam uwadze wszystkich osób uważających, że SMSy są bezpieczniejsze od zdrapek. Nie są. I nie chodzi tu o usterkę Nokii 1100, która czyniła atak szczególnie łatwym, ale o sam protokół SMS który najzwyczajniej w świecie ani nie uwierzytelnia komunikujących się stron (przypomnę też niedawny casus firmy pozwalającej na wysyłanie SMSów z dowolnie ustawionym numerem nadawcy) ani nie zabezpiecza przed podsłuchem lub przechwyceniem treści.
O ile nie ma możliwości korzystania z tokena, więcej zaufania mam do zdrapek.
Jeszcze inny problem dotyczy używania haseł SMS w sytuacji, gdy aplikację bankową uruchamiamy w przeglądarce na ... telefonie. Ewentualna kompromitacja tego urządzenia daje wirusowi czy trojanowi pełną kontrolę i wszystkie potrzebne informacje.
Tak wiem, na telefony nie ma wirusów ;-)
Dopisek po latach
Opisany wyżej atak doczekał się praktycznej i eleganckiej realizacji i pozwolił ukraść co najmniej pół miliona euro. Zamiast laptopa użyto mikroukładu, zamykając całą zabawkę w formacie zwykłej karty płatniczej.