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 | [=][=][=] [=][=][=] [=][=][=] [=] [=] [=][=][=] [=][=][=] [=] [=] [=] [=] [=] [=] [=] [=] [=] [=] [=] [=] [=] [=] [=] [=] [=] [=] [=] [=] [=] [=][=][=] [=][=][=] [=][=][=] [=] [=] [=][=][=] [=] [=] [=] [=] [=] [=] [=] [=] [=] [=] [=] [=] [=] [=] [=] [=] [=] [=] [=] [=] [=] [=] [=] [=] [=] [=][=][=] [=] [=][=][=] [=] [=] [=] [=] [=][=][=] [=][=][=] [=][=][=] [=] [=] [=] [=] [=] [=] [=] [=] [=] [=] [=][=] [=][=][=] [=] [=] [=] [=] [=] [=] [=] [=] [=] [=] [=] [=] [=] [=] [=] [=][=][=] [=] [=][=] TELEKARTY ========================================================================== || Wszystko co tu znajdziecie mozecie wykorzystywac jak wam sie podoba. || || Nie interesuje mnie zupelnie czy powstana przez to jakies (czyjes) || || szkody czy nie. Chce zerwac z maniera wrzucania takich tekstow na || || poczatku faqow, bo uwazam to za smieszne. W takich przypadkach traca || || zwykle monopolisci i/lub lameria wiec po co sie o nich martwic? A o || || siebie sie nie bojcie jak maja was zlapac to i tak zlapia, zeby nie || || wiem co - a i tak nikogo jeszcze za teksty nie wsadzili (no w koncu || || jest demokracja) ;) Moja dywiza to: Im wiekszy dym tym ciekawiej ;-) || ========================================================================== 1. Wstep do faqu 2. Szczegoly techniczne Czesc A. Wszystko co trzeba wiedziec o telekartach (podstawy) Sekcja I. Karty Gemplus, Solaic, Schlumberger, Oberthur (francuskie) a) wprowadzenie b) schemat chipu c) opis stykow zlacza d) podstawowe paramtery e) diagramy czasowe (timingi) f) mapa pamieci kart z Francji i Monako g) mapa pamieci kart z innych krajow Sekcja II. Karty ODS, Giesecke & Devrient, ORGA Karten systeme, Uniqua, Gemplus, Schlumberger i Oldenbourg Kartensysteme a) wprowadzenie b) styki c) podstawowe paramtery d) diagramy czasowe (timingi) e) mapa pamieci f) parametry elektryczne Sekcja III. Schemat czytnikow a) czytnik 1 b) czytnik 2 Czesc B. Jak zrobic wlasna telekarte? Sekcja I. Teoria a) szczegoly i podstawowy program - telecard.asm - picreg.equ b) system zabezpieczen c) niezbedne czesci d) jak to budowac Sekcja II. Niezbedny software a) czesc UUEnecode - plik UUEncode b) standardowy program do odczytu karty na PC 3. Linki zwiazane z tematem i "bibiografia" 4. Na koniec (podziekowania, etc...) [ 1. Wstep do faqu ] ================== Jak widzicie to moj pierwszy faq. Nie mam zamiary pisac rzeczach typu: jak podpiac sie do sasiada, jak znukowac lamera czy jak zdobyc haslo roota. Zajmuje sie tu KARTAMI CHIPOWYMI, zwanymi z angielska telecard, phonecard lub (najrzadziej) chipcard. Wiem ze dla nas to temat nowy i raczej malo przydatny bo TPSA nie kwapi sie z wprowadzeniem automatow na takie karty. Poki co mamy i pewnie dlugo miec bedziemy Urmety na karty magnetyczne Telefonica. Mimo to zdecydowalem sie napisac o tym faq poniewaz czesto bywam za granica i tam te wiadomosci sie moga przydac. Poza tym nigdy nic nie wiadomo i moze pewnego dnia TPSA uszczesliwi nas automatami na karty chipowe. Dodatkowo warto wiedziec, ze schemat takich kart jest uniwersalny (zgodnie z normami ISO) i nie sa one wykorzystywane tylko do telefonow, ale takze do odkodowywania programow TV, jako karty identyfikacyjne, itp. Oczywiscie, wiadomo ze sam temat kart chipowych (tak jak kart magnetycznych) to rzeka i mozna by o tym napisac 1 GB tekstu (sama dokumentacja to kilkanascie tysiecy stron). Poniewaz jest to niemozliwe, omowie tu podstawowe rzeczy, ktore trzeba widziec zajmujac sie ta tematyka. W rodziale "Linki" podalem kilkanascie IMO najlepszych adresow URL z informacjami na ten temat dla dociekliwych. A tak na koniec wstepu: sorry ze ten faq jest troche "sztywny" ale denerwuje mnie wypisywanie glupot bez zadnej tresci, jak to coraz czesciej widze w roznych faqach. Z gory przepraszam, jesli jakies informacje nie sa 100% aktualne. Stan, ktory opisuje dotyczyl przelomu lat 1997/1998 ale w czerwcu 1998 na pewno wszystko jeszcze dzialalo. Dzis moze sie okazac, ze sa niezbedne pewne korekty, ale jestem na 100% pewien, ze generalne zalorzenia sa takie jak byly. [ 2. Szczegoly techniczne ] ======================= ************* * U W A G A * ************* Ponizej znajduje sie szereg schematow. Oznaczenia niektorych elementow sa miedzynarodowe (w jezyku angielskim), dlatego podaje tu do nich "slownik". Nie zdecydowalem sie na przetlumaczenie ich na jezyk polski w celu praktycznym. Latwiej na tej podstawie znalezc wszelkie informacje w Internecie, dotyczace wlasnie tych wybranych elementow. Address - adres Clk - (Clock) sygnal zegarowy (zegar) Data - Dane Gnd - (Ground) masa R/W - (Read/Write) zapis/odczyt Fuse - bezpiecznik I/O - (Input/Output) Wejscie/Wyjscie xMOS - (Metal Oxide Semiconductor) - polprzewodnik w technologii metalowo tlenkowej. PCB - (printed circuit board) plytka drukowana Reset - zerowanie systemu (lub reset ;) ) Vpp - napiecie programujace Vcc - napiecie zasilania Mnznnz - Mam nadzieje, ze nic nie zapomnialem +----------------------------------------------------------------------+ | CZESC A. Wszystko co trzeba wiedziec o telekartach (podstawy) | +----------------------------------------------------------------------+ Sekcja I. Karty Gemplus, Solaic, Schlumberger, Oberthur (francuskie): ------------------------------------------------------------------------ a) wprowadzenie W polowie lat 80-tych pojawily sie karty nowej generacji (zwane kartami sprytnymi - "smart-cards" lub kartami chipowymi - "chip cards"). Karty te zastapily wiekszosc kart magnetycznych uzywanych w znacznej mierze przez firmy telekomunikacyjne a takze korporacje zajmujace sie kartami kredytowymi od strony produkcyjnej. Karty chipowe sa w wiele skuteczniej zabezpieczone niz tradycyjne karty magnetyczne. Jest kilka typow takich kart chipowych majacych rozne zastosowanie. Najprostsze to karty typu "Prosta Pamiec". One sa wlasnie najczesciej uzywane jako karty do dzwonienia z automatow publicznych. Ogolnie mozna powiedziec, ze cala zawartosc pamieci jest przeznaczona do odczytu w tych kartach. Dodatkowo jest tam specjalna czesc, ktora jest nie niezapisywalna a wiec nie moze byc takze w zaden sposob kasowana przez czytnik. Poza tym sa bardziej skomplikowana karty, np. "Karta z Pamiecia" (lepszy rodzaj karty "Prosta Pamiec") posiada specjalny obszar z roznymi danymi zabezpieczony szyfrowanym kluczem. Takie karty moga zawierac jakies prywatne informacje w tej zabezpieczonej czesci. I wreszcie na koncu, sa tzw. "Karty z Mikroprocesorem" (pracujace na podstawie protokolu ISO-7816). Te karty sa najbezpieczniejsze poniewaz posiadaja wlasny sytem operacyjny, ktory zabezpiecza wszelkie operacje wejscia/wyjscia (I/O), o ile wczesniej nie zostal wprowadzony specjalny kod PIN. Najczesciej uzywa sie tych kart kiedy niezbedna jest poufnosc danych: karty bankowe, karty kodowe platnych telewizji (Canal+), karty zdrowia (na Zachodzie Europy a podobno i u nas niedlugo po reformie ;)). Co do kart chipowych uzywanych do dzwonienia (zwanych dalej telekartami) to nawet gdy naleza one do tych slabiej zabezpieczonych (a tak jest w rzeczywistosci), bardzo trudno jest dzwonic za darmo przy ich pomocy. W rzeczy samej nie da sie, ale sa przeciez sposoby ominiecia wszelkich trudnosci technicznych, prawda? Wracajac do telekart to wszystkie dane sa czytelne bez zadnych ograniczen, poniewaz nie ma wewnatrz zadnych poufnych informacji. Jednak sa na tyle dobrze zrobione, ze zabezpieczaja interesy firm telekomunikacyjnych (za granica tez sa wielkie i pazerne twory TPSA-podobne). A wiec czym sa dokladnie telekarty? W rzeczywistosci sa to: 256 bitowy EPROM (karty francuskie) lub 128 bitowy EEPROM (karty niemieckie) z szeregowym wyjsciem i kilkoma innymi kontrolnymi stykami. Karty innych panstw to tylko powielenie technologii francuskiej lub niemieckiej (ale dotyczy to tylko Europy w USA jest troche inaczej). Oczywiscie kazdy kraj ma wlasna specyfike, ale roznice sa w bitach - bedzie o tym duzo w czesci ze schematami. Powstaje pytanie: dlaczego nie mozna (teoretycznie) telekarty "napelnic" (uzupelnic) po raz drugi (i kolejny)? Otoz zeby uzupelnic po raz drugi telekarte trzeba by skasowac zapis przy pomocy promieni UV (ultra fioletowych). Mozna tego dokonac jedynie na EPROMie a nie dziala to na EEPROMie (taka jest jego specyfika elektroniczna). Karty sa pokryte, w technologii UV, nieprzezroczysta zywica a to powoduje, ze UV nie moze dotrzec do krzemowego chipu. A wiec nastepna przeszkoda po EEPROMie. Ale nawet gdyby byl to EPROM i jakby sie udalo zamazac chip trzeba by teraz zaprogramowac tzw. przetworczy obszar karty a wiec wyrugowac bezpiecznik bedacy specjalnie ustawiony po zaprogramowaniu karty w fabryce, tak aby uniemozliwial zapis. Krotko mowiac ta czesc karty jest zabezpieczona przed zapisem i aby to zmienic trzeba by dysponowac takim sprzetem oraz technologia jak w fabryce robiacej te karty. Pomimo tego, warto dokladnie poznac jak te karty dzialaja, zeby zobaczyc jakie rodzaje danych sa wewnatrz i w jaki sposob dane te sa mapowane. Z drugiej strony BEZ DOKLADNEGO POZNANIA BUDOWY TYCH KART nie da sie nic pozniej zrobic w zwiazku z ich "samodzielnym tworzeniem" ;). W tym celu trzeba wreszcie zobaczyc ile modulow (jednostek) jest pozostawianych po wydzwonieniu. Poza tym karty te maja bardzo duzo innych zastosowan, poza dzwonieniem, np. kiedy mozna ich uzyc jako klucz do otwarcia drzwi lub jako klucz do zabezpieczenia programu (na podstawie ich kodowania). Oba przypadki sa jak najbardziej prawdziwe, ale nie bede sie tu nimi zajmowal (to raczej drugorzedna rzecz) ;). Jesli idzie o historie i ciaglosc technologiczna to telekarty francuskie zostaly stworzone w 1984. Konstruktorzy zdecydowali sie robic je w technologii NMOS, ale teraz uzywaja juz technologii CMOS (od okolo roku 1994 chociaz zdarzaja sie jeszcze w tej poprzedniej wersji). Czytniki w automatach publicznych zostaly juz niemal wszystkie zastapione na CMOS, poza jednostkowymi przypadkami. Jednoczesnie uzywa sie EEPROMu zarowno do zabezpieczania kart jak i dodania do nich wielu uzytecznych (z punktu widzenia klienta i producenta), informacji. To nazywa sie "Telekarty drugiej generacji", chociaz moim zdaniem duzo tu halasu (dumna nazwa) a zmian niewiele. Poza lepszym zabezpieczeniem, tzw. "obszarem producenta" i zmiana wygladu nie ma tam nic wiecej. b) schemat chipu .-------------------. | | --|> Clk | | _ | --| R/W | | | --| Reset | | | --| Fuse | | | --| Vpp | | | | | '-. .-' | | .-------------------. | Out |-- wyjscie szeregowe '-------------------' c) opis stykow zlacza AFNOR CHIP ISO CHIP ---------- -------- -------------+------------- -------------+------------- | 8 | 4 | | 1 | 5 | | | | | | | +-------\ | /-------+ +-------\ | /-------+ | 7 +----+----+ 3 | | 2 +----+ + 6 | | | | | | | | | +--------| |--------+ +--------| |--------+ | 6 | | 2 | | 3 | | 7 | | + +----+ | | +----+----+ | +-------/ | \-------+ +-------/ | \-------+ | 5 | 1 | | 4 | 8 | | | | | | | -------------+------------- -------------+------------- NB: tylko pozycja chipu jest ustandaryzowana wedlug ISO. Nie dotyczy to jednak stykow. Styki: 1 : Vcc = 5V 5 : Gnd ----- 2 : R/W 6 : Vpp = 21V 3 : Clock 7 : I/O 4 : Reset 8 : Fuse d) podstawowe paramtery - Protokol Synchroniczny. - Technologia N-MOS. - Organizacja wedlug schematu 256x1 bit . - 96 zapisan zabezpieczonych przez wyrzucenie bezpiecznika. - Niska moc 85mW w trybie odczytu. - 21 V programujacego napiecia. - Czas dostepu: 500ns - Zakres temperatury: -10C + 70C - 10 lat przetrzymania danych. e) diagramy czasowe (timingi) +21V _____________ +5V ____________________________________| |_______________ Vpp : : +5V ___________________:_____________:_______________ Reset 0V ________________| : : : : : +5V ____ : ____ : ______:______ 0V ___| |_______:_____| |________:______| : |________ Clock : : : : : : : : : +5V : : : : : :______:______: : _ 0V ___:____:_______:_____:____:________| : |______:________ R/W : : : : : : : : : +5V : : :_____: :________: : : :________ 0V XXXXXXXXXXXXXXXXX_____XXXXXX________XXXXXXXXXXXXXXXXXXXXXX________ Out : : : : : :<-----><---->: : : : : : : :10 to 10 to : : : : : : :50 ms 50ms : Reset Bit 1 Bit2 Bit 3 karty odczyt odczyt Bit2 zapisywany do 1 odczyt f) mapa pamieci kart z Francji i Monako Bajty Bity Binarnie Szesnastkowo +-----------+-----+ 1 1 --> 8 | | | ---> kod konstrukcyjny +-----------+-----+ 2 9 --> 16 | 0000 0011 | $03 | ---> telekarta francuska +-----------+-----+ 3 17 --> 24 | | | +-----------+-----+ 4 25 --> 32 | | | +-----------+-----+ 5 33 --> 40 | | | +-----------+-----+ 6 41 --> 48 | | | +-----------+-----+ 7 49 --> 56 | | | +-----------+-----+ 8 57 --> 64 | | | +-----------+-----+ 9 65 --> 72 | | | +-----------+-----+ 10 73 --> 80 | | | +-----------+-----+ 11 81 --> 88 | | | +-----------+-----+ 12 33 --> 40 | 0001 0011 | $13 | ---> 120 jednostkowa karta | 0000 0110 | $06 | ---> 50 jednostkowa karta | 0000 0101 | $05 | ---> 40 jednostkowa karta +-----------+-----+ 13-31 97 --> 248 | | | ---> Obszar jednostek: za kazdym | | | razem gdy jednostka jest | | | uzywana, bit ustawia sie na | | | wartosc "1"; | | | Ogolnie, pierwsze 10 | | | jednostek jest spalanych w | | | fabryce na probe. +-----------+-----+ 32 249 --> 256 | 1111 1111 | $FF | ---> karta jest pusta +-----------+-----+ g) mapa pamieci kart z innych krajow Bajty Bity Binarnie Szesnastkowo +-----------+-----+ 1 1 --> 8 | | | +-----------+-----+ 2 9 --> 16 | 1000 0011 | $83 | ---> telekarta +-----------+-----+-----------+-----+ 3-4 17 --> 32 | 1000 0000 | $80 | 0001 0010 | $12 | ---> 10 jednostkowa karta | | | 0010 0100 | $24 | ---> 22 jednostkowa karta | | | 0010 0111 | $27 | ---> 25 jednostkowa karta | | | 0011 0010 | $32 | ---> 30 jednostkowa karta | | | 0101 0010 | $52 | ---> 50 jednostkowa karta | | | 0110 0010 | $62 | ---> 60 jednostkowa karta | | | 1000 0010 | $82 | ---> 80 jednostkowa karta | 1000 0001 | $81 | 0000 0010 | $02 | ---> 100 jednostkowa karta | | | 0010 0010 | $22 | ---> 120 jednostkowa karta | | | 0101 0010 | $52 | ---> 150 jednostkowa karta +-----------+-----+-----------+-----+ 5 33 --> 40 | | | ---> $00 dla Szwecji. +-----------+-----+ 6 41 --> 48 | | | +-----------+-----+ 7 49 --> 56 | | | +-----------+-----+ 8 57 --> 64 | | | +-----------+-----+ 9 65 --> 72 | | | +-----------+-----+ 10 73 --> 80 | | | +-----------+-----+ 11 81 --> 88 | | | ---> $11 dla Szwecji +-----------+-----+ 12 89 --> 96 | 0001 1110 | $1E | ---> Szwecja | 0010 0010 | $22 | ---> Hiszpania | 0011 0000 | $30 | ---> Norwegia | 0011 0011 | $33 | ---> Andora | 0011 1100 | $3C | ---> Irlandia | 0100 0111 | $47 | ---> Portugalia | 0101 0101 | $55 | ---> Czechy | 0101 1111 | $5F | ---> Gabon | 0110 0101 | $65 | ---> Finlandia +-----------+-----+ 13-31 97 --> 248 | | | ---> Obszar jednostek: za | | | kazdym razem gdy jednostka | | | jest uzywana, bit ustawiany | | | jest na "1"; | | | Ogolnie pierwsze 10 | | | jednostek jest spalanych w | | | fabryce na probe. +-----------+-----+ 32 249 --> 256 | 0000 0000 | $00 | +-----------+-----+ Sekcja II. Karty ODS, Giesecke & Devrient, ORGA Karten systeme, Uniqua, Gemplus, Schlumberger i Oldenbourg Kartensysteme: ------------------------------------------------------------------------ a) wprowadzenie Specyfika tych kart to 128 bitowa pamiec w technologii NMOS. Ponizej mapa pamieci tych kart: 64 bitowy EPROM zapis zabezpieczony (obszar przetworczy). 40 bitowy EEPROM (5x8 bitow). 24 bity ustawione na "1". b) styki ISO 7816-2 -------------+------------- | 1 | 5 | Styki | | | ----- +-------\ | /-------+ | 2 +----+ + 6 | 1 : Vcc = 5V 5 : Gnd | | | | 2 : Reset 6 : n.c. +--------| |--------+ 3 : Clock 7 : I/O | 3 | | 7 | 4 : n.c. 8 : n.c. | +----+----+ | +-------/ | \-------+ n.c. : nie polaczony | 4 | 8 | | | | -------------+------------- c) podstawowe parametry - ISO 7816 - kompatybilne w 1/2. - uzywane pojedyncze (5V) napiecie zasilania. - zuzycie niskiej mocy. - technologia NMOS. d) diagramy czasowe (timingi) reset ----- Adres licznika jest resetowany na 0 kiedy zegar, linia CLK, podnosi sie dopoki linia kontrolna R jest wysoka. Zauwazyc nalezy takze, ze licznik adresowy nie moze byc zresetowany gdy znajduje sie on w zakresie od 0 do 7. __________________ _____| |_____________________________________________ Reset : : : _____ : _____ _____ _____ _____ _____:_______| |____:_| |_____| |_____| |_____| |_ Clk : : : : : : : : : : : _____:_______:__________:_:_____:_____:_____:_____:_____:_____:_____:_ _____:___n___|_____0____:_|_____1_____|_____2_____|_____3_____|___4_:_ (Address) : : : : : : : _____:_______ ____:_______:___________:___________:___________:_ _____: |_____| :_______|___________|___________|___________|_ Data Bit n Bit 0 Bit 1 Bit2 Bit3 Licznik adresowy jest zwiekszany o 1 na kazdym zboczu narastajacym zegara - sygnal CLK, tak dlugo az linia kontrolna R jest szczatkowo mala (istotne!!). Dane bedace w kazdym zaadresowanym bicie sa wysylane na I/O za kazdym taktem zegara. Mozliwe jest tu zmniejszenie licznika adresow a wiec adresowanie wczesniejszego bitu. Licznik adresowy musi byc jednak wyzerowany, a pozniej zwiekszony do wymaganej wartosci. zapis ----- Wszystkie niezapisane lub zamazane bity w obrebie adresu 64-104, moga pozostac dalej niezapisane. Kiedy komroka pamieci nie jest zapisywana to ustawiana jest na 0. Zaadresowana komorka jest niezapisana az do ponizszej sekwencji: 1 - R podnosi sie dopoki wartosc zegara jest niska. Trwa to az do wylaczenie licznika adresowego poprzez zwiekszenie go o jeden takt zegara. 2 - Wartosc zegara jest wtedy podnoszona do minimum 10ms az do zapisania bitu adresu. Gdy operacja zapisu sie konczy, wartosc zegara spada, licznik adresowy jest odblokowany a zawartosc zapisanej komorki, ktora wynosi teraz 0, jest wysylana na I/O, jesli operacja przebiegla pomyslnie. Nastepny takt zegara zwiekszy adres o jeden, nastepnie zapisana sekwencja bedzie mogla byc powtorzona do zapisania nastepnego bitu. Wiem ze troche to skaplikowane (lub nawet bardzo ;) ), takze dla osob znajacych elektronike, ale schematy wyjasniaja to lepiej niz moj opis ;) Mam nadzieje, ze sobie poradzicie z tym. _____ _____ _____________| |______________________________| |_______________ Reset : : ___ : _____ ___ : _____ ____| |____:__________| |_________| |_____:__________| |____ Clk : : : : : : : : : ____:________:__________:_____:_________:___:_____:__________:_____:_____ n | n+1 | n+2 | : n+3 | : (Address) ----'--------:----------'-----:---------'---:-----:----------'-----:----- : : : : : : : ________ ____:_____ __________:_____________:_____:_____ __________:____ ________|____| |__________|_____________|_____| |__________|____ I/O n n+1 : : n+1 n+2 : : : : : : zapis zapis Nosnik Zapisu ------------- Licznik jest zamazywany przez wykonanie sekwencji Nosnika Zapisu. Dzieje sie to podczas nastepnego, najwazniejszejszego jego dzialania (najwyzszy priorytet), powodujacego zamazywanie licznika. Sekwencja Nosnika Zapisu jest nastepujaca: 1 - Licznik adresowy jest ustawiany na niezapisany bit, ktory jest tez zamazywany, w nastepnym najwazniejszym etapie pracy licznika. 2 - Zwiekszanie jest wylaczone na nastepnym zboczu narastajacym R gdzie wartosc zegara jest szczatkowo niska. 3 - Wartosc zegara jest wtedy zwiekszana do minimum 10ms, dopoki R jest male, zeby zapisac nastepny zaadresowany bit. 4 - R podnosi sie znowu dopoki wartosc zegara pozostaje szczatkowo mala, zeby wylaczyc zwiekszanie po raz drugi. 5 - Wartosci zegara podnosi sie do minimum 1ms, dopoki R jest male, zeby zapisac zaadresowany bit po raz drugi, wymazujac poziom licznika bezposrednio ponizej zaadresowanego bitu. _____ _____ ______| |____________________| |_________________________________ Rst : : : _______ : _______ ___ ______:___________| |______:_____________| |______| |______ Clk : : : : : : : : : : : : : : : : <------------------------- address n ------------------------>:<--- n+1 ------ : : : : : : : : : : : : : : ______:_____ _____________:______:_____ _______________:__________:______ ______| |_____________|______| |_______________|__________|______ I/O : : n : : n n+1 : : : : Zapis Kasowanie e) Mapa pamieci Bajty Bity Binarnie Szesnastkowo +-----------+-----+ 1 1 --> 8 | | | +-----------+-----+ 2 9 --> 16 | 0010 1111 | $2F | ---> Niemcy | 0011 0111 | $37 | ---> Holandia | 0011 1011 | $3B | ---> Grecja +-----------+-----+ 3 17 --> 24 | | | 4 25 --> 32 | | | ---> obszar wydawcy 5 33 --> 40 | | | (zapis niedozwolony) 6 41 --> 48 | | | 7 49 --> 56 | | | 8 57 --> 64 | | | +-----------+-----+ 9 65 --> 72 | | | ---> c4096 ) 10 73 --> 80 | | | ---> c512 ) 11 81 --> 88 | | | ---> c64 ) * 5 faza licznika 12 89 --> 96 | | | ---> c8 ) osemkowego 13 97 --> 104 | | | ---> c0 ) +-----------+-----+ 14 105 --> 112 | 1111 1111 | $FF | 15 113 --> 120 | 1111 1111 | $FF | ---> obszar bitow ustawiony na 16 120 --> 128 | 1111 1111 | $FF | "1" +-----------+-----+ Obszar wydawcy -------------- Obszar wydawcy zawiera 40 bitow. Tresc jego jest wyspecyfikowana przez wydawce karty, i jest ustalona w procesie produkcji. Tresc obszaru wydawcy bedzie zawierala dane takie jak numery seryjne, daty czy centra dystrybucyjne. Ten obszar jest przenaczony tylko do odczytu. Obszar licznika --------------- Obszar licznika przechowuje jednostki karty. Jego wartosc poczatkowa jest wyspecyfikowana w obszarze zastrzezonym przez wydawce karty i ustawiona w procesie produkcji. Obszar licznika jest podzielony na 5 faz liczydla. Wartosc osemkowa kazdej fazy jest zdefiniowana przez liczbe bitow ustawionych na "1". Wartosc tej fazy musi byc wielekrotnoscia wspolczynnika 8^n (gdzie n miesci sie w obrebie [4..0] ). przyklad: dla karty gdzie pozostalo 15818 jednostek zwyklych (lub pienieznych). Bajt9 Bajt10 Bajt11 Bajt12 Bajt13 ------------------------------------------------------------------ 00000111 - 00111111 - 01111111 - 00000001 - 00000011 ------------------------------------------------------------------ (3)osemkowo (6)osemkowo (7)osemkowo (1)osemkowo (2)osemkowo ------------------------------------------------------------------ Wartosc = 3*8^4 + 6*8^3 + 7*8^2 + 1*8^1 + 2*8^ -------------------------------------------------------------- Suma = 15818 jednostek Zauwazyc nalezy, ze gdy sie zmniejszy licznik to wtedy nie ma on pozwolenia na zapis wartosci wiekszej niz poprzednia. f) Parametry elektryczne maksymalne wartosci ------------------- +--------+------+------+------+---+ | Symbol | Min | Max |Jednostka | +----------------------------+--------+------+------+----------+ | napiecie zasilania | Vcc | -0.3 | 6 | V | +----------------------------+--------+------+------+----------+ | napiecie wejsciowe | Vss | -0.3 | 6 | V | +----------------------------+--------+------+------+----------+ | temperatura przechowywania | Tstg | -20 | +55 | C | +----------------------------+--------+------+------+----------+ | moc rozpraszana | Pd | - | 50 | mW | +----------------------------+--------+------+------+----------+ charakterystyka stalopradowa ---------------------------- +--------+-----+-----+-----+-----------+ | Symbol | Min.| Typ.| Max.| Jednostka | +------------------------------+--------+-----+-----+-----+-----------+ | prad pobierany | Icc | - | - | 5 | mA | +------------------------------+--------+-----+-----+-----+-----------+ | napiecie wejsciowe (niskie) | Vl | 0 | - | 0.8 | V | +------------------------------+--------+-----+-----+-----+-----------+ | napiecie wejsciowe (wysokie) | Vh | 3.5 | - | Vcc | V | +------------------------------+--------+-----+-----+-----+-----------+ | wartosc wejscia R | Ih | - | - | 100 | uA | +------------------------------+--------+-----+-----+-----+-----------+ | wartosc wejscia Clk | Il | - | - | 100 | uA | +------------------------------+--------+-----+-----+-----+-----------+ | wartosc wyjscia (Vol=0.5V) | Iol | - | - | 10 | uA | +------------------------------+--------+-----+-----+-----+-----------+ | wartosc wyjscia (Voh=5V) | Ioh | - | - | 0.5 | mA | +------------------------------+--------+-----+-----+-----+-----------+ charakterystyka zmiennopradowa ------------------------------ +--------+------+------+------+ | Symbol | Min. | Max. | Jedn.| +----------------------+--------+------+------+------+ | szerokosc impulsu | tr | 50 | - | us | | R adres zerowany | | | | | +----------------------+--------+------+------+------+ | szerokosc impulsu | ts | 10 | - | us | | R zapis | | | | | +----------------------+--------+------+------+------+ | wysoki poziom Clk | th | 8 | - | us | +----------------------+--------+------+------+------+ | niski poziom Clk | tl | 12 | - | us | +----------------------+--------+------+------+------+ | strob zapisu | Twrite | 10 | - | ms | +----------------------+--------+------+------+------+ | strob kasowania | Terase | 10 | - | ms | +----------------------+--------+------+------+------+ | | tv1 | 5 | - | us | +----------------------+--------+------+------+------+ | | tv2 | 3.5 | - | us | +----------------------+--------+------+------+------+ | | tv3 | 3.5 | - | us | +----------------------+--------+------+------+------+ | | tv4 | 3.5 | - | us | +----------------------+--------+------+------+------+ | | tv5 | 3.5 | - | us | +----------------------+--------+------+------+------+ | | tv6 | 5 | - | us | +----------------------+--------+------+------+------+ | | tv7 | 5 | - | us | +----------------------+--------+------+------+------+ | | tv8 | 10 | - | us | +----------------------+--------+------+------+------+ SEKCJA III. Schemat czytnika ---------------------------- a) czytnik 1 Zewnetrznie 5V (Opcjonalnie) 5V o------, | / T2 PNP d13 r7 10 0V o--, | / BC 177 |\ | _____ | | ,-------o/ o--*------. E C .--| >+-[_____]--------, __+__ | | | \ / |/ | | \\\\\ | __|__ Bateria | \ / | | - 22.5V | --------- | ....... | | | _____ | _____ | : | __+__ +--[_____]--*--[_____]--, | D2 : | \\\\\ r6 150k r5 15k | | 4 o-------|---------------------------*------------------|-------------, | : | | r3 220k / C | | Ack : | | _____ |/ T1 - NPN | | 10 o------|--------. '--[_____]-*---| BC107 | | : | | _____ | |\ | | : ,-, ,-, +--[_____]-' \ E | | : | |r2 | |r1 | r4 390k | | | : | |220 | |22k __+__ __+__ | | : |_| |_| \\\\\ \\\\\ | | : | |\ | | | | : *--| >+--|----------------*----------------------------------|--* : | |/ | | ,-----|-----------------------------, | | : | d1 | | | ,----------,----------, | | | : | | | *---|--* Fuse | Reset *--|---' | | : | | | | |----------|----------| | | D0 : | | | ,-|---|--* I/O | Clk *--|---, | | 2 o-------|--------|----------' | | |----------|----------| | | | : | | | '---|--* Vpp | R/W *--|---|----' | Busy : | | | |----------|----------| | | 11 o------|--------|--------------' ,---|--* Gnd | 5V * | | | : | | | '----------'-------|--' | | D1 : | | __+__ Zlacze chipu | | | 3 o-------|--------|--------, \\\\\ | | | : | | '------------------------------|------' | Str : | |\ | | | | 1 o-------*--| >+--*----*----*----*----*-------------------' | : d2|/ | |d3 |d4 |d5 |d6 |d7 | : -+- -+- -+- -+- -+- | : /_\ /_\ /_\ /_\ /_\ | D3 : | | | | | |\ | d8 | 5 o----------------*----|----|----|----|---| >+-------*-------------------' : | | | | |/ | | : | | | | | D4 : | | | | |\ | d9 | 6 o---------------------*----|----|----|---| >+-------* : | | | |/ | | : | | | | D5 : | | | |\ | d10 | 7 o--------------------------*----|----|---| >+-------* : | | |/ | | : | | | D6 : | | |\ | d11 | 8 o-------------------------------*----|---| >+-------* : | |/ | | : | | D7 : | |\ | d12 | 9 o------------------------------------*---| >+-------' : |/ | : : 25 o------. : | .......: | d1 do d13: 1N4148 __+__ \\\\\ Port rownolegly b) czytnik 2 dioda Zenera 3.3V 2x1N4001 ________ 150 |\ | |\ | | | _____ | /| (6) o----, ,--+ >+--*--+ >+--*---+ 7824 +----*--o o-|_____|-+< +-*----o Vpp | | |/ | | |/ | | |________| | | \| | )||( 220F | 220F | | ===== 0.22F _+_ 220V )||( 25V | + 40V | + | | / \ 1N4148 )||( ===== ===== __+__ __+__ '-+-' ~ )||( | - | - \\\\\ \\\\\ ,+, | | ___ | | | | 12 o----' '--o o-* __+__ | | obecnosc | \\\\\ ________ '+' 12 karty | |\ | | | | _____ (1) '--+ >+------+ 7805 +------*-------------------*--|_____|-o Vcc |/ | |________| | | 1N4001 | _+_ | | \ / ---> ,+, __+__ -+- ---> | | \\\\\ | | | 4.7k ,+, '+' | | | (7) | | 680 *----------o I/O '+' | | Zajete (11) o | (4) __+__ D0 (2) o-----*----o Raz \\\\\ | 4.7nF ===== | __+__ \\\\\ (3) D1 (3) o----------o Clk (2) D2 (4) o----------o W Gnd (25) o | fuse (8) *--~~~~~---o Fus __+__ \\\\\ +----------------------------------------------------------------------+ | CZESC B. Jak zrobic wlasna telekarte? | +----------------------------------------------------------------------+ SEKCJA I. Teoria ---------------- a) szczegoly i podstawowy program Tak naprawde system stosowany w kartach chipowych mozna dosyc prosto obejsc, poniewaz wcale nie jest tak dobrze zabezpieczony, jak moglo by sie wydawac po przeczytaniu CZESCI A. Ponizej przedstawione jest dosyc specyficzne oprogramowanie dla mikrokomputera jednoukladowego PIC 16C84 RISC, wyprodukowanego przez Microchip. Umozliwia on emulacje kart Schlumberger i innych. System ten funkcjonuje w Skandynawii (Szwecja, Norwegia i Finladnia), Hiszpanii, Francji, Monako i w wielu innych krajach. W przypadku Francji (ewentualnie innych krajow) oprogramowanie to wymaga sladowych modyfikacji dla poprawnego dzialania, ale jest to rzecz na poziomie juz banalnym (przy zalozeniu, ze rozumie sie cala tresc przedstawiona do tej pory). A wiec co do przedstawianego tu tematu niezbedne jest posiadanie dostepu do programatora (PROMu), mogacego poradzic sobie z ukladem PIC 16C84. Mozna rowniez zbudowac cos takiego samemu jak to pokazane jest na dolaczonych schematach ponizej. Po pierwsze, trzeba wczytac pierwsze 12 bajtow danych z poprawnie dzialajacej karty z kraju, w ktorym emulator ma dzialac. Warunek ten jest niezbedny do spelnienia. Ma to byc karta aktualnie funkcjonujaca, a nie jakas sprzed 10 lat (lub nawet sprzed 2). Nastepnie wystarczy tylko wprowadzic te 12 bajtow danych we wlasciwe miejsce w ponizszym programie i to skompilowac. To wszystko ;-) Proste, prawda? Poniewaz zdecydowanie przypadkowo wybralem wersje ukladu PIC z zewnetrznymi danymi EEPROMu, oznacza to, ze pierwsze 12 pozycji danych EEPROMu powinno zawierac identyfikator (ID) karty. Do dzisiaj kod ten powinien (!) dzialac bez zadnych problemow. Jesli cos jest nie tak w niektorych przypadkach, wystarczy zmodyfikowac odpowiednio ten program (jesli sie samemu nie umie poprosic kolege codera ;) ). Poniewaz PIC jest bardzo szybkim i "mocnym" mikrokomputerem jednoukladowym, moze byc to stosunkowo trudne dla firm robiacych telekarty rozwiazanie problemu (a dla nas to oczywiscie lepiej ;) ). Aha i jeszcze jedna sprawa co do oprogramowania: zauwazyc nalezy, ze biezaca wersja pakietu PICSTART 16B Microchip'u jest niemozliwa do programowania tablicy danych EEPROMu w ukladzie 16C84, wiec jesli zamierzacie tego uzywac, uzyjcie innej wersji kodu, ktory znajdziecie w dodatkach. |