Werkzeuge und Materialien für die Erstellung eines Kartenklons

Im folgenden wird beschrieben, welche Werkzeuge und Materialien verwendet wurden, um einen funktionierenden Kartenklon zu erstellen:

Programmierbare Chipkarte

Als Basis für den Postcard-Klon wurde eine programmierbare Chipkarte (ATmega163) mit einem AVR-Microcontroller der Firma Atmel verwendet, die im gut-sortierten Fachhandel bezogen werden kann. Der Preis liegt bei etwa CHF 20.00 (~ €15).

Entwicklungsumgebung

Für die AVR-Microcontroller gibt es eine GCC-basierte Entwicklungsumgebung, die die Programmierung von Applikationen in einer Hochsprache (C) erlaubt auf verschiedenen Plattformen - dies vereinfacht die Entwicklung ungemein. Nur die zeitkritische serielle Kommunikation benötigt ein Assembler-Modul (siehe auch ISO 7816-4/TO library).

AVR-GCC

Diese Entwicklungsumgebung mit C-Cross-Compiler für die AVR-Microcontroller ist auf verschiedenen Plattformen lauffähig:

Plattform Voraussetzungen Installation
Unabhängig Eclipse AVR Eclipse Plugin
Linux   Für die meisten Distributionen steht das Paket "avr-libc" zur Verfügung und kann über die normale Paketverwaltung installiert werden. In einem Artikel wird beschrieben, wie notfalls die Software aus den Quellen erstellt werden kann (Anleitung in Englisch und Deutsch).
Mac OS X Apple Developer Tools, MacPorts sudo port install avr-libc
Windows   WinAVR
AVR Studio

ISO 7816-4/T0 library for Atmel

Die im Rahmen dieser Arbeit entstandene Bibliothek für die serielle Kommunikation basiert auf dem Projekt SOSSE (Simple Operating System for Smartcard Education). Die Assembler-Routine für das I/O wurde erweitert, so dass neben der "indirect convention" nun auch die "direct convention" unterstützt wird. Je nach verwendetem ATR schaltet das Modul selbstständig in die passende Betriebsart um.

Die Bibliothek y67.sclib.tar.gz ist unter GPL veröffentlicht.

Weitere Software-Tools

Name Beschreibung
AVR Downloader/UploaDEr Software zum Programmieren von Atmel AVR Microcontrollern
Simulavr Simulavr is ein Simulator für die Atmel AVR-Familie von 8-bit RISC Microcontrollern
UISP Tool für verschiedene AVR In-System Programmer Hardware

Chipcard-Programmer

Zum programmieren des AVR-Microcontrollers (Übertragen des compilierten Programms auf die Karte) wird eine spezielle Hardware benötigt. Gängige Programmer wie der STK50x können aber nur gesockelte Microcontroller programmieren, weshalb nur wenige Anbieter entsprechende Geräte für Chipkarten anbieten. Besonders die Linux-Unterstützung dieser Programmer lässt sehr zu wünschen übrig.

In diesem Projekt wurde unter anderem der Infinity USB Unlimited verwendet.