Čitanje saobraćajne dozvole sa čipom
Dopuna novembar, 2013: Programerima je sada dostupna Java biblioteka za čitanje saobraćajne dozvole sa čipom i aplet koji je primer korišćenja biblioteke i koji je pogodan za ugradnju u veb aplikacije.
U međuvremenu, MUP je objavio zvaničnu aplikaciju i API za Microsoft Windows operativni sistem koji se mogu preuzeti sa njihovog sajta.
Pre nekoliko dana me je kolega programer e-poštom pitao oko čitanja saobraćajnih dozvola, valjda zbog iskustva sa ličnim kartama.
Nisam gledao karticu, ali trebalo bi da je po EU pravilima, detaljno opisanim u aneksu 1 direktive 2003/127/EC. Kod nas se primenjuje Pravilnik o registraciji motornih i priključnih vozila (Sl. glasnik RS, 69/2010, 101/2010) koji na prvi pogled u članu 15 deluje usaglašen sa direktivom.
ISO 7816-4 standard koji opisuje naredbe za šetnju po sistemu datoteka i čitanje podataka je dostupan kao puni pregled sa IEC sajta.
Ako neko krene da se igra i programira softver, bilo bi lepo da objavi izvorni kod. Osnovni softver koji čita i ispisuje podatke je jednostavno napraviti, do jedan dan posla. Lep prikaz tih podataka uz analizu kodova i ispis čitljivih opisnih vrednosti je nešto zahtevnije jer treba rastumačiti više standarda i pribaviti spiskove koji se uglavnom mogu naći uz malo Guglanja.
Najbolje bi bilo kada bi sami korisnici koji znaju šta od podataka žele da čitaju sa saobraćajne dozvole pokrenuli i pomogli razvoj nezavisnog softvera i API-ja.
Za čitanje se koriste standardni čitači (kao i za ličnu kartu sa čipom, ili za čitanje pametnih kartica za e-bankarstvo) ali je softver drugi. Ako bi grupa korisnika sada zajednički razvila i objavila otvoreni kod, program bi svi mogli da koriste. Nema potrebe da se čeka gotovo rešenje.
Čitanje godišta proizvodnje vozila sa saobraćajne dozvole je mnogima zanimljivo pošto se podatak naizgled ne nalazi napisan spolja. Međutim oznaka šasije (Vehicle identification number) sadrži godinu proizvodnje kako je određeno standardom ISO 3779. Godište je tako predstavljeno desetim simbolom polja (E) na poleđini saobraćajne dozvole (ovaj zapis postoji i u čipu) prema ponavljajućem kodu u tabeli:
Izgleda da ne poštuju svi proizvođači doslovno ISO 3779, pa se po forumima i sajtovima pominju i određena odstupanja.
Naknadnom izmenom pravilnika predviđen je i upis godine proizvodnje u čip saobraćajne dozvole. Kako EU direktiva ne predviđa prostor pitanje je gde se zapravo podatak nalazi. Doslovno čitajući pravilnik moguće da se nalazi u datoteci sa opcionim podacima, uz boju vozila (odeljak II.6, EF D011), iako kako se uvodi novi kod, možda bi tačnije bilo čuvanje u skladu sa odeljkom II.7 (nepoznato ime datoteke). U svakom slučaju, nije teško proveriti.
5 komentara
3 apr 2012 Sasa
Sta treba da se uradi kada se izgubi saobracajna dozvola,da li neko drugo lice moze da prijavi nestanak i izvada novu saobracajne kada se vlasnik nalazi u inostranstvu?
11 jul 2011 Goran Rakić
Nova prepiska e-poštom:
U nedelju, 10. 07 2011. у 23:44 +0200, Nebojsa Simic piše:
> Sa citanjem cipa nisam daleko dogurao,...
> Posto ne mogu da pronadjem ni tacne parameter P1 i P2
>
Deluje mi da si na pravom putu.
Moguće da kartica ne radi podrazumevano izbor DF i zato preporučeni P1=02 (EF under the current DF) ne radi. Šta kaže ATR i u njemu sadržan Historical bytes?
Direktiva kaže da se EF.Registration_A (oznaka D001) i EF.Registration_B (oznaka D011) nalaze unutar DF.Registration, ali ne navodi njegovo ime (do 16 bajtova) ili oznaku (2 bajta). Ako nije podrazumevano izabran, trebalo bi da to otkrijemo!
Šta sadrži EF.DIR (po putanji 3F00 2F00)?
Kada znamo ime, onda valjda nakon ATR ide SELECT uz P1=04 (Select by DF name), i potom SELECT uz pomenuti P1=02.
> Naime napravio sam neki brojac koji vrti SELECT komandu u nadi da cu dobiti neki niz nazad ali...
> Uspeo sam da dobijem odgovor 9000 - sto je potvrda da je komanda prihvacena...
>
Ako ne znamo ime, možemo i da jurimo ova dva EF izborom uz P1=08, po putanji oznaka, svaka dužine dva bajta, uz pretpostavku da je DF.Registration na najvišem nivou.
> ... I to u nekoliko raznih kombinacija pa sam se zaglavio jer ne znam koju da trkeljam dalje
>
Sve i kada sastaviš dump gledaš šta gde ima ;)
Ako u SELECT staviš P2=04 dobićeš nazad FCP koji sadrži dužinu datoteke.
pp,
Goran
2 avg 2011 Дарко Бабић
Кад већ разматрамо овај тип микроконтролера приложио бих програмчић pySIM (http://twhiteman.netfirms.com/pySIM.html). На жалост још га нисам истестирао, јер немам уложак за картицу са којим бих га гурнуо у читач.
Што се тиче програма за читање саобраћајних дозвола претпостављам да се решење може потражити на сајтовима Министарства унутрашњих послова, али не Србије већ неке друге Европске земље.
27 avg 2011 Goran Rakić
Malo analize zapisa: https://gitorious.org/freesteel/pages/EvrcCard
Najveći problem jeste što nam treba TLV parser koji razume pod tagove.
Ove grupe bez dužine (71, 72, 73 i 74) možemo lako preskočimo i odmah krenemo nivo ispod. Međutim "problem" su A* tagovi koji imaju podtagove fino sa sve označenim dužinama.
Ja tu kao i u EidCard ne bih izmišljao puni TLV parser već bih u kodu eksplicitno A* preskakao i išao u dubinu.
Od pravila odudara jedino 78 > 4F, ali ja bih njega odmah ofsetom preskočio i kretao sa čitanjem odmah posle AID oznake.
12 jan 2012 Hyundai
Odličan tekst. Hvala na informacijama.