Kontaktlose Basiccard
Transcrição
Kontaktlose Basiccard
RFID Kontaktlose Basiccard Chipkarten sehrdisl<ret einsetzen (F) VonPatrick Cueulle D i ee i n z i g ei n B a s i cp r o g r a m m i e r b a r e C h i p k a r t ei s t s c h o nm e h ra l s1 0 J a h r e auf dem Markt und wird seither kontinuierlich weiterentwickelt. Alseine der bekanntestenKartenmit offenem Betriebssystem ist sie neuerdingsdurch eineRFID-Version noch interessanter geworden.EingroßerVorteilist auch in Verbindungmit der kontaktlosen Chipkartedie Verfügbarkeitvon sehr l e i s t u n g s f ä h i g e( unn d k o s t e n l o s e n ! ) E n t w i c k l u n g s w e r k z e u gdeine,d a z u e i n l ä d t s, i c hm i t d i e s e rf a s z i n i e r e n d e n Technologie zu beschäftigen. Seitdem Erscheinen der erstenBasicCard .Compact" im Jahr1998 hat sichdie Philosophiehinter diesemProduktnicht geändert: Entwicklern(aberauchinteressierten Amateuren)ein Mittel an die Handzu geben,mit dem sieunabhängig von der auf großeStückzahlenausgerichteten Chipkartenindustrie eigeneAnwendungen realisieren können.Dabeiherausgekommen ist eineganzeFamilie von asynchronenKartenin Flash-Technologie, derenMitglieder auchin Kleinmengenund Einzelstücken verfügbarsind.Ausgestattet mit einer(wieder-)programmierbaren (in .virtuellenMaschine" manchenVersionen auch.multiapplikationsfähig"), unterstützen sieeineHochsprache, die einfacheralsJava,abergenausoleistungs(Bild1). fähigist:ZCBasic (Compiler,Simulator,DoubleEinkomplettesEntwicklungssystem Debuggerund Handbuchmit etwa 250 Seiten)stehtzum kostenlosenDownloadunter[1] zurVerfügung. M i t n u r w e n i g e nQ u e l l c o d e - Z e i l ei n s t e s m ö g l i c h ,e i n e B a s i c Cardkompatibelzu fast jedem beliebigenTerminalzu machen, daskannzum Beispielauchein Mobiltelefonsein.Dasbisherige Know-howkommt auchder kontaktlosenVersion2C7.5RFIDzu Gute.Der Übergangwird auchdadurchvereinfacht,dasses mit der ZC7.5-Combi eine Kartemit zwei Interfacesgibt: Einesüber protocolT=0ou T=l ) und ein kontaktloses Kontakte(tronsportloyer (lSO14443type A T=CL).Als RFID-Leser für das kontaktloseIntera8 f a c ek a n nm a n z u m B e i s p i eel i n e nA C R I 2 2o d e r O m n i k e y5 3 2 1 verwenden. Karten-Applikation (RFlDspy.BAS Esgenügenetwa zwanzigProgrammzeilen [2]), um die Flexibif ität einerKartewie derZC7.5-Combiauszuloten.Das Programmbelegtnur einenwinzigenTeil(wenigerals400 Byte P-Code)im 32 KByIe-EEPROM-Bereich des sehrleistungsfähigen Chips.DieseskurzeProgrammist eineT=CL-Variante einesloggers, den wir bereitsfür die ersteBasicCard mit Kontaktenvorgestellt hatten (mit T=0, fürZC4.1),erschienenim Mai 2002 [3]. Damit lassensichdie Befehlespeichernund späterwiedergeben, die ein Lesegerät zum AufbaueinesDialogsmit einerihm präsentierten Karteverwendet.Fallabhängig kanndieser.Spion' sehrfrühzeitig abgelehntwerden- oder auch mehr oder wenigerlangemit einerechtenKarteverwechseltwerden,die für diesesTerminal vorgesehenist. Diezugrundeliegende ldeeist natürlich,diesenBasis-Code Stückfür Stückzu erweitern.Dannkannder eineoderanderedem Lesegerät bekannteBefehl,aufden einepräziseAntworterwartetwird, immer besseremuliertwerden. SospieltmaneinwenigKatzund Maus,um die Sicherheitsmechanismen aufzudecken, die der originaleAufbau verwendetund um derenStärkenund Schwächen abzuschätzen. Kurz,wir habenhiereinsehrkomfortablesExperimentier-Werkzeug. 12-2o1't elektor RFID Betrachtenwir nun die erstendrei Zeilendes Quelltextes,welche auf die sind,und achtenbesonders nur einleitendeDeklarationen Direktivenvom Typ #Pragma,wovon die beidenerstenfÜr den spezifischsind.Dazumussman wissen,dass Contoctless-Modus (Kartenoder Tags)eine eindeudie meisten contoctless-Objekte (UlD)von Byte Längeenthalten,die beider einigen tige Nummer Herstellungin einemROMabgelegtwird. Diesewird nur seltenzur eingesetzt,dient abervor allemfÜrAnti-KollisiKloning-Abwehr nutzt, um auch dann nur die der Contoctless-Leser ons-Prozesse, wenn sichmehmit einerbestimmtenKartezu kommunizieren, befinden. im Lesebereich rere RFID-Karten DieseAbläufesind relativkomplex,werdenaberzum Glückvon Kartenund Leserselbstabgearbeitet,ohne dassder Programmierer hiereingreifenmüsste(esseidenn,er wollte die Algorithmen selbstschreiben).lmmerhinkanner die Anzahlder Bytesfestlegen,ausdenendie UIDbesteht,um sichden tatsächlicheingesetzten Kartenanzupassen. Varianten:Single(vier Bytes' Die ZC7.5erlaubt drei klassische Double(siebenBytes,wie MifareUltralight) wie MifareClassic), und schließlichTriple(zehnBytes).Esist auch möglich,die auf dem Chipfest verdrahteteUID durch eine Zufallszahl(Random) zu verzu ersetzen,um jede Rückverfolgungdes Kartenbesitzers von vier zufälligen wird eine Gruppe Beispiel hindern.In unserem Bytesausgesandt,sobaldder Leserdas Pollingstartet: #Pragma UrD (Random,Sj-ngle) Sobalddie Kommunikationmit der Karte hergestelltist, wählt der Lesersie aus und wartet auf ihre Antwort (ATSoder Answer To Selectl,vergleichbarmit ATR(AnswerIo Reset)einer Karte mit Kontakten. von für die BasicCard Bild1. DieEntwicklungsumgebung ZeitControl. DD findet sichauf einerwachsenden Bild2. DasLogoEMVcontoctless Zahlvon POS-Terminals. # P r a g m a A T S( T A 1 = 0 ,F W I = 7 ,T C 1 = 0 ,H B = " E M V A) " aktiviertwurde. DieserzweiteBefehldient dazu,die Default-Kommunikationspara- in der Kartevor sichgeht,sobaldsievom Lesegerät verfügt über ein internesDateisystem,vergleichbar meter ganzoder teilweisezu verändern,um so die Kompatibilität Die BasicCard ist einfachzu mit dem vorhandenenLeserzu optimieren.lm Beispielwurdensie dem von MS-DOS.EineDateimit NamenCARD.LOG gewählt. Diesesind öffentöffnen: Speciftcotions nach den EMVContoctless sicherndie Kompatibilität Open ,,Card.Log" For Append As #1 lich einsehbar[4]. DieseSpezifikationen ZahzwischenChipkartenund Terminalsfür den elektronischen fungsverkehr,die ein besonderesLogotragen, wenn sie Contoct' Um sievon einerbeliebigenexternenUmgebungauslöschenzu können,ist eszweckmäßig,einengesondertenBefehlzu schreiben' less-Karten akzeptieren(Bild 2). genannt. hierFLUSH EinähnlichesPrinziperlaubtes,die Parameterder DirektiveATRzu ermitteln,die die Karteausgibt,wenn siein einenkontaktbehafte- Command&HCg &HA2 FLUSHO Close ten Lesergestecktwird: K i 1 1 , ,C a r d . 1 o g " ( D i r e c t , End Command H B = T = 1 , " R F I D s p y ") # P r a g m aA T R DieseAnweisunglegt ProtokollT=1 fest und wählt als Übertragungstechnikdirect conventionaus,wir hätten genauso9ut T=0 wählen können.Schauenwir nun, was und/oderdirect convention elektor rz-zorr derKartedenBefehlc8 A2 0o oo oo zu senden, Esgenügtalso, wenn mandie Dateilöschenmöchte.AberdaseigentlicheHerzstÜck desProgrammsbestehtausden folgendensiebenZeilen: RFID C o m m a n dE l s e S A V E ( S $ ) ( )g Ca11 SuspendSWlSW2Processin c $ = c H R $( C L A )+ c H R $( I N s ) + c H R $( P 1 )+ c H R g( P 2 )+ C h r g ( L c ) + C h r $( L e ) + S $ S $ = S t r i n g $( L e , & H F F ) Write#1,C$ s w 1 s w 2= & H 90 00 End Command Dasist alles,was man braucht,um jeden nicht definiertenBefehl (daherdie BenennungELSE), der von der Karteempfangenwird, in die DateiCARD.LOC zu schreiben. Diesgeschieht zusammenmit den Parametern cLA, rNs, p1, p2,Lc, Le und eventuellvom Terminalempfangenen Daten(.Eingangs"-Befehle). Bei Ausgangs"-Befehlen liefertdie Karteper defaulteineAnzahl " BytesFFh entsprechenddem Wert von le (Längeder erwarteten Daten).Mankönnteselbstverständlich aucheineandereAntwort herbeiführen, indemmanden Inhaltvonsg freiwählt,auchkönnen die Statusbytesswt und SW2von 9 o o o verschiedensein,je nach gewünschtemEffektauf dasLesegerät. Terminal-Applikation zu weiterenAnaJetztmussnur nochder Inhaltder DateiCARD.LOC lysenausgelesen werden. Dadie Dateinormalerweisegeöffnetbleibt,um mehrereaufeinanderfolgende Sitzungen aufnehmenzu können,ist esdie ersteAufgabedesProgramms RFlDutil.BAS, einenBefehlcB 04 oo o0 oo zu senden,der die Dateiwie im folgendenProgrammteil beschriebenschließt: c o m m a n d& H c 8 & H 0 4 C O P ( L c = o , S $ ) Cl-ose#1 S $ = "( c ) 2 0 0 9 P a t r i c k G U E U L L E " End Command Diesbenötigtnur zweiZeilenim Quelltext,Terminal": D e c l a r e C o m m a n d& H C 8& H 0 4 C O P ( S $ , L e = & H 1 7 ) c a l t c o P ( S g) DenInhaltder Dateiauszulesen ist ebenfalls einfach.Esgenügt,ein Präfix zu setzen. geöffnet Die Datei wird und kannüberdasTer"@:" minal-Programm ausgelesen werden.DasBetriebssystem erzeugt allenotwendigenBefehleautomatisch: Open"@:card.log" For Input As #1 Danachgibt man für jeden Befehl,für den die DateieineAntwort enthält,folgendesein: Input#1, Z$ DerganzeRestdesCodesdient nur dazu,die geliefertenDatenin 5o Textumzuwandeln, auf der Festplattezu speichernund auf dem Bildschirm anzuzeigen. Praxis Die Entscheidung, ob man mit der integriertenEntwicklungsumgebung(sehrgut geeignetzum Verwaltenvon Projekten)oder mit dem CompilerZCMBasic im Kommandozeilenformat arbeitet,ist einereineFormalie(vorausgesetzt, man hat vorherdasHandbuch studiert).Eswird eineDateiRFlDutil.EXE erzeugt,die direktunter Windows(im Kommandozeilenmodus) lauffähigist.AußerdementstehteineDatei RFlDspy.lMG beziehungsweise RFlDspy.DBG, welche in den Speicher der Kartegeladenwird. Sobalddie Dateidort gespeichert ist,brauchtmandie Kartenur nochin den Lesebereich desTerminals zu bringen,dasman untersuchen möchte. DerAutor hat die Kartean dem POS-Terminal einerSupermarktkassein Frankreich getestet.Dort kannman beiBeträgenunter20 € bereitskontaktlosmit EMV-Karten wie poyPoss von Mastercardoder PoyWove von Visabezahlen. Wennman die BasicCard in die Nähe desPOS-Terminals bringt, bevorder richtigeZahlvorgangmit einer kontaktbehaftetenBankkartebegonnenwird, findet man späterin der DateiCARD.LOG eineReihevon Select-Befehlen finden,die der folgendenähnelt: 00 A4 04 00 0E 32 50 41 59 2E 53 59 53 2E 44 44 46 30 3l00 00 00 00 00 00 00 A4 A4 A4 A4 A4 A4 A4 04 04 04 04 04 04 04 00 00 00 00 00 00 00 07 07 07 07 07 07 07 A0 A0 A0 A0 A0 A0 A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 04 04 03 03 43 42 30 60 10 10 99 99 20 10 r_0 10 10 10 r_0 10 o o stehtfür die Klassel5O(cla) des Befehls,e+ für den Opcode (rNs). 04 oo sinddie Parameterp'J.p2,getrenntvom opplicotion (aro) durchein Bytemit der Längenangabe identifter (Lc). Esist festzuhalten, dassdie Nullam EndejederZeileweggelassen wurde, weil sie nicht zu den für die Analyseinteressanten Datengehört, sondernlediglichanzeigt,dassder BefehlkeineAntwort erwartet ( L e= 0 ) . DieersteZeilestellteinenVersuchder Selektiondar,genanntppSE (ProximityPoymentSystem Environment) mit dem ldentifier(übertragen nachASCII)2pAy. sys . DDFol-. Diesist durchaus vergleichbar mit dem PSEder EMV-Karten mit Kontakten,wobeider ldentifier hiertpay. sys. DDFot-lautet[5]. DaunsereKartemit ungültigen Datenantwortet,nimmt dasTerminalan, dassdasPPSE, welches üblicherweise eineListemit von der KarteunterstütztenApplikationenliefert,nichtverfügbarist.Esversuchtalsoim Blindflugalle seinerseits unterstütztenApplikationenzu selektieren, um so empirischzu ermitteln,welchevon der Karteerkanntwerden. In den beidenfolgendenZeilenzeigt sich,dassdasTerminalversucht,zwei MasterCard-Applikationen auszuwählen, mit der Prio r i t ä t M a e s t r o( a o o o o o o o o 4 3 o e o ) , e i n e rK a r t ef ü r Online-Transaktionen. 12-2011 elektor RFID dersichvom An' Mittelständler, einemdeutschen vonZeitControl, ist eineErfindung DieBasicCard entwickelthat. DieersteBasicCard zumChipkartenspezialisten bietervonZeiterfassungssystemen wurdeschon1996vorgestellt. eineRFID-Expezusätzlich schließtdieVersionDuollnterfoce zu früherenBasicCard-Kits lm Vergleich denTagTracer runden Print-Antenne und LED-Anzeigen (USB-Anschluss, Summer, ein rimentierplatine EntwicklungsDieses sehr erleichtert. Applikationen einzelnen der Einstellung die 14443ab),welche desAutorswirklich.andersalsdieanderen'undbietetweitmehrMöglichkeiten KitistnachMeinung hat. aufdemMarktgefunden waseranVergleichbarem alsalles, . Omnikey5321USB- DuallnterfacePC/SC Reader/Writer Smartcard . Taschenkartenleser (balance reader) . Kontaktloser l5O14443alsPCBDevBoard USBReader/Writer . SoftwareDevelopment Kit (SDK)für Windows . Dokumentation aufCD-ROM . Technisches (Papier, 250Seiten) Handbuch . 4 x BasicCard 2C7.5Combi(32KBEEPROM) rd.com www.basicca WeitereInformationen: oo o0 oo 03 20 10) z u s e l e k t i e r e(no o a a 0 4 o o 0 6 A o o o o o 0 o 5 9 0 0 ) 'd i e NochbevordieApplikationenVisaElectron(ao undVisacredit/debit(aooo o0 oo 03 10 l-0)aufgerufenwerden, seselektronischePortemonnaiegibt es in Versionenmit und ohne wird einemysteriöseApplikationaooo o0 oo 04 99 ss aufge- Kontakte.ldentifier,die längeralsein DutzendBytessind'verraten, Anbieter mehrererkommerzieller rufen.Dabeikönnteessichum eineApplikationfür eineKundenkarte dasseineKarteim Co-Branding wird. erwartet nur nach nicht handeln.Offensichtlichfragt dasContoctless-Lesegerät aus(wenn sondernliestauchgleichnocheineKundenkarte Bankkarten, mit kontaktlosenBankkarten Kre- DerAutor hat nochkeineErfahrungen nach der(frankreichspezifischen Schlusswird Erstzum vorhanden). in anderenLänderngesammelt.In Deutschlandwird es auchnoch o0 oo oo +z ro ro). ditkarte)CarteBleuegefragt(ao einigeZeit biszur EinführungsolcherKartendauern.Einerdpa-MelUmgekehrtversuchteinAutomat,der nur kontaktbehafteteKarten dung vom Juni2011 war zu entnehmen,dassdie deutschenSparkassenmit der AusgabekontaktloserEC-Kartennoch Ende201I annimmt (öffentlicheTelefone,automatischeZapfsäulenetc') die wollensiedannalle beginnenwerden.In den nächstenvierJahren zu selektieren: Reihenfolge Anwendungeneherin dieser und so die VorihrerKundenaustauschen 45 MillionenEC-Karten für daskontaktloseBezahlenperFunkchipan der Ladenaussetzung 00 A4 0 4 0 0 0 7 A 0 0 0 0 0 0 0 4 2 1 0 t 0 sollesdannauch kasseschaffen.Wie schonseitlahrenin Frankreich 00 A4 0 4 0 0 0 7 A 0 0 0 0 0 0 0 4 2 2 0 t o 20 Eurokonvon Betrag zu einem sein, bis möglich in Deutschland 00 A4 04 o0 0E 3l- s0 41 59 2E 53 s9 53 2E 44 44 (und zu bezahlen. PIN-Eingabe!) ohne taktlos 46 30 31 00 00 00 00 A4 A4 A4 A4 04 04 04 04 00 00 00 00 07 07 07 07 A0 A0 A0 A0 00 00 00 00 00 00 00 00 00 00 00 00 03 03 04 04 10 20 10 30 10 1-o 10 60 (0s0378) Weblinks Bankkartenzuerstaufgerufen,noch Hierwerdendie französischen bevorPSEgelesenwird. Und erst danachwerdendie internationalenApplikationendurchprobiert.In dem einenwie dem anderen FallhabendieseStrategiendasZiel,diesenProzessmaximalzu der kritischePunkt. und dasist im contoctless-Modus beschleunigen, Manchmallässtsichein Versuchfeststellen,die ApplikationMoneo elektor rz-zorr [1] www.basiccard.com [2] www.elektor.de/090378 [3] www.elektor.de/010138 [4] www.emvco.com 51