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 aufbaut
  • ct_data , welches Befehle an die Smartcard sendet. Zu diesen Befehlen gehören auch Befehle zum Auslesen und Schreiben von Daten
  • ct_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 ist
  • SELECT_FILE , welches eine bestimmte Datei auf der Smartcard auswählt. Die Dateinamen sind dabei 2Bytes lang
  • READ_BINARY , welches (wer hätte es gedacht) eine bestimmte Anzahl an Bytes ausliest
  • WRITE_BINARY , welches eine bestimmte Anzahl an Bytes schreibt
  • EJECT_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 :D

Auf jeden Fall freu ich mich schon auf die Ankunft meiner Nerdspielzeuge :)


Add comment Januar 7, 2008


 

Januar 2008
M D M D F S S
« Dez   Feb »
 123456
78910111213
14151617181920
21222324252627
28293031  

Kategorien

Links

Brandenburg - it's all around us!

Glienicker Brücke

Brandenburger Tor

DSC02393

DSC02416

DSC02355

DSC02405

DSC02433

DSC02411

More Photos

RSS Me on twitter

RSS Kunst by Kniepuder