Przejdz do strony glownej |
>> Phreak It > strona glowna > newsy > o serwisie >> Automaty > mapy i spisy > niebieski [TSP91] > srebrny [TPE97] > jajko [CTP] > żółty [eXANTO] > Netia > Dialog > karty chipowe > klucze >> W eterze > GSM > tranking >> Stuff > teksty (FAQ) > narzędzia > elektronika > nagrywarki > strony Variego >> Inne > multimedia > phreak-muzeum > hacked > linki | FAQ na temat kart elektronicznych SLE4436 KAOS Labs 2003 by Vinc3nt v 1.1 DISCLAIMER --------------------------------------------------------------------- -- Tekst ten powstal wylacznie w celach informacyjno -- --edukacyjnych,dlatego tez autor nie ponosi zadej odpowiedzialnosci-- -- ze wykorzystanie zawartych tu informacji niezgodnie z prawem. -- --------------------------------------------------------------------- (...zreszta co tu wykorzystywać...:-) ) Spis tresci: 1. Wstep 2. Ogolne informacje o SLE4436 3. Rozmieszczenie stykow na karcie 4. Mapa pamieci karty 5. Opis algorytmu autentyfikacji karty 6. Reverse engineering in home :-) 7. Programatory 1. WSTEP Na poczatku chcialbym zapowiedziec ze ten faq jest tylko i wylacznie zbiorem wiekszosci informacji o chipowych kartach telefonicznych. W sumie nie znajdziecie tu prawie nic nowego poza tym co jest dostepne w internecie i literaturze. Chodzilo mi tylko o zebranie najistotniejszych informacji na ten temat. 2. OGOLNE INFORMACJE O SLE4436 Polskie karty telefoniczne jak juz pewnie wiekszosc wie to SLE4436 czyli tzw. Eurochip 1. Jest to typowa karta pamieciowa III generacji z algorytmem uwierzytelniania. Same chip'y sa produkowane przez firme Infineon(Siemiens). W polsce dystrybucja tych kart dla telekomunikacji zajmuje sie OTO Lublin. Karta ta jest rozszerzona wersja SLE4406 (taki typ chipu jest wykorzsytywany w kartach serwisowych). Nastepca Eurochipa 1 jest SLE5536, gdzie umozliwono korzystanie z jednej karty przez kilku operatorow. Oczywiscie cala seria tych kart byla (i jest nadal) kontynuowana i ulepszana co zaowocowalo powstaniem tzw. Eurochipa 66. SLE4436 jest karta powszechnie uzywana w calej europie. Jest stosowana nie tylko w telekomunikacji ale takze w innych branzach jak np. polski WAPARK. Sam model karty jest bardzo udany stad ta jego popularnosc. Ponadto jest bardzo dobrze zabezpieczony co moze swiadczyc o tym ze w europie nikomu nie udalo sie jej zemulowac, przynajmniej oficjalnie. Narazie powstaly emulatory kart bez autentyfikacji, co oczywisice nie jest rzecza trudna do wykonania. Inzynierowie Siemensa chwala sie ze w karcie sa wbudowane odpowiednio wysokie zabezpiecznenia chroniace karte przed zmianami napiecia zasilania oraz czestotliwosci. Licznik karty mozna tylko dekrementowac, ma on takze swoja kopie zapasowa. Oczywiscie podstawa jest implementacja algorytmu autentyfikacji. Ponadto karty sa chronione tzw. kodem transportowym co uniemozliwia np. przechwycenie dostawy takich chipow i nielegalne wykorzystanie. 3. ROZMIESZCZENIE STYKOW NA KARCIE SLE4436 jest oprate o standart ISO7816. Po sieci krazy plik opisujacy ta norme wiec nie ma sensu jej tu szerzej opisywac. Nizej pozwolilem sobie zamiescic rip z tego wlasnie tekstu przedstawiajacy rozmieszczenie stykow na karcie: { ,------------+------------, | 1 | 5 | +------\ | /------+ | 2 +----+ + 6 | +-------| |-------+ | 3 +----+----+ 7 | +------/ | \------+ | 4 | 8 | '------------+------------' gdzie: 1 - VCC; 5 - GND; 2 - RST; 6 - nc; 3 - CLK; 7 - I/O; 4 - nc; 8 - nc; nc - not connected; } Czasem moze sie zdarzy ze chip zamist 8 stykow ma 6 nie zmienia to jednak wlasciwie niczego gdyz styki 4 i 8 nie sa po prostu uzywane. 4. MAPA PAMIECI Pamiec karty sklada jest z ROM'u, PROM,u oraz EEPROM'u. Dane na karcie sa zapisywane zarowno przez producenta chip'u jak i dostawce. Pamiec podzielona jest na czesc jawna i niejawna. W niejawniej znajduje sie oczywisie niepowtarzalny klucz karty. Pewne obszary mozna kasowac, ustawiac bit na "0" (Counter Area i Data Area 1). Bajt Bity Info |----|--------|------------------------------------------------------ | 0 | 0..7 | Manufacturer Code - obszar ROM, zapisywany przez +----+--------+ dostawce zwykle 0x97 0x74 lub 0x05 0xF4 | 1 | 8..15 | +----+--------+------------------------------------------------------ | 2 | 16..23 | Manufacturer Data, kod OTO Lublin zwykle 0x26 +----+--------+------------------------------------------------------ | 3 | 24..31 | User Data - dane o numerze karty, pierwszy bajt to +----+--------+ nr emisji (zakodowany), drugi nr serii, trzeci | 4 | 32..39 | i czwarty nr karty w serii, piaty bajt wyznacza +----+--------+ ilosc impulsow na karcie | 5 | 40..47 | +----+--------+ | 6 | 48..55 | +----+--------+ | 7 | 56..63 | +----+--------+------------------------------------------------------ | 8 + 63..71 | Counter Area - pieciopozycyjny licznik o +----+--------+ organizacji osemkowej: | 9 | 72..79 | x*4096 +----+--------+ x*512 | 10 | 80..87 | x*64 +----+--------+ x*8 | 11 | 88..95 | x*1 +----+--------+ | 12 | 96..103| +----+--------+------------------------------------------------------ | 13 |104..111| Backup Counter and Anti-tearing flags +----+--------+------------------------------------------------------ | 14 |112..119| +----+--------+ Data Area 1 | 15 |120..127| +----+--------+------------------------------------------------------ | 16 |128..135| Authentication Key 1 +----+--------+ ... +----+--------+ | 21 |168..175| +----+--------+------------------------------------------------------ | 22 |176..183| Authentication Key 1 or Data Area 2 +----+--------+ ... +----+--------+ | 27 |216..223| +----+--------+------------------------------------------------------ | 28 |224..231| Data Area 3 +----+--------+ | 29 |232..239| +----+--------+------------------------------------------------------ 5. OPIS ALGORYTMU AUTENTYFIKACJI KARTY Najwiekszym atutem karty jest algorytm autentyfikacji czyli tzw. challange-response (pytanie-odpowiedz). SLE4436 moze posiadac dwa rozne klucze, jeden z nich jest wlaczany opcjonalnie zamiast Data Area 2. Klucz karty jest dlugosci 48 bitow. Sam algorytm jest oparty na tej samej wielkosci rejestrze przesuwnym. Moze sie wiele osob zdziwi ale nie jest to zaden z znanych algorytmow synchronicznych takich jak np. DES i temu podobne. Kodowanie opiera sie wylacznie na wyzej wspomnianym rejestrze przesuwnym. Sytuacja jest troche podobna do algorytmu A5 stosowanego w sieciach GSM, jednak tam szyfrowanie odbywa sie za pomoca trzech rejestrow roznej dlugosic. Na karcie nie ma zadnego procesora ktory wspomagal by takie szyfrowanie jak np. DES. Mimo ze sam rejestr nie zapewnia dobrej kryptograficznej ochrony (wystarczy znac ciag 2n bitow aby go rozszyfrowac) to jest on powszechnie stosowany ze wzgledu na tania i latwa implementacje. Rejestr skalda sie z przerzutnikow i bramek logicznych: XOR, OR, ?NXOR?. Wszystko to polaczone jest odpowiednio z komorkami pamieci ktora jest niemozliwa do odczytania z zewnatrz. Autentyfikacja karty przebiega nastepujaco. Z karty, po wlozeniu do czytnika pobierane sa pewne dane, zarowno jawne jak i niejawne. Z tych informacji SAM wylicza sobie prywatny klucz dla karty. Zaraz po tym generowana jest 48 bitowa pseudolosowa liczba ktora jest przesylana do karty oraz zapamietywana przez SAM. Nastepnie rejest na karcie jest przesuwany 160 razy i do czytnika przesylany jest pierwszy bit odpowiedzi. Nastepnie znow rejest przesuwa sie o 160 razy i przesylany jest kolejny bit odpowiedzi. Tak sie dzieje az uzyskamy 16 bitow odpowiedzi. Bity nie sa pobierane z ciagle tej samej pozycji w rejestrze. Przykladowo odczytanie 6 bitow w rejestrze wyglada nastpeujaco: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxOxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxOxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Oxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxOxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxOxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Oxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Gdzie: X - wczytanie wartosci liczbowej do rejestru; x - wartosci rejestru; O - pozycja odczytu kolejnego bitu rejestru Warto zauwazyc ze pytanie ma 48 bitow odpowiedz zaledwie 16. Podobnie odpowiedz wyliczana jest w SAM'ie. Obie odpowiedzi sa przesylane do komparatora i tam sa porownywane. Jezeli sa takie same karta jest akceptowana, jezeli nie sa to karta jest odrzucana. Podczas generowania odpowiedzi na karte podawane jest po 160 CLK, w tym czasie linia I/O jest zablokowana (stan wysoki). Caly algorytm jest przeprowadzany przez 2-3 sekundy, czas wyliczenia odpoweidzi to ok.30ms. 6. REVERSE ENGINEERING IN HOME Same chipy dosc latwo sie odklejaja od plastiku. Najlatwiej te na kartach "z rybka" (najwyrazniej OTO Lublin sepi na kleju :-P) . Otoz po odklejeniu takiego chipa mozna go sobie obejrzec pod mikroskopem i nie musi to byc mikrospok elektronowy. Wystarczy najbardziej prymitywny np. kupiony od ruskich, ewentualnie mozna sobie go jakos pozyczyc z uczelni albo szkoly. Jezeli mamy karte z rybka z srebrnym chipem to wystarczy tylko go odwrocic i obejrzec polaczenia. W przypadku chipow zlotych nalezy je najpierw opalic zapalniczka a pozniej odgiac troche tak zeby plastik odpadl. Ktos powie po co to wszystko? Bo fajnie wyglada ;--). Mozna zobaczyc jak rozlokowana jest pamiec i popatrzec sobie na rejestr przesuwny. Przegrzanie chipa moze spowodowac jego zniszczenie lub tez uszkodzenie a co za tym idzie moze on wygenerowac ciekawe bledy. Wtedy patrzymy jak przebiega c-r i analizujemu sygnaly pomiedzy bitami odpowiedzi. 7. PROGRAMATORY Aby moc odczytac karte trzeba oczywiscie miec specjalny czytnik/programator. Oczywiscie mozna takie ustrojstwo kupic sobie z internetu, ale jezeli zamierzamy sie bawic tylko kartami pamieciowymi to lepiej zrobic go samemu. Najlepszy obecnie jest chyba SmartLab. Proste polaczenia z karta i czytelny program. Jako tranzystorka można uzyc np. BC546. Oczywiscie zawsze mozna napisac wlasny ale po co robic cos co ktos juz zrobil i to udanie. Kabelki do karty najlepiej jest po prostu przylutowac. Jezeli lekko kapniemy cyna uzyskamy sztywne polaczenie galwaniczne, karcie nic nie stanie a i nic nie bedzie odpadalo. +----- |Vinc3nt | |Uwagi, porady, zazalenia vinc3nt@wp.pl | |pozdrowienia&thx: gosia, chomber, azrael, dml, tomash(a co.. :-P) | |' make terror not war ' | +----- |