(Weiteres:)
(Weiteres:)
Zeile 67: Zeile 67:
  
 
[[Kategorie:Elektronik]]
 
[[Kategorie:Elektronik]]
 +
[[Kategorie:Projekte]]

Version vom 14. November 2006, 03:13 Uhr

ChipcardLab

Chipcardlab.jpg

Das ChipcardLab ist ein modulares Entwicklungs und Analyseset für ISO und kompatible Chipkarten. Es ist modular erweiterbar und kann vielseitig eingesetzt werden. Eigene Ideen können mit minimalem Aufwand schnell ausprobiert werden. Das Projekt wendet sich in erster Linie an Einsteiger ohne Vorerfahrung. Das offene Konzept soll dazu einladen sich auf die Thematik Chipkarten aktiv einzulassen. Die Vorgefertigte Software und die bereits erstellte und getestete Platine sorgen für einen sicheren Start in die Welt der Chipkarten.

Die Hardware:

ChipcardLabSet.jpg

Das Cardboard: Die Basis bildet das Cardboard, auf welchem sich eine ISO/Anfor Kontaktiereinheit und ein 25 Pol Sub-D Stecker befindet. Sowol die ISO, als auch die Anfor Kontakte sind auf Steckleisten an der Seite geführt und normgerecht beschriftet. Bei dem Sub-D Stecker wurden alle Parallelport relevanten Pins ebenfalls auf die Steckleisten geführt und normgerecht beschriftet. So hält man bereits mit der Cardboard Platine ein Werkzeug in der Hand um z.B.: mit ein par Drähten eine Chipkarte am Parallelport eines PCs anzuschließen und zu lesesn bzw. zu beschreiben. Die Stiftleisten sind weiterhin dazu geeignet Module aufzunehmen.

Die Kartenimitation: Die Kartenimitation dient dazu das ChipcardLab direkt mit einem Cipkartenterminal zu verbinden um z.B.: eine Chipkarte zu emulieren bzw. den Datenverkehr zwischen Chipkartenterminal und Karte zu debugzwecken aufzuzeichnen. Ex existiert eine Imitation für ISO-Karten (Überlänge) und SIM-Karten.

Die SIM-Kartenkontaktiereinrichtung. Da SIM-Karten nicht in die normale Kontaktiereinrichtung passen gibt es eine Kontaktiereinrichtung die an die Kartenimitation angeschlossen werden kann. Auf diese Weise wird die Sim-Karte adaptiert. Diese Komponente ist nicht zwingend nötig da eine SIM-Karte auch mit einer im Handel erhältlichen Adapterkarte adaptiert werden kann.

Der Adapter: Der Adapter (rechts oben im Bild) dient dazu die Kartenimitation direkt an das Cardboard anzuschließen um die entsprechenden Kontakte auf den Steckleisten des Cardboards zur Verfügung zu stellen. Das Cardboard ist schon entsprechend beschriftet. Der Adapter ist mit dem ChipcardController Board nicht kompatiebel, dort wird die Kartenimitation direkt an den dafür vorgesehenen Stecker angschlossen.

Das BSCRDW Modul: BSCDRW steht für »Billigster SmartCard Reader Der Welt« und geht auf gsho.de zurück. Mit dem BSCRDW von Gsho habe ich meine ersten Chipkartenexperimente gemacht. Da für selbiges Konzept auf Gsho.de auch C++ Quelltexte zur Verfügung stehen ist der BSCRDW eine gute Fingerübung für alle die in die Thematik einsteigen wollen. Das Modul besitzt leider nur Lesefähigkeiten.

Das Smartlab Modul: Das Smartlab ist ein ebenfalls auf Gsho herunterladbares Programm (leider nur für Windows) mit dem sich die Inhalte von Telefonkarten lesen und bearbeiten lassen. Im Gegensatz zum BSCRDW besitzt das Smartlab Modul Schreibfähigkeiten und eine Status LED.

Der ChipcardController:


ChipcardlabSchaltplan.png

Der Chipcard Controller macht das Chipcarlab zu einem mächtigen Universalgerät. Auf der Platine befindet sich ein Atmega16 als Hauptprozessor, eine Serielle und eine Parallele (4 Input Pins, 4 Output Pins, gepuffert) Schnittstelle, eine Schnittstelle zum Anschluss der Kartenimitation. 4 Status LEDs. Die Anschlüsse für die LEDs, die Kartenimitation und die ISO Kontakte der Kontaktiereinrichtung sind zusammen mit GND und 5V auf eine Steckleiste geführt um kleine Erweiterungsmodule aufstecken zu können. Programmiert wird über eine ISP Schnittstelle, welche natürlich entsprechend herausgeführt ist. Sowol beim Anschluss für die Kartenimitation, als auch bei der Kontaktiereinrichtung sind alle 8 ISO Pins erreichbar und können mit beliebigen Pegeln versorgt werden. Falls man den Atmega8 mit einem externen Oszillator betreiben möchte steht ein ein entsprechender Steckplatz bereits auf dem Board zur Verfügung.

Der Sniffer Adapter: Es existiert desweiteren noch ein Sniffer Adapter welcher in den Erweiterungsslot des ChipcardController gesteckt wird. Diese Verbindungen können auch schnell mit ein par Kabel hergestellt werden wenn sie gebraucht werden.

Die Software:

DebitLab: Für den BSCRDW existiert ein Linuxprogramm (DebitAnalyser) welches das betrachten von simplen Speicherkarten mit 3-Draht Interface (Telefonkarten) ermöglicht. Die Ausgabe ist formatiert und erfolgt sowol in Binär, Hex als auch ASCII. Bei Telefonkarten können Informationen wie Geldbetrag, hersteller ect. Angezeigt werden. Der Parallelport wird hier direkt angesprochen und muss sich im Biderektionalen Modus befinden, ECP funktioniert nicht. Das Programm basiert auf den GSHO Beispielquelltexten.

ChipcardController API: Um den Einstieg zu erleichtern wurde für das ChipcardControllerboard ein Minibetriebsystem, die sogenannte API entwickelt. Das System ist in ASM geschrieben. Es enthält bereits vorgefertigte Routinen zum ansprechen der Kartenimitation, des Kartenlesers, des Parallelports, der seriellen Schnittstelle sowie der LEDs. Das ganze ist so zusammengebaut das man sofort loslegen kann. An funktionierenden Beispielprogrammen wird zur Zeit noch gearbeitet. Das auslesen von Telefonkarten funktioniert einwandfrei. Smartcards sind leider noch problematisch.

CardSniff: Mit CardSniff ist es möglich den Datenverkehr zwischen Terminal und Karte in Form eines Logikdiagrammes anzusehen. Leider ist der Mikrocontroller im ChipcardController selbst bei 16Mhz noch zu langsam um die Signale schnell genug abzutasten.

Tipps & Tricks

Speicherkarten: Normale Speicherkarten (z.B.: Telefonkarten) haben eine 3 Drahtschnittstelle. Das sind Takt, Reset und I/O. Mit jedem Taktpuls wird der Adresszähler erhöht und mit Reset kann er wieder auf 0 gesetzt werden. An I/O liegt der jeweilige Status der Speicherzelle an, sollte man meinen. Tatsächlich ist es so das im Falle einer logischen 0 I/O auf Masse zieht und im Falle einer logischen 1 einen undefinierten Pegel annimmt. Deshalb muss I/O auf alle Fälle mit einem Pullup Widerstand an VCC gelegt werden.

Abtelefonierte Telefonkarten: Abtelefonierte Telefonkarten kann man zwar nicht wieder aufladen aber man kann sie als ID-Karten weiterverwenden: Telefonkarten sind durch ein Challenge/Response Verfahren geschützt. Die Challange ist 48 Bit lang und die Response 16 Bit. Man könnte sich nun eine Anzahl Responses von der Karte berechnen lassen und diese dann zur Validierung verwenden. Telefonkarten haben aber noch ein anderes Chic: Hält man sie unter schwarzlicht wird die Seriennummer sichtbar.

Weiteres:

Die Platinenlayouts und Schaltpläne stehen im PostScript (Ätzen) und im HPGL (Isolationsfräse) unter der Creative Commons Licence zur Verfügung. Die zugehörigen Quelltexte stehen unter der GNU-GPL V.2.0 zur Verfügung.

Alle zum Projekt zugehörigen Dateien können auf meiner Webseite heruntergeladen werden: http://www.runningserver.com/?page=runningserver.content.thelab.chipcardlab

Interessierte können sich bei mir unter zero-kelvin@gmx.de melden oder mich Donnerstags im ClubDiscordia ansprechen. Ich bin auch gerne bereit beim Zusammenbauen zu helfen.

260806 Philipp Fabian Benedikt Maier