Archive for 7. Januar 2008
Smartcard communication
Hallo Leute,
für mein Studium beschäftige ich mich derzeit damit wie man auf Smartcards (I2C - 2KBit) Daten schreiben kann und wie man sie wieder auslesen kann. Was sich eigentlich ganz einfach anhört, ist es in Wirklichkeit nicht. Zumindest nicht ohne jegliche Vorkenntnisse.
Um ein Bisschen rumspielen zu können, hab ich mir heute einen Cardreader (Towitoko Chipdrive 120) und nen Packen Smartcards (oben erwähnte I2C-Karten) bei eBay bestellt und freu mich jetz wie Bolle darauf, dass das Zeug ankommt.
Was braucht man aber als Vorkenntnisse? Zu allererstmal muss man wissen, wie man mit dem Cardreader seiner Wahl kommunizieren kann - soll heißen über welche Libraries. Dann sollte man sich (so hab ich es zumindest gemacht) mit der CT-API beschäftigen. Dabei handelt es sich um einen Satz standardisierter Funktionen mit standardisierten Parametern, die allgemein die Kommunikation mit dem Cardreader ermöglichen. Im Detail handelt es sich hierbei um:
ct_init, welche die Kommunikationspipeline zum Cardreader aufbautct_data, welches Befehle an die Smartcard sendet. Zu diesen Befehlen gehören auch Befehle zum Auslesen und Schreiben von Datenct_close, welches die Kommunikationspipeline wieder schließt
Was also letzendlich wieder von Interesse ist, ist wie die Befehle mit ct_data an die Smartcard gesendet werden. Das geht mittels sogenannter Command-ADPUs. Dabei handelt es sich um fest definierte Bytefolgen. Die Wichtigsten dieser Bytefolgen (als gebräuchliche Konstanten im C-Code) sind:
REQUEST_ICC, welches überprüft, ob eine Karte (Integrated Circuit Card = ICC) eingelegt istSELECT_FILE, welches eine bestimmte Datei auf der Smartcard auswählt. Die Dateinamen sind dabei 2Bytes langREAD_BINARY, welches (wer hätte es gedacht) eine bestimmte Anzahl an Bytes ausliestWRITE_BINARY, welches eine bestimmte Anzahl an Bytes schreibtEJECT_ICC, welches die Karte wieder ‘auswirft’
Wer nun ein wenig Quellcode lesen will um zu schauen, wie das ganze wohl gehen könnte, dem empfehle ich diese Seite. Um sich eine Übersicht über die ADPUs zu verschaffen, kann man sich dieses PDF ab Seite 45 durchlesen
Ich hoffe der grobe Überblick den ich mir jetzt selber verschafft habe (und euch vielleicht auch) ist einigermaßen nützlich
Auf jeden Fall freu ich mich schon auf die Ankunft meiner Nerdspielzeuge ![]()
Add comment Januar 7, 2008







