Chipkarten-Anwendungen

Handbuch der Chipkarten
FAQ
Chipkarten Links

Eingangsseite Chipkarten-Anwendungen

created: 31. Dez. 2005, last modified: 27. April 2006
Copyright © 2005-2006 Wolfgang Rankl, Munich
Impressum und rechtliche Hinweise


Inhalt

Chipkarten-Anwendungen

Vorwort

Inhaltsverzeichnis

Leseprobe

CD zum Buch

Ergänzungen und Korrekturen

Buch bestellen

JLoad

Chipkarte von Giesecke und Devrient

ATR der Chipkarte

PPS bei der Chipkarte

Daten auf der Chipkarte

Inhalt des EF ARR

Dateien auf der Chipkarte

Kommandosequenzen

Chipkarte von Zeitcontrol

Beispiel aus dem Buch

ATR der Chipkarte


Chipkarten-Anwendungen

Titel CAChipkarten-Anwendungen - Entwurfsmuster für Einsatz und Programmierung von Chipkarten
1. Auflage, 2006
Wolfgang Rankl
Carl Hanser Verlag München Wien
ISBN: 3-446-40403-1

228 Seiten, 35 Zeichnungen, 30 Tabellen und 22 Sequenzdiagramme.

Erhältlich im Buchhandel seit dem 3. März 2006.

Die meisten Chipkarten-Systeme beruhen auf ähnlichen Lösungen. Dennoch wird häufig viel Zeit investiert, um längst bekannte Mechanismen, Abläufe und Prinzipien neu zu erfinden. Dieses Buch zeigt, dass das nicht sein muss, und stellt eine Vielzahl von Entwurfsmustern und Ideen zur Realisierung von Chipkarten-Anwendungen vor.

Mit Hilfe der Musterlösungen für die Spezifikation, die Entwicklung und den Betrieb können Sie Chipkarten-Anwendungen neu entwickeln oder erweitern. Damit lassen sich auch große und komplizierte Chipkarten-Systeme einfach zusammensetzen.

Bei Chipkarten-Systemen werden immer wieder Lösungen verwendet, die im Detail zwar verschieden sind, aber im Prinzip auf ähnlichen Mechanismen beruhen. Dabei kommt es oft vor, dass viel Zeit in die Wiedererfindung längst bekannter Mechanismen, Abläufe und Prinzipien investiert wird. In diesem Buch wird dem Problem entgegengetreten, da es in systematisierter Form eine Vielzahl von Entwurfs-mustern und Ideen zur Realisierung von Chipkarten-Anwendungen enthält.

Das Buch beginnt mit einer kompakten Einführung in die Technologie der Chipkarten und zeigt dann eine Vielzahl von Entwurfsmustern beginnend von der Spezifikation über Entwicklung bis zum Betrieb einer Chipkarten-Anwendung. Die praxisnahen Musterlösungen für Systemdesigner, Applikationsent-wickler, Entscheider und technikinteressierte Leser stellen eine gute Arbeitsgrundlage für in Entstehung und Erweiterung befindlichen Chipkarten-Anwendungen dar.

Die wieder verwendbaren und generische Musterlösungen und Module sind unabhängig vom realem Programmcode in den üblichen Notationen der Chipkartenwelt dargestellt. Damit können auch große und komplizierte Chipkarten-Systeme aus einzelnen Komponenten einfach zusammengesetzt werden.

Eine umfangreiche Aufstellung und Diskussion von echten Fallbeispielen zeigt typische Lösungsmög-lichkeiten und mögliche Fehler bei Chipkarten-Anwendungen und Systemen auf. Dabei werden jeweils fallbezogen Ansätze zur Verbesserung diskutiert.

Dieses Buch wurde von einem der beiden Autoren des Handbuchs der Chipkarten geschrieben, das seit Jahren das Standartwerk zu diesem Thema ist. Es fokussiert auf die Entwicklung von Anwendun-gen auf den heute üblichen Chipkarten-Betriebssystemen und ergänzt so das Handbuch der Chipkar-ten in sehr guter Weise.

Dem Buch liegt eine CD und zwei programmierbare Chipkarten bei. Die CD enthält im voll durchsuchbaren PDF-Format das Handbuch der Chipkarten in der aktuellen 4. Auflage sowie eine Entwicklungs-umgebung für Java Card und Basic Card und weitere interessante Informationen über Chipkarten. Das Buch enthält eine Java Card von Giesecke & Devrient und eine Basic Card von Zeitkontrol. In beide Chipkarten lassen sich mit handelsüblichen Chipkarten-Terminals eigene Anwendungen laden.

Eine englische Übersetzung ist in Arbeit und wird voraussichtlich Ende 2006 erscheinen.

zum Seitenanfang

Auszug aus dem Vorwort

Es gab Mitte der neunziger Jahre bei Chipkarten eine enorme Aufbruchstimmung. Man erkannte, dass die Technologie eine ausreichende Reife und Funktionalität erreicht hatte, um die verschiedensten Sicherheitsanwendungen in die Tat umzusetzen. Elektronische Geldbörsen mit einer erstaunlichen Breite an Varianten und die sich weltweit ausbreitende mobile Kommunikation waren die größten Anwendungsfelder.

Nachdem diese neuen und technisch interessanten Chipkarten-Anwendungen in großen Stückzahlen die Endkunden erreicht hatten, wurden die Systembetreiber mit vielen Problemen konfrontiert. Es gab Fälle, in denen keine Terminals verfügbar waren, um die Karten auch zu benutzen. Teilweise hatte man vergessen, dass die Kunden eigene Interessen und Bedürfnisse haben und sich nicht zu einem für sie unsinnigen Verhalten manipulieren ließen.

Unterdessen ging jedoch unauffällig die technische Entwicklung der Chipkarten weiter, während parallel dazu der Paradigmenwechsel eintrat. Der Treiber "`Technologie"' bei Chipkarten-Anwendungen verschwand in den Hintergrund, und stattdessen etablierten sich die Anwendungen als Wegweiser in die Zukunft. Nun stehen die Bedürfnisse der Benutzer im Mittelpunkt. Dies ist der ganz normale Technologiezyklus, wie er in dieser oder ähnlicher Form immer wieder abläuft.

Dieser neue Aspekt hat mich dazu bewegt, dieses Buch zu schreiben, da Chipkarten nun immer stärker wegen ihrer positiven Eigenschaften eingesetzt werden und nicht nur, weil es sie gibt.

In diesem Buch will ich keine theoretischen Abhandlungen über abstrakte Design-Patterns erörtern, sondern mich auf griffige und erprobte Lösungen konzentrieren, die unmittelbar mit vorhandenen Chipkarten-Betriebssystemen realisiert werden können. Mehr als 15 Jahre Berufserfahrung mit Chipkarten und deren Anwendung sowie Hunderte von Leserbriefen, die ich als einer der beiden Autoren des Handbuchs der Chipkarten erhielt, sind in den Text eingeflossen.

Die beschriebenen Entwurfsmuster sind mit einer großen Zahl von interessanten Beispielen versehen, um nie den Bezug zur Praxis zu verlieren. Dabei habe ich durchaus auch verunglückte Entwicklungen aufgeführt, weil man daraus oftmals ganz gut ableiten kann, wie man es besser macht.

Die das Buch umschließende Klammer ist die Beschreibung von wieder verwendbaren Musterlösungen und Modulen für häufig vorkommende Aufgabenstellungen, die unabhängig vom realen Programmkode dargestellt sind. Dies unterstützt die etablierte Vorgehensweise, ein Gesamtproblem in kleine und leichter lösbare Teilprobleme zu zerlegen, diese jeweils einzeln zu lösen und dann die einzelnen Teillösungen zur Gesamtlösung des eigentlichen Problems wieder zusammenzusetzen.

Dieses Buch ist weder ein umformatiertes noch ein komprimiertes Handbuch der Chipkarten, sondern ein eigenständiges Werk mit dem Schwerpunkt Chipkarten-Anwendungen. Die ersten beiden Kapitel sind eine kurze Einführung in die Welt der Chipkarten, behandeln jedoch die dahinter stehende Technik nur so weit, wie sie für das Verständnis der folgenden Abschnitte notwendig ist.

zum Seitenanfang

Inhaltsverzeichnis

Das Buches gliedert sich in die folgenden neun Kapitel:

1 Chipkarten im Überblick
2 Chipkarten­Betriebssysteme
3 Einsatzgebiete
4 Muster zu Grundlagen
5 Muster zur Architektur
6 Muster zur Realisierung
7 Muster zum Betrieb
8 Chipkarten in der Praxis
9 Diskussion von Fallbeispielen

Das vollständige Inhaltsverzeichnis steht als PDF-Datei zur Verfügung.

zum Seitenanfang

Leseprobe

Die folgende Leseprobe ist das Kapitel 4 über die grundlegenden Themen wie Datenschutz, Exportkontrolle, Kryptoregulierung, Normen und Dokumente, die bei einer Chipkarten-Anwendungen zu beachten sind.

zum Seitenanfang

CD zum Buch

Das Buch Chipkarten-Anwendungen enthält eine CD mit vielen interessanten und nützlichen Informationen und Programmen zum Thema Chipkarten.

Der Inhalt der CD im Überblick:

Verzeichnis Handbuch der Chipkarten
Handbuch der Chipkarten in der 1. deutschen Auflage (HdC1.pdf)
Handbuch der Chipkarten in der 4. deutschen Auflage (HdC4.pdf)

Verzeichnis Giesecke & Devrient
Informationen über die Smart Card Produkte von Giesecke & Devrient (Informationen)
Programm zum Laden und Verwalten von Java Card Applets (JLoad)
Entwicklungsumgebung für Java Card Sm@rtCafé (SmartCafePE), SmartCafePE setzt die Installation von JDK 1.3 voraus, die kostenlos von der SUN-Webseite (www.sun.com) bezogen werden kann.

Verzeichnis Zeitcontrol
BasicCard Java Library V0.95 beta (BasicCardJava)
Entwicklungsumgebung für BasicCard V5.22 (BasicCardKit)
BasicCard .Net Library V0.7 beta (BasicCardNet)
Beispiel für ISO/IEC 7816 Kommandos für BasicCard (ISO)
Spezifikation BasicCard V5.22.1 (Basiccrd.pdf)
Professional and MultiApplication BasicCard Datasheet V3.10 (ProDataSheet.pdf)
BasicCard API/OCX Install Package V4.36.0.0 (ZCBCIDK.msi)

zum Seitenanfang

Ergänzungen und Korrekturen

Eine Liste mit Ergänzungen und Korrekturen für das Buch Chipkarten-Anwendungen ist noch nicht notwendig.

zum Seitenanfang

bestellen

Das Buch Chipkarten-Anwendungen ist direkt beim Carl Hanser Verlag und bei vielen Buchhändlern verfügbar. Es kann natürlich auch über Internet (z.B. bei Amazon) gekauft werden.

Bestellung des Handbuchs der Chipkarten via Carl Hanser Verlag

Bestellung des Handbuchs der Chipkarten via Amazon


zum SeitenanfangJLoad

JLoad ist ein Programm zum Laden von Java Card Applets in OP-konforme Chipkarten. Neben dieser Funktionalität bietet JLoad noch die Möglichkeit mit dem APDU Commander manuel und automatisch APDU zu PC/SC konformen Terminals zu senden und zu empfangen.

Damit vor dem Laden eines Applets notwendige Authentisierung mit der G&D Chipkarte möglich ist, muss im JLoad die korrekte Schlüsseldatei ausgewählt sein und einige weitere Parameter richtig gesetzt werden. Die Details sind in dem folgenden Bild gezeigt.

zum Seitenanfang

Benutzung des APDU Commander von JLoad

Das folgende Beispiel zeigt die Selektion und das Lesen von Dateien aus der G&D Chipkarte read.txt (18. Feb. 2006 - V 3).

Dieses Beispiel zeigt die Erzeugung, das Beschreiben und das Löschen von Dateien auf der G&D Chipkarte create.txt (2. März. 2006 - V 5).

Die folgende XML-Datei enthält eine Reihe von nützlichen Kommandodefinitionen, die bei der G&D Chipkarte eingesetzt werden können. Die Datei commandList.xml (Version vom 31. März 2006) kann manuell mit der Orginaldatei im Programmverzeichnis von JLoad ausgetauscht werden. Diese XML-Datei mit den Kommandodefinitionen läßt sich auch gut manuell mit einem entsprechenden Editor erweitern. Geschickterweise sollte man jedoch vorher immer die Orginaldatei sichern.

zum Seitenanfang

Laden und Ausführen eines Java Card Applets

Mit JLoad lassen sich Java Card Applets einfach auf die G&D Chipkarte laden. Dazu muss eine entsprechende CAP-Datei ausgewählt werden. Die CAP-Datei enthält das eigentliche Java Card Applet in einem Package. Im JLoad ist es wichtig mit der rechten Austaste den neuen Reiter "Insert MAKE SELECTABLE" auszuwählen, damit das Applet unmittlebar nach dem laden in die Chipkarte selektierbar gemacht wird. Dies zeigt das folgende Bild.

Ist das Applet korrekt in die Chipkarte geladen, dann wird im rechten Fenster bei den Appleteigenschaft angezeigt, dass das geladene Applet "selectable" ist. Im folgenden Bild ist dies Anhand des Beispielapplet "Mini" gezeigt.

Anschließend kann das installierte und selektierbare Java Card Applet mit seinen Kommandos beispielsweise mit dem APDU Commander angesprochen werden. Für das "Mini"-Beispielapplet ist dies im folgenden Bild gezeigt.

Die auf der Seite über Java Card beschriebenen Appletts Mini (packmini.cap), TAN Generator (packtangen.cap), PGDATA (packpgdata.cap) ReadWriteData (packreadwrite.cap) sind als CAP-Datei verfügbar und können direkt mit JLoad auf die Java Karte geladen werden. Anschließend kann man die Funktionen mit dem APDU Commander ausprobieren.


zum SeitenanfangChipkarte von Giesecke und Devrient

Die STARSIM Mercury 64 Java Card ist eine Java-Karte von Giesecke & Devrient, die primär für den Einsatz in GSM-Mobilfunksystemen entwickelt wurde. Neben ihrer Funktion als SIM lässt sie sich natürlich auch als normale Java-Karte nutzen. Mit dieser Karte lassen sich auf einfache Weise dateibasierte Anwendungen und mit den Java-Funktionen auch kodebasierte Anwendungen erstellen.

Titel CATitel CA

Kartentyp: Microprozessor Chipkarte mit Java VM und Java API
Betriebsspannung: 3 V und 5 V
Microcontroller: Renesas AE46C (196 kB ROM, 68 kB EEPROM und 6 kB RAM)
Chipkarten-Betriebssystem: Giesecke & Devrient STARSIM Mercury 64 Java Card
Übertragungsprotokoll: T=0 mit Teiler 372, Teilerumschaltung über PTS auf Teiler 32 möglich
unterstützte Chipkarten-Kommandos: TS 51.011 und TS 102 222
ausführbarer Programmcode: konform zum Java Card 2.1.2 Standard mit Erweiterungen hinsichtlich Löschung von Applets und Packages von Java Card 2.2 mit Integer-Unterstützung, Garbage Collection und Speicherdefragmentierung
Zugriffsrechte auf Dateien: ISO/IEC 7816 - 9

Die Chipkarte enthält bereits vorinstalliert ein Dateisystem für die SIM Funktionalität. Der "`Kryptoalgorithmus"' ist XOR und alle initialisierten und personalisierten Werte sind selbstverständlich Testdaten, sodass sich diese Chipkarte nicht in ein Mobilfunknetz einbuchen kann. Alle Dateizugriffe sind dabei über ein EFARR mit der FID '2F06' direkt unter dem MF geregelt.

Für die Erstellung eigener Verzeichnisse und Dateien ist ein besonderes Verzeichnis (DF) eingerichtet. Es befindet sich unter dem MF und hat die FID '8E00'. In diesem Verzeichnis können mit dem CREATE-Kommando beliebige Dateien angelegt und mit dem DELETE-Kommando auch wieder gelöscht werden. Die dazu notwendigen administrativen Kommandos sind in der TS 102 222 beschrieben. Für die operative Phase können dann alle üblichen Kommandos nach TS 51.011 benutzt werden.

zum Seitenanfang

ATR der Chipkarte

Der ATR der Chipkarte ist folgendermaßen:
'3B FF 95 00 FF 40 0A 80 31 00 73 1A 21 13 57 4A 50 48 60 31 41 47'

Die folgende Tabelle enthält die Dekodierung der einzelnen Datenelemente.

'3B'

TS

direct convention

'FF'

T0

15 historical characters

'95'

TA1

clock rate conversion factor is 512
bit rate adjustment factor is 16

'00'

TB1

programming current factor is 25
programming voltage not connected

'FF'

TC1

extra guard time is minimum delay

40'

TD1

Übertragungsprotokoll T=0

'0A'

TC2

work waiting time integer 10

historical characters

'80'

category indicator status information in compact TLV object

'31'

card service data

'00'

file I/O services by READ RECORD command

'73'

card capability

'1A'

DF selection byte by FID, implicit
EF management record number supported

'21'

behaviour of write functions proprietary
data unit size 2 nibble

'13'

no extended Lc and Le fields
logical channels assignment byte the card
maximum number of logical channels 4

'57'

Daten des Kartenherausgebers '50 48 60 31 41 47'

zum Seitenanfang

PPS bei der Chipkarte

Die Umschaltung vom Standardteiler 372 auf kleinere Werte und damit auf eine höhere Übertragungsgeschwindigkeit wird mit einem PPS durchgeführt. Möchte man beispielsweise die Kommunikation auf den Teiler 31 umschalten so ist die folgende Sequenz an Befehlen notwendig:

IFD -> ICC: Reset
ICC -> IFD: ATR
IFD -> ICC: (PPS request) 'FF 10 18 F7'
ICC -> IFD: (PPS response) 'FF 10 18 F7'

Die Kommunikation mit der Chipkarte läuft nun bis zum nächsten Reset mit Teiler 31. Daraus resultiert bei einer Taktfrequenz von 5 MHz eine Übertragungsrate von 161 290 Bit/s.

zum Seitenanfang

Wichtige Daten auf der Chipkarte

Datum

Inhalt

Erläuterung

CHV1

0000

PIN 1, 4 Stellen, ASCII codiert, aufgefüllt mit 0xFF

Unblock CHV1

0000 0000

Unblock PIN 1, 8 Stellen, ASCII codiert

CHV2

2222

PIN 2, 4 Stellen, ASCII codiert, aufgefüllt mit 0xFF

Unblock CHV2

0000 0002

Unblock PIN 1, 8 Stellen, ASCII codiert

CHV5

5555

PIN 5, ASCII codiert, aufgefüllt mit 0xFF

zum Seitenanfang

Inhalt des EF ARR unter dem MF

Das EFARR unter dem MF ist der zentrale Angelpunkt für Zugriffsrechte auf Dateien. Dieses EF läßt sich sehr gut zur Steuerung von Zugriffen auf im DF Rankl erzeugten Dateien verwenden. Dazu ist es wichtig, die in dieser Datei festgelegten Zugriffsregeln zu kennen. Der Inhalt in hexadezimaler Form ist im folgenden Absatz dargestellt, in logischer Form im übernächsten Absatz. Der Record 20 mit der Regel 20 ist beispielsweise nützlich, wenn man ein EF erzeugen möchte, das immer gelesen und geschrieben werden kann.

Inhalt in hexadezimaler Form
Record 1 80011FA4068301059501088001609700FFFFFFFFFFFFFFFFFFFFFF
Record 2 800101900080017E9700FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
Record 3 80017F9700FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
Record 4 800101A40683010595010880017E9700FFFFFFFFFFFFFFFFFFFFFF
Record 5 8001019000800102A40683010195010880017C9700FFFFFFFFFFFF
Record 6 800111A40683010195010880010AA4068301059501088001649700
Record 7 800103A40683010195010880017C9700FFFFFFFFFFFFFFFFFFFFFF
Record 8 800101A406830101950108800102A40683010595010880017C9700
Record 9 800103A406830101950108840132A40683010195010880017C9700
Record 10 800113A40683010195010880016C9700FFFFFFFFFFFFFFFFFFFFFF
Record 11 8001019000800102A40683010595010880017C9700FFFFFFFFFFFF
Record 12 800101A40683010195010880015AA4068301059501088001249700
Record 13 800101A40683010195010880017E9700FFFFFFFFFFFFFFFFFFFFFF
Record 14 800103A406830101950108800118A4068301029501088001649700
Record 15 800101A406830101950108800102A40683010295010880017C9700
Record 16 800103A406830101950108840132970080017C9700FFFFFFFFFFFF
Record 17 800143A40683010595010880013C9700FFFFFFFFFFFFFFFFFFFFFF
Record 18 800103A40683010595010880017C9700FFFFFFFFFFFFFFFFFFFFFF
Record 19 80011F90008001609700FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
Record 20 800103900080017C9700FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

Inhalt in logischer Form
Rule 1 [Read/DeleteChild, Update/CreateEF, Write/CreateDF, Deactivate, Activate - CHV5][DeleteSelf - Never]
Rule 2 [Read/DeleteChild - Always][Update/CreateEF, Write/CreateDF, Deactivate, Activate, DeleteSelf - Never]
Rule 3 [Read/DeleteChild, Update/CreateEF, Write/CreateDF, Deactivate, Activate, DeleteSelf - Never]
Rule 4 [Read/DeleteChild - CHV5][Update/CreateEF, Write/CreateDF, Deactivate, Activate, DeleteSelf - Never]
Rule 5 [Read/DeleteChild - Always][Update/CreateEF - CHV1][Write/CreateDF, Deactivate, Activate, DeleteSelf - Never]
Rule 6 [Read/DeleteChild, Activate - CHV1][Update/CreateEF, Deactivate - CHV5][Write/CreateDF, DeleteSelf - Never]
Rule 7 [Read/DeleteChild, Update/CreateEF - CHV1][Write/CreateDF, Deactivate, Activate, DeleteSelf - Never]
Rule 8 [Read/DeleteChild - CHV1][Update/CreateEF - CHV5][Write/CreateDF, Deactivate, Activate, DeleteSelf - Never]
Rule 9 [Read/DeleteChild, Update/CreateEF - CHV1][{Increase} - CHV1][Write/CreateDF, Deactivate, Activate, DeleteSelf -Never]
Rule 10 [Read/DeleteChild, Update/CreateEF, Activate - CHV1][Write/CreateDF, Deactivate, DeleteSelf - Never]
Rule 11 [Read/DeleteChild - Always][Update/CreateEF - CHV5][Write/CreateDF, Deactivate, Activate, DeleteSelf - Never]
Rule 12 [Read/DeleteChild - CHV1][Update/CreateEF, Deactivate, Activate, DeleteSelf - CHV5][Write/CreateDF - Never]
Rule 13 [Read/DeleteChild - CHV1][Update/CreateEF, Write/CreateDF, Deactivate, Activate, DeleteSelf - Never]
Rule 14 [Read/DeleteChild, Update/CreateEF - CHV1][Deactivate, Activate - CHV2][Write/CreateDF, DeleteSelf - Never]
Rule 15 [Read/DeleteChild - CHV1][Update/CreateEF - CHV2][Write/CreateDF, Deactivate, Activate, DeleteSelf - Never]
Rule 16 [Read/DeleteChild, Update/CreateEF - CHV1][{Increase} - Never][Write/CreateDF, Deactivate, Activate, DeleteSelf -Never]
Rule 17 [Read/DeleteChild, Update/CreateEF, DeleteSelf - CHV5][Write/CreateDF, Deactivate, Activate - Never]
Rule 18 [Read/DeleteChild, Update/CreateEF - CHV5][Write/CreateDF, Deactivate, Activate, DeleteSelf - Never]
Rule 19 [Read/DeleteChild, Update/CreateEF, Write/CreateDF, Deactivate, Activate - Always][DeleteSelf - Never]
Rule 20 [Read/DeleteChild, Update/CreateEF - Always][Write/CreateDF, Deactivate, Activate, DeleteSelf - Never]

zum Seitenanfang

Wichtige Dateien auf der Chipkarte

Datei mit Pfad

FID

Erläuterung

MF

'3F00'

Wurzelverzeichnis der Chipkarte

MF.EFARR

'2F06'

EF der Struktur linear fix mit den Zugriffsregeln für die Dateien.

MF.EFICCID

'2FE2'

Seriennummer der Chipkarte

MF.EFRankl

'01EF'

Strukture: transparent
Dateigröße: 100 Byte
Dateiinhalt: bei Personalisierung auf 0xFF gesetzt
Zugriffsbedingung zum Lesen: immer
Zugriffsbedingung zum Schreiben: immer
Zugriffsbedingung für Deactivate: nie
Zugriffsbedingung für Activate: nie
Zugriffsbedingung für Delete: nie

MF.DFRankl

'8E00'

DF innerhalb dessen Dateien (EFs) und weitere Verzeichnisse (DFs) angelegt werden können.

zum Seitenanfang

Nützliche Kommandosequenzen

Für die eigene Verwendung der zahlreichen unterstützten Kommando sei hier auf die beiden Spezifikationen TS 51.011 und TS 102 222 verwiesen, die eine genaue Beschreibung mit Kodierung aller unterstützten Kommandos enthalten. Sie können kostenlos über die ETSI-Website (www.etsi.org) bezogen werden.

Der APDU Commander von JLoad ist sehr gut zum ausprobieren dieser Kommandos geeignet. Eine Reihe von nützlichen Kommandos mit den dazugehörigen APDUs befinden sich in der XML-Datei commandList.xml für JLoad. Diese Datei kann mit einem üblichen Editor geöffnet werden. Alle folgenden Werte sind hexadezimal dargestellt.

Selektion des MF
Kommando: SELECT
C-APDU: A0 A4 00 00 02 3F 00
R-APDU: 9F 19

Überprüfung von CHV1 (=PIN1)
Die CHV sind ASCII codiert und mit 0xFF rechts auf 8 Byte Länge aufgefüllt
CHV1 = 0000, padding = 'FF'
Kommando: VERIFY
C-APDU: A0 20 00 01 08 30 30 30 30 FF FF FF FF
R-APDU: 9F 19

Selektion des DF Rankl
Kommando: SELECT
C-APDU: A0 A4 00 00 02 8E 00
R-APDU: 9F 19

Kommando: GET RESPONSE (optionale Verwendung)
C-APDU: A0 C0 00 00 19
R-APDU Daten: 00 00 A5 87 8E 00 02 00 00 0F 00 01 0C 1B 00 00 06 00 83 8A 83 8A 00 80 83
R-APDU Returncode: 90 00

Selektion des EF Rankl
Kommando: SELECT
C-APDU: A0 A4 00 00 02 01 EF
R-APDU: 9F 0F

Kommando: GET RESPONSE (optionale Verwendung)
C-APDU: A0 C0 00 00 0F
R-APDU Daten: 00 00 00 64 01 EF 04 00 55 5F 55 01 02 00 00
R-APDU Returncode: 90 00

Lesen von Daten aus dem EF Rankl
Lesen des gesamten Inhalts von 100 Bytes bei einem Dateiinhalt von 0xFF
Kommando: READ BINARY
C-APDU: A0 B0 00 00 64
R-APDU Daten: FF ... FF (100 Bytes lang)
R-APDU Return Code: 90 00

Lesen des EF Rankl
Lesen der ersten 10 Bytes bei einem Dateiinhalt von 0xFF
Kommando: READ BINARY
C-APDU: A0 B0 00 00 0A
R-APDU Daten: FF FF FF FF FF FF FF FF FF FF
R-APDU Return Code: 90 00

Lesen des EF Rankl
Lesen von 3 Byte mit einem Offset von 10 Bytes und einem Dateiinhalt von 0xFF
Kommando: READ BINARY
C-APDU: A0 B0 00 0A 03
R-APDU Daten: FF FF FF
R-APDU Return Code: 90 00

Schreiben von Daten in das EF Rankl
Schreiben der ersten 3 Bytes mit fortlaufender Nummerierung bei einem Dateiinhalt von 0xFF
Kommando: UPDATE BINARY
C-APDU: A0 D6 00 00 03 01 02 03
R-APDU: 90 00

Schreiben von 3 Bytes mit fortlaufender Nummerierung mit einem Offset von 10 Bytes
Kommando: UPDATE BINARY
C-APDU: A0 D6 00 0A 03 01 02 03
R-APDU: 90 00

Lesen der Kartenummer aus dem EFICCID
SELECT: EF ICCIC
C-APDU: A0 A4 00 00 02 2F E2
READ BINARY: EF ICCID
C-APDU: A0 B0 00 00 0A


zum SeitenanfangChipkarte von Zeitcontrol

Titel CATitel CA

Kartentyp: Microprozessor Chipkarte mit Virtual Machine für die Ausführung von ZeitControls P-Code für Basic
Übertragungsprotokoll: T=1 nach ISO/IEC 7816-3 mit Chaining, Retries, and WTX R
Hardware: 8 kByte EEPROM, 256 Byte RAM

zum Seitenanfang

Beispiel aus dem Buch

Das im Anhang des Buches vorgestellte Beispiel einer Chipkarten-Anwendung auf der BasicCard ist vollständig in der folgenden Beispieldatei enthalten.

zum Seitenanfang

ATR der Chipkarte

Der ATR der Chipkarte ist folgendermaßen:
'3B EF 00 FF 81 31 20 75 42 61 73 69 63 43 61 72 64 20 5A 43 33 2E 39 86'

Die folgende Tabelle enthält die Dekodierung der einzelnen Datenelemente.

'3B'

TS

direct convention

'FF'

T0

15 historical characters

'95'

TA

clock rate conversion factor 512
bit rate adjustment factor 16

'00'

TB1

programming current factor 25
programming voltage not connected

'FF'

TC1

extra guard time minimum delay

'81'

TD1

Übertragungsprotokoll T=1

'31'

TD2

Übertragungsprotokoll T=1

'20'

TAi

information field size is 32

'75'

TBi

character waiting time integer is 5
character waiting etu's is 43
block waiting time integer is 7

...

...

historical characters "BasicCard ZC3.9"