Chipkarten erhalten Befehle als Command-APDU. Eine C-APDU besteht aus vier Header-Bytes: Class, Instruction und zwei Parameterbytes (P1/P2). Class gibt die allgemeine Befehlsklasse an, Instruction den genauen -typ, P1 und P2 gegebenenfalls erforderliche Parameter. Optional sind folgende Längenbytes und Daten. Lc steht für die Länge der gesendeten Daten und Le für die Länge der Daten, die die Karte erwartet. Die Antwort schickt sie als Response-APDU (R-APDU). Diese besteht aus optionalen Daten und dem Status-Word, das bei den meisten Karten nach erfolgreicher Ausführung den Wert 0x9000 hat.
ISO 7816-4 unterscheidet vier Befehlstypen:
Mit dem Protokoll T=0 sind Befehle der letzten Art nicht übertragbar, sie müssen in zwei Kommandos zerlegt werden. Das erste ist der eigentliche Befehl, das zweite ein Get Response, das die Antwortdaten abholt.
Trotz aller Normierungsversuche benutzen unterschiedliche Karten nicht immer identische APDUs für dieselbe Funktion. So sieht ISO 7816-4 für das Select-Kommando CLA=00 und INS=A4 vor. Als Modi kann man das Wurzelverzeichnis (MF) direkt anwählen oder eine Applikation per ID oder eine Datei über einen (absoluten oder relativen) Pfad. Zudem kann der Entwickler angeben, ob er er nur das Status-Word oder die Dateiinformationen als Antwort wünscht. Eine ISO-7816-4-konforme APDU, mit der man das Directory 0x1234 im MF über den absoluten Pfad wählt und auf Dateiinformationen verzichtet, wäre:
00 A4 08 0C 02 12 34
Also CLA=00, INS=A4, P1=08 (absoluter Pfad), P2=0C (keine File-Info), dann die Pfadlänge und der Pfad. Schlumbergers Cryptoflex-Karte benutzt stattdessen CLA=C0, unterstützt nur einen Modus und will auf jeden Fall eine Antwort liefern. Die GPK4000/GPK8000 aus dem Hause Gemplus wiederum erlaubt die Wahl der Application ID, des übergeordneten Verzeichnisses oder direkt des MF.
|
C- und R-APDUs dienen zum Schicken von Kommandos an die Karte beziehungsweise zum Empfang von deren Antworten. |
Dieser Text ist der Zeitschriften-Ausgabe 12/2000 von iX entnommen.
iOS, Android, Windows Phone 7 und HTML5 - das neue Sonderheft von heise Developer führt Einsteiger und Profis in die Programmierung mobiler Geräte ein.