No ono ani nijak moc nejde uvolnovat nejake ‚know how‘, nebot kdo se o to zajima, vi ze staci 2 veci:
ISO 7816: T0 je poloduplexni protokol, v podstate seriovy prenos 9600 8N1 (takze TX=RX, +RESET, +CLK), coz zvladne jakykoliv cip (i cyp :-). APDU je ve tvaru CLA INS P1 P2 [LC DATA] [LE]. Probiha tak, ze Terminal posle CLA INS P1 P2 P3 a karta odpovi, bud OK, KO nebo ‚posli zbytek dat‘ a pak odpovi OK,KO
EMV Book: EMV 4.2, Book3, kapitola 6.5: ‚Verify‘ je command 00 20 00 80 08 24 xx xx FF FF FF FF FF, kde xx xx je PIN.
Takze na celou ‚realizaci‘ staci jeden ATMEL se dvema seriovymi portama (at uz hardware nebo software), ktery ‚transparentne‘ preposilava vetsinu dat. Pouze pokud terminal posle APDU, kde prvni 2 byty (CLA,INS) jsou 00,20, nepreposilam, sezeru dalsi 3 (P1,P2,LC), poslu zpet 20 (INS, jako ACK hlavicky), sezeru dalsich LC bajtu (hodnota PINu + padding) a vratim SW=90 00 (9000 je OK).
Takze:
- Terminal si mysli, ze zadal do karty offline PIN, nastavi si ‚nejaky ten bit‘ na OK a je happy (a sdeli to i centale, i na listecek) a mozna provede transakci i offline (zavisi na nastavenych limitech)
- Karta si mysli, ze terminal bud neumi offline PIN (nema pinpad), jede na online PIN (vuci centrale) nebo pouze na podpis
- Centrala (pokud jde transakce do online) dostane od terminalu, ze byl zadan ‚kosher‘ offline PIN, a tudiz kontoluje ‚pouze‘ zustatek
Toz tak …