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

Documentos relacionados