Chipkarten unter Linux


Generell unterscheidet man 2 Arten von Chipkarten: Speicherkarten und Prozessorkarten.


Bild 1: Aufbau versch. Chipkarten

Speicherkarten:
  • speichern Daten im EEPROM
  • kein Leseschutz moeglich
  • bei manchen Schreibschutz durch eingebaute Logik (Telefonkarte)
  • Speichergroessen von 256Byte bis ca. 16kByte
  • serieller Zugriff ueber synchrone Protokolle wie I²C-, 2-Draht- oder 3-Draht-Bus
  • wenig flexibel aber preiswerte Herstellung
Prozessorkarten:
  • besitzen einen Microcontroller
  • oft kommen dabei CPU's der Intel 8051 oder Motorola 6805 Architektur zum Einsatz
  • einige (z.B. Cryptokarten) besitzen sogar noch einen mathematischen Coprozessor
  • das Betriebssystem liegt in einem eingebauten ROM (ca. 40kByte gross) und ist meist speziell fuer diese Karten entwickelt worden
  • der eingebaute RAM wird aus Kosten- und Platzgruenden meist sehr klein gehalten (ca. 256Byte)
  • die Daten werden auch hier in einem EEPROM gespeichert
  • Speicherzugriffe kontrolliert das Kartenbetriebssystem
  • Daten im EEPROM sind in einem hierarchischen Dateisystem gespeichert
  • Kommunikation ueber asynchrone Protokolle (z.B. T=0, T=1)

Die Kommunikation mit dem Chipkartenterminal und den Chipkarten erfolgt ueber standardisierte Pakete, sogenannte APDU's (Application Protocoll Data Units).


Bild2: APDU

Fuer die Entwicklung von Programmen zum Zugriff auf Chipkarten stehen einem unter Linux verschiedene Programmierschnittstellen zur Verfuegung.

  1. CT-API:
    • als Standard fuer Krankenversicherungskarten entwickelt
    • geringer Funktionsumfang (nur 3 Funktionen)
    • Programmierer muss APDU's selbst zusammenbauen
  2. PC/SC:
    • Standard fuer die Benutzung von Chipkarten unter Windows
    • wurde von vielen namhaften Unternehmen entwickelt (IBM, Sun Microsystems, HP, ...)
    • Implementation fuer Linux durch das MUSCLE-Projekt
    • erleichtert Entwicklung von Chipkartenapplikationen fuer verschiedene Betriebssysteme
    • Unterstuetzt den Zugriff auf verschiedene Karten durch spezielle Kartentreiber (Service Provider)
  3. SCEZ:
    • freie Bibliothek entwickelt von einer Privatperson
    • einfache Benutzung, portabel (sogar auf Palm Pilot)
    • bietet Treiber fuer gaengige Karten
    • kapselt viele Operationen in bequeme Funktionen
Die Chemnitzer Linux-Tage sind ein Projekt des IN-Chemnitz e.V. | Impressum | Datenschutzerklärung