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.
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.
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.
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.
Komentarze
Pirma aprilis :)
Przecież to nie było w Prima Aprilis…
Abstrahując od prima aprilis – w trójmieście można już doładowywać i sprawdzać stan karty via www. Wnioskuję więc, że czytniki drużyny canarinios mają dostęp online do bazy danych zawierających historię doładowań kart miejskich. Szkoda, bo właśnie skończyła mi się zniżka studencka. :-(
Nie mają/nie muszą mieć. Baza jest ładowana przy okazji połączenia czytnika z serwerem w siedzibie firmy.
Online, prawie online – co za różnica?
kurcze o ile to prima-aprilis i o ile nikt rozsadny na dluzsza mete nie bedzie z tego korzystac, o tyle: jednorazowo, klonujac karty + fake dokadowania, czy w ramach zlosliwosci osobom trzecim, owa podatnosc moze byc wykorzystana. A tu juz zarty sie koncza.
Ciekawe jak zareagowalby powiedzmy Pan prezes ZTM, kiedy jadac metrem zostaje zatrzymany za poslugiwanie sie fake doladowaniami wrzuconymi przez jakiegos pentestera :)
To nie jest artykuł primaaprilisowy. Ta aplikacja na serio istnieje i działa.
Co do klonowania karty – to już jest dużo trudniejsze, ponieważ standardowe karty Mifare nie dają możliwości zapisywania bloku z ID karty. Istnieją na rynku chińskie klony, dość drogie, które pozwalają zapisać pierwszy blok, więc teoretycznie istnieje możliwość stworzenia 100% klonu karty, ale trzeba wtedy też zadbać o odpowiedni nadruk i koszt całej imprezy byłby astronomiczny.
Na serio sądzisz, że szef ZTM jeździ metrem, tramwajem lub autobusem? :)
Mogę prosić o przykład takiej karty?
moze FM11RF08 bez elektronicznej personalizacji powinna dac rade?
zakladam ze czasem tak, nie wiem gdzie mieszka ale kazdy chyba czasem jezdzi ZTM a nie wierze ze ktos taki kupuje bilet w kiosku skoro moze miec karte z urzedu. Po drugie jak nie on to rodzina. No i po trzecie, przerysowalem oczywiscie, kontekst zemsty prywatnych jest mniej medialny :) Jadnak mozna wybrac rownie „dostojne” osoby odpowiedzialne za ten kontekst, porownywalne do prezesa ktore na pewno dojezdzaja ZTM.
Klonowanie hmm .. jasne ze nie kazde karty ale klonowanie nie jedno ma imie. Pisalem o tym w kontekscie potrzeby skorzystania jednorazowego, gdzie niekoniecznie musisz miec fizyczna cos (nawet nie karte) a wygladajaca jak karta ZTM. A nadruk? Kurcze .. wczesniej niz 1998 mozna bylo kupic drukarki kart. Gdyby ktos serio chcial to zrobic to akurat nie problem podzlecic lub nabyc stara ale jara drukarenke.
I po trzecie, zakladajac ze sa karty urzedowe, master czy serwisowe itp. … ciekawe czy ktos to opanowuje :)
jasne, ze ogarnia. na wawkomie masz liste kart sluzbowych, serwisowych i kanarow :-)
i jeszcze karty chinskie drogie? 0,45 USD za sztuke to duzo?
Pół dolara za sztukę to cena zwykłego Mifare 1k z Chin. Cena karty z zapisywalnym blokiem 0 to 25 dolarów (http://www.xfpga.com/html_products/sp-mf-1k-cpu-26.html) – chyba że znajdziesz tańsze…
1$ za sztukę, ale minimum 100 sztuk:
http://www.aliexpress.com/item/ISO-14443A-Writable-13-56mhz-nfc-tags-for-mobile-payment/729142543.html
Sprzedawca pisze, że „writable”, więc jeśli to nie prawda, to po prostu nie dostanie kasy.
Natomiast tutaj 17$ w ilości do 10 sztuk i 14$ przy 10+ sztukach, do tego 8$ dostawa
http://www.aliexpress.com/item/UID-changeable-mifare-1k-card-block0-writable/793383448.html
Co ważne zakupy na Aliexpress są bezpieczniejsze np. od Allegro, bo sprzedawca dostaje kasę dopiero, gdy potwierdzimy odbiór przesyłki oraz pełną zgodność z umową.
Te pierwsze to zwykłe („writable” oznacza po prostu zapisywalne – nie ma żadnej informacji, że zapisywalny jest również blok 0). Dopiero te drugie nadają się do 100% klonowania – „block 0 writeable”.
>(dostępna jest oczywiście tylko wersja dla Androida)
Dlaczego „oczywiście”?
Ze względu na proporcję liczby telefonów obsługujących NFC działających pod kontrolą tego systemu operacyjnego (>100) vs IOS (0) vs Windows (20?) vs Blackberry (6?)
„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.”
Warto wspomnieć, że każda transakcja BTC jest publiczna (w przystępnej formie np. na blockchain.info), więc zachowałbym powściągliwość z określeniem o anonimowości i powiedział, że określenie popularności może być trudne, ale nie niemożliwe.
„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).” – slabo szukaliscie, podawalem na wawkomie link :-)
Chyba jestem w tym za bardzo zielony. Staram sie sprawdzic czy faktycznie to dziala (do celow edukacyjnych wylacznie) ale nawet nie wiem od czego zaczac. Opisu w necie nie znalazlem zadnego, oprogramowanie mam, potrafie nawet to przeczytac ale nie potrafie rozkodowac. Widza powinna byc dostepna powszechnie dla wszystkich :P A tutaj ukrywa jest nawet nazwa aplikacji :)
Lukasz, udało Ci się gdzieś działający link do apki znaleźć i pobrać soft ?? Ja od 3 dni walczę i lipa…. :/
Zasadza działania systemu w stolicy jest następująca.
Ładowanie karty:
– ładujesz kartę w biletomacie/kiosku/internecie
– aktywujesz kartę
– dane karty, która została aktywowana trafiają na serwer
Kontrola karty:
– kontroler sprawdza kartę
– urządzenie zapisuje dane karty
– dane sprawdzonych kart lądują na serwerze do sprawdzenia
– ewentualne nieścisłości są wyjaśniane
– dane kart, które są aktywne ale nie ma ich na serwerze lądują w czytnikach kontrolerów
– przy powtórnej kontroli karty załadowanej na lewo wyskakuje błąd odczytu karty
– sprawa jest kierowana do wyjaśnienia
Tak to w teorii działa. Czy działa to w praktyce i czemu ewentualnie nie działa pozostawiam do wyjaśnienia odpowiednim służbom.
wielu ludzi ma „takie” karty (odkyrwam, ze chyba juz z pol Warszawy) a jeszcze o przypadku bledu odczytu karty albo jakims grzebaniu w niej nie slyszalem
Tutaj powstaje pytanie, jak to jest później. Jak jest z odpowiedzialnością karną jak ktoś posługiwał się kartą doładowaną przez apke z androida? Podlega to pod niską szkodliwość?
Działa Wam strona tej aplikacji na torze? Chciałem sprawdzić działanie, znalezienie linku nie było trudne ale niestety nie działa. Inne torowe strony oczywiście bez problemu się ładują :)
Dwie kontrole w przeciągu 1,5 tygodania w Kolejach Mazowieckich przy użyciu terminali firmy Pidion.
http://tvnwarszawa.tvn24.pl/informacje,news,ztm-falszerstwa-kart-zglaszamy-policji,84314.html
Witam, czy ktoś w ogóle do tego już doszedł jak można doładować tą karte przez bitcoin ?
skąd moge pobrać tą pierwszą apke ma ktoś link?
łądowanie działa jak najbardziej. od pólu tak codziennie jezdze. kontrole wiadomo są.
ciekawe czy pajace w ztm sie opamietaja z podwyzkami biletow..?
apki nie znajdziecie. trzeba samemu napisac albo kupic od czlowieka, ktory napisal…
Ale aplikacja ta aplikacja Mifare Classic Tool działa ?;P
dziala. moge powiedziec krok po kroku, jak dziala
no mozesz…
Jeśli mozesz to napisz krok po kroku co i jak w tym programie.
coraz głośniej w tej sprawie chyba się robi, wystarczy wpisać na yt lub liveleak frazę 'ztm dekoder’
Czy ktoś mógłby mi powiedzieć skąd mogę wziąć klucze do MCT do pierwszych 3 sektorów WKM? chociaż 7 sektorem też bym nie pogardził :)
Proszę o pomoc i kontakt pod adresem: [email protected]
Ja trochę z innej beczki. Czy istnieje możliwość aktywowania WKM samodzielnie,
bez użycia kasownika np. siedząc w domu? Chodzi o to żeby mieć już aktywowaną kartę
i nie szukać kasownika np. w tłoku w autobusie. Mówię tutaj o normalnie i legalnie doładowanej karcie?
Wyślij instrukcje i klucze prosze
Czy ktoś może napisać coś więcej? Próbuje na milfare classic tool na telefonie z nfc i nie dziala.
I ztm od stycznia15 namieszał z kartami i 4 sektorem, czy może ktoś pomóc w wiadomej kwestii. Prośba o kontakt, odwdzięczę się ;)
[email protected]
Czy ktoś odczytał dane z kart mpk wrocław?
Nie stosują standardowych kluczy w żadnym z sektorów ale to nie problem – klucze odzyskane.
Sektor 14 zawiera imię i nazwisko właściciela biletu jako zwykłe ASCII.
Sektory 0,1,2,3 zawierają jakieś dane pewnie nt. samego biletu ale nie potrafię ich odkodować
Czy ktoś coś wie na aktualny temat coś więcej ?
Witam wszystkich, nie znam się na tych wszystkich rzeczach więc proszę o pomoc a moje pytanie to: czy możliwe jest, żeby terminal w kiosku generował doładowania „z zewnątrz”obciążając tym sprzedawcę. Przypuszczam, że taka sytuacja mogła mieć miejsce w moim przypadku. Będę wdzięczna za każdą wskazówkę.