Aplikacja do nielegalnego ładowania Warszawskiej Karty Miejskiej za BTC

dodał 31 marca 2013 o 17:10 w kategorii Krypto, Mobilne, Prawo  z tagami:
Aplikacja do nielegalnego ładowania Warszawskiej Karty Miejskiej za BTC

Słabość zabezpieczeń kart Mifare Classic, z którym korzysta między innymi warszawski ZTM, jest znana od wielu lat. Kwestią czasu było pojawienie się na rynku powszechnie dostępnej alternatywnej usługi ładowania kart miejskich. Ta chwila właśnie nadeszła.

Do tej pory Warszawskie Karty Miejskie ładowane były przez domorosłych elektroników na zasadzie przysługi znajomi-znajomym. Choć jak do tej pory w sieci nie pojawiła się dokładna instrukcja jak krok po kroku przeprowadzić cały proces, to ilość dostępnych materiałów jest w zupełności wystarczająca, by średnio uzdolniony informatyk opanował ładowanie kart ZTM w ciągu kilku godzin.

Kawałek historii

Mifare to bezdotykowy standard karty opracowany w 1994 roku przez Philipsa (obecnie NXP Semiconductors). Pod koniec 2001 roku, kiedy warszawski ZTM wprowadzał kartę miejską, wybrał model  Mifare Classic opracowany w 1994, mimo iż od kilku lat na rynku był już dostępny znacznie bezpieczniejsze modele Mifare PRO i PROX. O tym, jakim błędem było wybranie tańszego modelu, ZTM mógł się przekonać już w roku 2008.

Czemu nie warto pisać własnych algorytmów szyfrujących

W styczniu 2008 kryptolodzy opublikowali analizę algorytmu Crypto-1, używany przez Philipsa do zabezpieczenia zawartości kart Mifare Classic. Wydarzenie to było początkiem całkowitego pokonania zabezpieczeń karty. Jak pokazała historia, dokonany przez Philipsa wybór zabezpieczeń własnego autorstwa, zamiast przyjętych standardów, po raz kolejny okazał się złą decyzją. Już w kwietniu 2008 naukowcy odzyskali 48-bitowy klucz algorytmu jedynie na podstawie jednego zaszyfrowanego pakietu (wymagany był dostęp jednocześnie do karty i oryginalnego czytnika). Kolejny przełom nastąpił w roku 2009, kiedy to innemu zespołowi udało się złamać zabezpieczenia karty, dysponując jedynie możliwością nawiązania z nią transmisji. Okazało się, że generator liczb losowych, od jakości którego zależy bezpieczeństwo szyfrowania, nie jest w żadnym stopniu losowy – odpowiedzi generatora zależą od czasu, jaki upłynął od jego uruchomienia.

A tymczasem w Polsce…

W prezentacji, przedstawiającej wyniki badania, autor wskazał, że Warszawska Karta Miejska posiada jeszcze słabsze zabezpieczenia ze względu na niski poziom losowości kluczy szyfrujących.

Fragment prezentacji nt. Mifare Classic

Fragment prezentacji nt. Mifare Classic

Okazało się, że na karcie używanej przez ZTM pierwszy blok zapisu używa standardowego klucza Philipsa (FFFFFFFFFFFF), a kolejne klucze mają niski poziom losowości, ponieważ wiele z nich zaczyna się lub kończy ciągiem 898989. Autor sugeruje, że może mieć to związek z datą końca komunizmu w Polsce (klucze do sektorów zawierających najważniejsze informacje są na szczęście „bardziej losowe”).

W Polsce już w 2008 jako jedni z pierwszych na możliwy problem ZTMu zwrócili uwagę użytkownicy serwisu Vagla.pl. W 2009 temat poruszyły również serwis ipsec.pl oraz Computerworld. Na łamach tego drugiego można było znaleźć bardzo ciekawą informację:

Jak zapewniają jednak przedstawiciele warszawskiego ZTM, instytucja ta pracuje nad poprawą zabezpieczenia karty i jeszcze w tym roku będzie ona podpisana algorytmem 3DES.

Zapewne efektem tych prac ZTM był zakończony w styczniu 2010 przetarg na wykonanie usługi modernizacji Systemu Pobierania Opłat za Przejazdy poprzez wdrożenie dodatkowych zabezpieczeń technologii Mifare kodowania danych na Warszawskiej Karcie Miejskiej o wartości ponad 200 tysięcy euro. Niestety, wygląda na to, że bezpieczeństwo kart nie zostało od 2010 roku zmodyfikowane.

Kombinatorzy ruszają do akcji

Informacje o możliwości złamania zabezpieczeń Warszawskiej Karty Miejskiej powodowały, że coraz więcej osób próbowało swoich sił. Jako że proces nie był skomplikowany, szybko odnieśli pierwsze sukcesy. W sieci zostały opublikowane klucze szyfrujące, użyte do zabezpieczenia zapisu na karcie. Okazało się także, że sam zapis na karcie nie jest w żaden dodatkowy sposób chroniony przed modyfikacją – proste przestawienie jednego bitu wystarczało, by zmienić datę ważności biletu (niektóre miasta, wdrażając podobny system, zastosowały dodatkowe szyfrowanie zapisu na karcie). Odkrycie oznaczało, że aby zmienić datę ważności biletu lub jego rodzaj, wystarczyło zakupić prosty czytnik kart NFC (koszt to ok. 100 – 200 PLN) i skorzystać z powszechnie dostępnego oprogramowania. Ktoś postanowił jednak ten proces uprościć.

Tak, jest do tego aplikacja

Na rynku zaczęło pojawiać się coraz więcej telefonów z wbudowanym układem NFC. Przedsiębiorczy przestępcy postanowili skorzystać z tego trendu i zaoferować usługę nielegalnego ładowania WKM szerszej publiczności. Kilka dni temu w sieci pojawiła się aplikacja, za pośrednictwem której każdy może naładować kartę swoją (i swoich znajomych). Oczywiście usługa nie jest darmowa. Z oczywistych powodów nie zamieścimy tutaj nazwy aplikacji ani adresu strony ją reklamującej, opiszemy jedynie jej funkcjonalność.

Aplikacja nosi nazwę popularnego zagranicznego piwa. Witryna ją reklamująca znajduje się w sieci TOR.

Strona reklamująca aplikację

Strona reklamująca aplikację

 

Twierdzenie „Warszawa kolejnym miastem obsługiwanym przez aplikację” wydaje się nam fałszywe – nie natrafiliśmy na żaden ślad, by aplikacja istniała dłużej niż kilka dni i oferowała kiedykolwiek inne możliwości, niż ładowanie WKM (choć systemy kart miejskich w innych polskich aglomeracjach korzystają często z identycznych lub bardzo podobnych rozwiązań jak ZTM). Sama aplikacja (dostępna jest oczywiście tylko wersja dla Androida) ma dość prosty interfejs, jednak wydaje się dobrze przemyślana z punktu widzenia funkcjonalności. Po zainstalowaniu generuje unikatowy identyfikator użytkownika (prawdopodobnie w oparciu o parametry urządzenia) i przypisuje do jego konta unikatowy adres Bitcoin. Następnie umożliwia (poprzez wygenerowanie przelewu w aplikacji Bitcoin Wallet) zasilenie rachunku użytkownika. Przelana kwota może zostać wykorzystana do zakupu biletu – aplikacja posiada cennik biletów w złotówkach, przeliczany w czasie rzeczywistym na BTC. Ceny pirackiej usługi wynoszą ok. 20-30% ceny oficjalnej.

Ekrany aplikacji

Ekrany aplikacji

Aby uprawdopodobnić działanie aplikacji, jej autorzy wbudowali darmową weryfikację daty ważności biletu, linii oraz czasu ostatniego kasowania (oprócz identyfikatora karty, rodzaju biletu i salda kwoty do opłat za parkometry to jedyne informacje przechowywane na karcie). Udostępnili także kod promocyjny, umożliwiający rzekomo jedno ładowanie biletu gratis, jednak nie testowaliśmy tego twierdzenia. Trzeba przyznać, że do tej pory nie udało się nam odnaleźć innej aplikacji, umożliwiającej zapisywanie danych w układach NFC pod kontrolą Androida (odczyt nie stanowi żadnego problemu) patrz aktualizacja poniżej.

Bezpieczeństwo autorów aplikacji i ich klientów

Sama aplikacja wydaje się być zaprojektowana tak, by ustalenie tożsamości jej autorów i beneficjentów nie było możliwe. Kod aplikacji został poddany zaciemnieniu i nie zawiera żadnych informacji o jej twórcach. Aplikacja działa w trybie online, łącząc się z serwerem w sieci TOR (by uniknąć implementacji TORa korzysta z aliasu onion.to). Komunikacja z serwerem jest szyfrowana i niezbędna do działania programu. Zarówno serwer www reklamujący program jak i serwer aplikacyjny nie wskazują swoich właścicieli, choć zawierają drobne błędy, pozwalające np. ustalić, że aplikacja jest dostępna od około tygodnia i została pobrana do tej pory ponad 100 razy.

Płatności Bitcoin pozwalają zachować anonimowość zarówno autorom aplikacji jak i ich klientom. Każdy klient posiada swoje indywidualne konto, zatem dopóki nie okaże się, że kwoty ze wszystkich kont trafiają na jedno konto zbiorcze, niemożliwe jest nawet ocenienie popularności oferty.

Klienci aplikacji mogą ukryć swoją tożsamość przed autorami aplikacji, jednak nielegalne ładowanie kart miejskich może zostać wykryte przez proste mechanizmy kontrolne. Nawet zakładając, że warszawskie kasowniki nadal będą działały w trybie offline, to możliwe jest dobowe uzgadnianie odczytanych danych z centralną bazą i oznaczanie podejrzanych kart do bardziej wnikliwej weryfikacji w razie napotkania ich w trakcie kontroli biletów – o ile oczywiście ZTM będzie chciał wyłapać oszustów.

Aktualizacja 2013-04-06: Okazuje się, że istnieje darmowa aplikacja Mifare Classic Tool, umożliwiająca odczytywanie oraz zapisywanie (w tym klonowanie) kart Mifare Classic.