Grundlagen zum Answer-to-Reset

ATR-Schema
ATR-Schema

Die „Answer to Reset“ (ATR) ist die erste Information die eine Chipkarte an den Kartenleser übermittelt, nach dem der Kartenleser einen Reset der Karte durchgeführt hat. Einfach gesprochen handelt es sich bei der ATR um eine Reihe von Parametern, mit der die Karte dem Kartenleser mitteilt, wie er mit ihr kommunizieren kann. Bei kontaktbehafteten Karten ist der Aufbau der ATR sowohl bei CPU- als auch bei Speicher-Karten, unabhängig vom verwendeten Protokoll, gleich. Der Inhalt der ATR ist aber von den Spezifikationen, dem Aufbau der Karten und den Hersteller-Vorgaben abhängig. Chipkarten-Hersteller haben die Möglichkeit, mit Hilfe der ATR die Performance der Chipkarte zu steuern, in dem sie die Parameter der ATR nach ihren Wünschen festlegen. Chipkarten können auch über mehrere ATR’s verfügen, um so ein bestimmtes Maß an Kompatibilität zu erreichen.

=

Der Aufbau einer ATR stellt sich wie folgt dar. Im Wesentlichen besteht eine ATR aus den Blöcken Initial Charater, Format Character, Interface Characters, Historical Bytes und dem Check Caracter.

Der Initial Character, auch TS genannt, dient zum einen für die Festlegung der Bit-Codierung (logisch „1“ wird als Low- (L) oder High- (H) Pegel übertragen) und zum anderen zur Erkennung des von der Karte angewendeten Teilers, der für die Bestimmung der Bitlänge relevant ist. Dabei wird wie folgt vorgegangen. Das Start-Bit und die nächsten drei weiteren Bits sind immer nach dem Muster (L) H H L x x x x x x aufgebaut (L = Low, H = High, x = don’t care). Der Kartenleser ermittelt die Zeit zwischen den beiden fallenden Flanken und teilt sie durch drei. Die erhaltene Elementary Time Unit (etu) bestimmt die Dauer eines Bits.

Die nächsten drei Bits der Sequenz geben die Bit-Kodierung an. Drei Bits auf High bedeutet, dass logisch 1 als High codiert (direkte Konvertierung) wird; drei Bits auf Low bedeutet, dass logisch 0 als Low (indirekte Konvertierung) codiert wird. erstes Bit: Start-Bit; letztes Bit: Partity-Bit

Direct Conversion - (L) H H L H H H L L (H)
Indirect Conversion -
(L) H H L L L L L L (H)

Dabei ist zu beachten, dass sich je nach Konvertierung auch die Bit-Reihenfolge ändert. Bei der direkten Konvertierung wird das Least Significant Bit zuerst übertragen, während bei der indirekten Konvertierung das Most Significant Bit zuerst übertragen wird.

Da die Interface Characters und die Historical Characters optional sind, gibt das Format Caracter (auch T0 genannt) an, welche der Character übertragen werden. Das Most Signifiant Nibble (MSN) von T0 zeigt als Bitmuster an, welches der nächsten vier Interface Characters übertragen wird. Das Least Significant Nibble (LSN) wird als Zahl interpretiert und liefert die Anzahl der Historical Character (1 bis max. 15). Tabelle 1 gibt Aufschluss über die möglichen Zusammenstellungen des Format Characters.

=

Format Character Belegung

b8b7b6b5b4b3b2b1
Anzahl der Historical Characters ----xxxx
TA(1) wird übertragen ---1----
TB(1) wird übertragen --1-----
TC(1) wird übertragen -1------
TD(1) wird übertragen 1-------

 

Der Aufbau der Interface Characters ist mit einer verketteten Liste vergleichbar. In TD(1) wird, ähnlich wie in T0, im MSN (Most Significant Nibble) angezeigt, welche der nächsten Interface Characters (TX(i+1), X Î {A, B, C, D}, i > 1) in der ATR vorkommen. Das Least Significant Nibble (LSN) von TD(i) gibt Auskunft über den zu verwendeten Protokoll-Typ (T = 0, T = 1 bzw. in Zukunft auch andere). Unterstützt die Chipkarte mehrere Protokoll-Typen, kann in TD(i+1) auch ein anderer vermerkt sein. Die Auswahl hat dann in der Protokoll Selektion zu erfolgen. TA(1), TB(1), TC(1) und TB(2) werden als globale Interface Bytes bezeichnet. Sie geben dem Kartenleser Auskunft über den internen Taktteiler, die nötige Programmierspannung Vpp und den resultierenden Programmierstrom. Die Interpretation von TA(i), TB(i), TC(i) (i > 2) hängt vom Protokolltyp ab.

Der Inhalt der Historical Bytes ist derzeit noch nicht genormt. Man findet darin sehr oft Informationen über den Kartenhersteller, den Kartentyp (z. B. Grösse, usw.), die Versionsnummer und den Status der Karte. Bei österreichischen Maestro-Karten ist bspw. der aktuelle Saldo der integrierten Geldbörse Quick in diesen Bytes zu finden.

Mit dem Check Character kann eine zusätzliche Paritätsprüfung vorgenommen werden. Das Check Character enthält eine XOR-Verknüpfung (Exklusiv-Oder) der Bytes der ATR von T0 bis zum letzen Byte vor TCK. Seine Übertragung hängt aber von Kriterien wie z.B. dem Protokolltyp ab, wodurch eine Überprüfung nicht immer möglich ist.

=