-
Diese
Erfindung bezieht sich auf den Anschluß auf Applikationsebene zwischen
einem Terminal von der Art eines Mikrocomputers und einem tragbaren
elektronischen Objekt, wie zum Beispiel einer Chipkarte, der sogenannten
Mikrocontroller-Karte oder IC-Karte als Peripheriegerät des Terminals.
-
Auf
Applikationsebene wird der Austausch zwischen einer Empfangsstation
einer Chipkarte, wie zum Beispiel einem Terminal, und der Chipkarte
vermittels von Dateneinheiten eines Applikationsprotokolls APDU
(Application Protocol Data Unit) hergestellt, die die Befehle sind,
die das Terminal an die Karte übermittelt,
und die Antworten, die die Karte an das Terminal übermittelt.
-
Das
Format dieser Befehle und Antworten wird auf Applikationsebene durch
die Norm ISO 7816-4 und ihre Anhänge
A und B definiert, um Protokolleinheiten nach dem asynchronen Übertragungsprotokoll
an den Halbduplexkanal mit den Zeichen „T = 0" zu schicken oder das asynchrone Übertragungsprotokoll
mit „T
= 1" Blöcken. Die
Befehle werden immer vom Terminal ausgelöst, und die Karte muß von der
Art proaktiv sein, um Daten auf ihre Initiative an das Terminal
zu schicken.
-
Ferner
wird in der Norm „Universal
Serial Bus Specification" vom
September 1998 ein genormter universaler Serienbus USB für den Anschluß eines
Mikrocomputers PC an Peripheriegeräte definiert.
-
Alle
Datenübertragungen
zwischen dem Mikrocomputer und einem Peripheriegerät werden
vom Mikrocomputer ausgelöst,
wobei das Peripheriegerät immer
der Sklave des Mikrocomputers ist, und dies im Gegensatz zu einer
Chipkarte gegenüber
dem Terminal. Alle über
den USB Bus laufenden Transaktionen werden mit Paketen durchgeführt, deren
Formate und Abfolgen sich von denjenigen der Befehle und Antworten
unterscheiden, die in der Norm ISO 7816-4 für Chipkarten definiert werden.
-
Das
Patentdokument
WO-00/16255
A entspricht einem technischen Stand nach A54(3) und A54(4)
CBE.
-
Im
Dokument
WO-00/16255
A wird ein tragbares elektronisches Objekt, wie zum Beispiel
eine Chipkarte, beschrieben, in der eine ISO 7816 Schnittstelle
und eine USB Schnittstelle nebeneinander vorhanden sind.
-
Diese
Erfindung zielt darauf ab, ein tragbares elektronisches Objekt als
Peripheriegerät
eines Mikrocomputers anzupassen und genauer, Einheiten des APDU
Protokolls in einem USB Bus zu leiten, damit das tragbare elektronische
Objekt vom Mikrocomputer als ein Peripheriegerät erkannt wird.
-
Hierfür ein Verfahren
für den
Transport von Befehlen, die alle eine Kopfzeile und manche ein Datenfeld
haben, von einem Terminal bis zu einem tragbaren elektronischen
Objekt, und Antworten, von denen manche ein Datenfeld und alle eine
Warteschlange haben, ab dem tragbaren elektronischen Objekt zum
Terminal, dadurch gekennzeichnet, daß es folgende Schritte umfaßt:
Einen
Bus zwischen dem Terminal und dem Objekt stellen, um absteigende
Transaktionen auszutauschen, die jeweils nacheinander ein vom Terminal
an das Objekt übermitteltes
Anfangspaket, ein vom Terminal an das Objekt übermitteltes Datenpaket und ein
vom Objekt an das Terminal übermitteltes
Endpaket umfassen, und aufsteigende Transaktionen, die jeweils ein
vom Terminal an das Objekt übermitteltes Anfangspaket,
ein vom Objekt an das Terminal übermitteltes
Datenpaket und ein vom Terminal an das Objekt übermitteltes Endpaket umfassen;
Die
Kopfzeile und das Datenfeld, sofern vorhanden, jedes Befehls in
die Datenfelder von Datenpaketen beziehungsweise einer absteigenden
Transaktion einschließen
und von mindestens einer absteigenden Transaktion;
Das Datenfeld,
sofern vorhanden, und die Warteschlange jeder Antwort in das Datenfeld
des Datenpakets von mindestens einer aufsteigenden Transaktion einschließen.
-
Durch
die Einschlüsse
der Befehle und Antworten in Datenpakete von Transaktionen wird
mit der Erfindung, wenn das tragbare elektronische Objekt eine Chipkarte
ist, das Lesegerät
der Karte abgeschafft, die jetzt an einen genormten universalen
Serienbus (USB) nach der USB Norm angeschlossen ist, sie bietet
eine hohe Datenrate über
dem Megabit pro Sekunde für
den Austausch zwischen dem Terminal und der Karte und ermöglicht den
Anschluß mehrerer
Chipkarten, oder allgemeiner von tragbaren elektronischen Objekten,
an das Terminal durch einen gemeinsamen Bus.
-
Unter
den vier Datentransfermodi nach der USB Norm zeigt die Erfindung,
daß die
Transaktionen nach dem Transfermodus „voluminös" (Bulk-Transfer) und dem Kontrolltransfermodus (Control
Transfer) besonders gut für
den Betrieb eines tragbaren elektronischen Objekts geeignet sind.
-
Die
Erfindung sieht für
jeden dieser beiden Modi vor, daß jedes Anfangspaket einen
Identifikator umfassen kann, der die Transferrichtung des ihm folgenden
Datenpakets in einer Transaktion ankündigt; Das Anfangspaket jeder
absteigenden Transaktion bezüglich
des Transfers von mindestens einem Teil des Datenfelds eines Befehls
oder einer Antwort kann einen Identifikator umfassen, der die Transferrichtung
des ihm folgenden Datenpakets in der besagten Transaktion ankündigt; Das
Datenfeld eines Datenpakets in der absteigenden Transaktion, das die
Kopfzeile eines Befehls enthält,
kann ebenfalls die erwartete Länge
des Datenfelds der Antwort enthalten, die auf den besagten Befehl
folgt, und/oder die Länge
des Datenfelds des besagten Befehls; Das Datenfeld eines Datenpakets
einer aufsteigenden Transaktion, das den Anfang des Datenfeld einer Antwort
enthält,
kann auch die nützliche
Länge des Datenfelds
der besagten Antwort enthalten, und Füllbits in einer Anzahl im Verhältnis zur
Differenz zwischen der erwarteten Länge des Datenfelds der besagten
Antwort, die in einem vorherigen Befehl eingeschlossen war, und
der nützlichen
Länge können im
Datenfeld des Datenpakets der zweiten aufsteigenden Transaktion
enthalten sein, die die Warteschlange der besagten Antwort enthält.
-
Nach
anderen Merkmalen der Erfindung für den Kontrolltransfermodus
kann das Anfangspaket der ersten absteigenden Transaktion in einer
Folge von mehreren Transaktionen nacheinander bezüglich eines
Befehls oder einer Antwort einen Identifikator umfassen, der den
Anfang der Folge ankündigt; Der
Anfang des Datenfelds eines Datenpakets in der absteigenden Transaktion,
das die Kopfzeile eines Befehl umfaßt, enthält einen Identifikator des
Formats des Befehls; Und die aufsteigende Transaktion, die das Datenpaket
enthält,
in dem der Anfang der Antwort eingeschlossen ist, kann einer absteigenden Transaktion
vorausgehen, deren Anfangspaket einen Identifikator enthält, der
den Beginn einer Abfolge der aufsteigenden Transaktion ankündigt, und
deren Datenpaket eine Struktur aufweist, die mit derjenigen des
Datenpakets der absteigenden Transaktion identisch ist, das die
Kopfzeile eines Befehls enthält
und auch einen Identifikator des Formats der besagten Antwort und
die erwartete Länge
des Datenfelds der besagten Antwort enthält.
-
Weitere
Merkmale und Vorteile dieser Erfindung werden sich beim Lesen der
nachfolgenden Beschreibung mehrerer bevorzugter Ausführungen
der Erfindung herausstellen, in der auf die entsprechenden Zeichnungen
im Anhang verwiesen wird, und auf denen folgendes dargestellt ist:
-
Die 1 stellt
ein schematisches Blockdiagramm einer Verbindung zwischen einem
Terminal von der Art eines Mikrocomputers und einer Chipkarte durch
einen erfindungsgemäßen USB
Bus dar;
-
Die 2 stellt
ein Diagramm mit vier bekannten Befehlsformaten nach der Norm ISO
7816-4 dar;
-
Die 3 stellt
ein Diagramm mit zwei Formaten der Antwort der Karte dar, die nach
der Norm ISO 7816-4 bekannt sind;
-
Die 4 stellt
ein Diagramm mit drei bekannten Arten von USB Paketen dar;
-
Die 5 bis 8 stellen
Transferdiagramme für
Befehl-Antwort Paare nach den 2 beziehungsweise
3 zwischen dem Terminal und der Chipkarte vermittels von Transaktionen
mit drei Paketen nach einer ersten Ausführung der Erfindung dar;
-
Die 9 und 10 stellen
Transferdiagramme für
Befehl-Antwort Paare vermittels von Transaktionen mit drei Paketen
nach einer zweiten Ausführung
der Erfindung dar.
-
Unter
Bezugnahme auf die 1 ist ein Terminal TE, wie zum
Beispiel ein Mikrocomputer (Personal Computer PC), an ein tragbares
elektronisches Objekt angeschlossen, wie zum Beispiel eine Chipkarte
CA, auch IC-Karte oder Mikrocontroller-Karte genannt, und dies durch
einen Bus mit vier Drähten BU
nach der USB Norm (Universal Serial Bus). Der Bus kann mit einem
oder mehreren Anschlußmitteln (Hubs)
an andere Peripheriegeräte
angeschlossen sein, wie zum Beispiel Maus, Tastatur, Drucker, grafischer
Tisch, usw.
-
Der
Bus BU umfaßt
zwei Versorgungsdrähte und
zwei Drähte
zur Übertragung
von Paketen, die eine Datenrate von typischerweise gleich 1,5 Mbit oder
12 Mbit/sec. bieten.
-
Das
in der weiteren Beschreibung mit TE bezeichnete „Terminal" umfaßt das System mit dem Host-Computer, der in
der USB Norm mit „Host" bezeichnet wird
und einen Hardware- und Software-Controller (Host Controller) umfaßt, der
die Rolle einer Schnittstelle im Terminal mit dem Bus BU spielt.
-
Die
Chipkarte CA ist ein logisches und physisches Peripheriegerät im Sinn
von „Device" der USB Norm, das
eine Schnittstelle (Device Endpoint) umfaßt, die eine Informationsquelle
bildet und Funktionen erfüllt,
die sich mit dem Bus BU schneiden.
-
In
der Protokollschicht der Chipkarte CA ist auch eine Softwareeinheit
eingeschlossen, die das genormte Protokoll von Befehl-Antwort nach
der Norm ISO 7816 managt, und die in Beziehung zur Schnittstelle
nach dem USB Protokoll in der Chipkarte steht.
-
Es
wird daran erinnert, und wie auf der 2 gezeigt
wird, daß eine
Dateneinheit des Applikationsprotokolls APDU nach der Norm ISO 7816-4,
die einen Befehl bildet, der vom Terminal TE erstellt wurde und
an die Chipkarte CA geschickt werden soll, eine Kopfzeile EN mit
4 Bytes enthält:
Ein Byte CLA bezeichnet eine Klasse der im nächsten Byte enthaltenen Anweisung,
ein Byte INS bezeichnet einen Anweisungscode, der an einen Befehl
des Betriebssystems im Mikrosteuerbaustein der Chipkarte CA gebunden
ist, und zwei Bytes P1 und P2 bezeichnen Parameter bezüglich der
Anweisung. Ein Befehl kann ferner mindestens eines der nächsten aufeinander folgenden
Felder nach dem Parameter P2 umfassen: Ein Feld LC, das die Länge Lc des
Datenfelds des Befehls enthält,
die in einer Anzahl Bytes ausgedrückt ist, wobei ein Datenfeld
DC mit variabler Länge
256 oder 65535 Bytes erreichen kann, oder ein Feld LE, das die Länge Le enthält, die
in Anzahl Bytes ausgedrückt
ist und im Datenfeld DR der Antwort RES2 auf den besagten Befehl
erwartet wird.
-
Wie
auf der 2 dargestellt ist, kann eine APDU
Einheit von der Art Befehl eines der vier nachstehenden Formate
aufweisen:
- – Fall 1, Befehl C1: Die Karte
erhält
keinerlei ankommende Dateneinheit, und folglich ist die Länge Lc gleich
0, und sie schickt keinerlei abgehende Dateneinheit in einer Antwort
RES1 zurück, und
folglich ist die Länge
Le gleich 0; Der Befehl C1 besteht dann nur noch aus der Kopfzeile
EN;
- – Fall
2, Befehl C2: Die Karte erhält
keinerlei ankommende Dateneinheit, was die Länge Lc gleich 0 vorschreibt,
sie schickt aber abgehende Daten in einer Antwort RES2 zurück, was
eine andere Länge
Le als gleich 0 vorschreibt; Somit umfaßt der Befehl C2 die Felder
EN und LE;
- – Fall
3, Befehl C3: Die Karte erhält
ankommende Dateneinheiten, was vorschreibt, daß die Länge des Datenfeld Lc nicht
gleich 0 ist, und also das Vorhandensein eines Datenfelds DC, und
sie schickt keinerlei abgehende Dateneinheit in einer Antwort RES1
zurück,
was die erwartete Länge Le
gleich 0 vorschreibt; Der Befehl C3 umfaßt dann die Kopfzeile EN mit
den nachfolgenden Feldern LC und DC;
- – Fall
4, Befehl C4: Die Karte erhält
ankommende Dateneinheiten, sie schickt aber auch abgehende Daten
DR in einer Antwort RES2, und folglich sind die Längen Lc
und Le nicht gleich 0; Der Befehl C4 umfaßt nacheinander die vier Felder
EN, LC, DC und LE.
-
Wie
auf der 3 gezeigt wird, weist eine von
der Karte CA erstellte Antwort eines der beiden Formate REST oder
RES2 auf. Das Format der Antwort RES1 enthält nur eine Warteschlange Q
mit 2 Status-Bytes (Status Word) SW1 und SW2. Das Format der Antwort
RES2 enthält
zusätzlich
ein Datenfeld DR variabler Länge,
das einer Warteschlange Q vorausgeht. Wenn die Karte CA einen Befehl
C1 oder C3 erhält,
schickt sie eine Antwort RES1 zurück, die nur eine Warteschlange
Q umfaßt;
Wenn die Karte CA einen Befehl C2 oder C4 erhält, schickt sie eine Antwort
zurück,
die ein Datenfeld DR enthält,
das der Warteschlange Q vorausgeht und eine Länge höchstens gleich der Länge Le hat,
die im der besagten Antwort vorausgehenden Befehl C2 oder C4 angekündigt wurde.
-
Jetzt
in Bezug auf die USB Norm des universalen Serienbusses BU, die drei
Hauptarten von Paketen nach dieser Norm, die eine Transaktion zusammensetzen
können,
um Daten in der einen oder der anderen Richtung zwischen dem Terminal
und der Chipkarte zu übertragen,
sind auf der 4 dargestellt, wobei am Anfang
jedes Pakets ein Synchronisierungsfeld (SYNC) ausgelassen wurde,
das einen Paketanfangsbegrenzer (Start-of-Packet SOP) und einen
Paketendebegrenzer (End-of-Packet EOP) umfaßt:
- – Anfangspaket
der Transaktion von der Art Marken TP (Token Packet), das einen
Paket-Identifikator PID mit 1 Byte umfaßt, die Art „Token" des Pakets und dessen
Namen, ein Adressenfeld mit 7 Bits ADDR, das die Quelle oder die
Bestimmung eines auf das Anfangspaket folgenden Datenpakets identifiziert,
ein Feld mit 4 Bits ENDP (Endpoint), das die Adresse der Funktion
enthält,
die in der Karte als Peripheriegerät insbesondere angesprochen
wird, und ein Kontrollfeld mit zyklischer Redundanz CRC5 mit 5 Bits;
Es gibt vier Anfangspakete TP: Ein OUT genanntes Paket zum Befehlen
eines Transfers von ab dem Terminal TE zur Karte CA absteigenden
Daten, ein IN genanntes Paket zum Befehlen eines Transfers von ab
der Karte CA zum Terminal TE aufsteigenden Daten, ein SOF genanntes
Paket (Start-of-Frame)
zur Markierung und Angabe der Anzahl Pakete am Anfang eines Rasters
mit mehreren Paketen, und ein SETUP genanntes Initialisierungspaket
zum Initialisieren einer Synchronisierung zwischen dem Terminal
und der Karte am Anfang einer Datentransaktion;
- – Datenpaket
DP (Data Packet), das zwischen einem Anfangspaket TP und einem Endpaket
HP in einer Transaktion eingeschoben ist und ein Identifikatorfeld
PID enthält,
ein Datenfeld DATA, das höchstens
1023 Bytes enthält,
und ein Kontrollfeld mit zyklischer Redundanz CRC16 mit 16 Bits; Zwei
Arten von Datenpaketen DP werden von Identifikatoren DATA0 und DATA1
bezeichnet, und dies insbesondere, um die Datenpakete von geradzahligen
Reihen beziehungsweise ungeradzahligen Reihen während der Datentransaktionen in
einer Abfolge nach gewissen Transfermodi zu unterscheiden;
Endpaket
der Transaktion HP (Handshake Packet), das nur ein Identifikatorfeld
PID enthält,
um über
den Status des Transfers vor den Daten zu berichten; Es gibt zwei
Arten von HP Paketen: Ein Paket mit Eingangsbestätigung ACK, das angibt, daß ein vorheriges
Datenpaket DP richtig eingegangen ist, und ein Paket ohne Eingangsbestätigung NAK,
das angibt, daß der
Empfänger,
für den
die im vorherigen Datenpaket enthaltenen Daten bestimmt sind, sie
nicht akzeptiert hat, oder daß der
Sender, der die Daten übermitteln
muß, sie
nicht schicken kann.
-
Es
wird ebenfalls daran erinnert, daß ein Peripheriegerät nach der
USB Norm, wie zum Beispiel die erfindungsgemäße Karte CA, nur unter Befehl des
Terminals (Host) und nach Eingang eines Anfangspakets TP senden
darf; Eine Transaktion, ob sie nun eine absteigende Transaktion
für einen
Befehl ist, oder ob sie nun eine aufsteigende Transaktion für eine Antwort
ist, fängt
mit einem Anfangspaket TP an, das vom Terminal TE an die Karte CA übermittelt
wird. Wenn die vom Paket TP angeforderten Daten nicht verfügbar sind,
antwortet das Peripheriegerät
unter Benutzung eines Pakets NAK, das angibt, daß die im Peripheriegerät angesprochene
Funktion nicht in der Lage war, die Daten anzunehmen, oder daß diese
Funktion keine Daten zum Übermitteln
hat.
-
Nach
einer ersten Ausführung
der Erfindung werden die Einheiten des APDU Protokolls nach dem Transfermodus „voluminös" (Bulk-Transfer)
wie er nach der USB Norm definiert ist, zwischen dem Terminal TE
und der Karte CA ausgetauscht. Der Transfermodus „voluminös" ist für Vorrichtungen
konzipiert, die relativ große
Datenmengen zu sehr variablen Zeitpunkten und mit Benutzung einer
beliebigen verfügbaren
Bandbreite übermitteln
müssen.
Ferner ist dieser Modus „voluminös" relativ einfach,
denn er setzt keinerlei Struktur des Inhalts der Daten voraus und
benutzt nur Anfangspakete der Transaktion TP von der Art OUT für den Transfer
der Daten in absteigender Richtung vom Terminal TE zur Karte CA,
und Anfangspakete der Transaktion von der Art IN für den Transfer
der Daten in aufsteigender Richtung von der Karte CA zum Terminal
TE.
-
Die
vorstehenden Merkmale des Transfermodus „voluminös" machen ihn zu einem für den Austausch
von Einheiten des APDU Protokolls gut geeigneten Modus, wie sich
dies weiter unten in Bezug auf die 5 bis 8 herausstellen
wird. Die Transaktionen nach dem „Bulk"-Modus
haben drei Pakete, die ein Anfangspaket TP von der Art OUT oder
IN, ein Datenpaket DATA0 oder DATA1 und ein Endpaket HP von der
Art ACK oder NAK umfassen.
-
Auf
den 5 bis 8 und auch auf den nachfolgenden 9 und 10 wird
vorausgesetzt, daß das
Endpaket HP nach einem vorherigen richtigen Dateneingang immer von
der Art ACK ist.
-
Wenn
ein Paar Befehl Ci-RES1 nach Fall 1 zwischen dem Terminal und der
Karte ausgetauscht werden soll, werden sechs Pakete nacheinander
in absteigenden und aufsteigenden Transaktionen ausgetauscht, wie
auf der 5 gezeigt wird. Die absteigende
Transaktion umfaßt
ein Anfangspaket OUT, ein Datenpaket DATA0, das die Kopfzeile EN
des Befehls C1 umfaßt,
die vom Terminal an die Karte übermittelt
wird, und ein Endpaket ACK, das dem Terminal mitteilt, daß die Karte
das Paket DATA0 richtig erhalten hat. Die aufsteigende Transaktion
umfaßt
ein Anfangspaket IN, ein Paket DATA1, dessen Datenfeld die Warteschlange
Q mit 2 Bytes SW1 und SW2 der Antwort RES1 umfaßt, und das von der Karte an das
Terminal übermittelt
wird, und ein Endpaket ACK, das der Karte mitteilt, daß das Paket
DATA1 beim Terminal richtig eingegangen ist.
-
Wenn
ein Befehl C2 mit nachfolgender Antwort RES2 mit einem Feld ausgehender
Daten nach Fall 2 der Norm ISO 7816-4 ausgetauscht wird, werden
eine absteigende Transaktion und eine oder mehrere aufsteigende
Transaktionen zwischen dem Terminal TE und der Karte CA ausgetauscht,
wie auf der 6 gezeigt wird. Die Anzahl aufsteigender Transaktionen
hängt von
der Länge
des Datenfelds DR in der Antwort RES2 im Vergleich zur maximalen Länge des
Felds DATA des Pakets DP ab, die zum Beispiel vorher zwischen dem
Terminal TE und der Karte CA auf 8, 16, 32 oder 64 Bytes festgelegt
werden kann. Auf der 6 wird vorausgesetzt, daß das Feld
DR in zwei Felder DATA aufgesplittert ist, sodaß die Abfolge insgesamt drei
Transaktionen umfaßt.
-
Die
absteigende Transaktion nach dem illustrierten Fall 2 umfaßt ein Anfangspaket
OUT, ein Datenpaket DATA0, dessen Datenfeld die 4 Bytes der Kopfzeile
EN mit einem anschließenden
Byte LE umfaßt,
die die Länge
Le der Daten in der Antwort RES2 enthält, welches Datenpaket DATA0
vom Terminal an die Karte übermittelt
wird, und ein Endpaket ACK, das den richtigen Eingang des Pakets
DATA0 bestätigt,
und das von der Karte an das Terminal übermittelt wird. Die erste
der beiden aufsteigenden Transaktionen umfaßt ein Anfangspaket IN, das
vom Terminal übermittelt
wird, ein Datenpaket DATA1, das von der Karte an das Terminal übermittelt
wird, und dessen Datenfeld den Anfang des Datenfelds DR der Antwort
RES2 enthält,
und ein Endpaket ACK, das vom Terminal an die Karte übermittelt
wird, wenn das Terminal das Paket DATA' richtig erhalten hat. Die zweite aufsteigende
Transaktion umfaßt
ein Anfangspaket IN, ein Datenpaket DATA1, das von der Karte an
das Terminal übermittelt
wird und ein Datenfeld DATA hat, das eventuell den Rest der Daten
umfaßt, die
im Feld DR der Antwort RES2 enthalten sind, das mit der Warteschlange
Q mit 2 Bytes SW1 und SW2 der Antwort RES2 verkettet ist, und schließlich ein Endpaket
ACK, das vom Terminal als Antwort auf das richtige Paket DATA1 an
die Karte übermittelt
wird.
-
Ein
Austausch eines Befehls C3 mit einer Antwort RES1 ohne Daten umfaßt zum Beispiel
zwei Transaktionen, um die Daten des Befehls DC zu übermitteln
und umfaßt
also drei absteigende Transaktionen und eine aufsteigende Transaktion,
wie auf der 7 gezeigt wird. Die erste absteigende
Transaktion ist analog zur ersten auf der 6 gezeigten Transaktion
und umfaßt
ein Anfangspaket OUT, ein Datenpaket DATA0 und ein Endpaket ACK,
aber das Datenfeld im Paket DATA0 umfaßt die Kopfzeile EN und das
Feld mit der Länge
LC des Befehls C3. Die beiden anderen absteigenden Transaktionen
sind von der gleichen Art und umfassen jeweils ein Paket OUT zum
Befehlen des Transfers von Befehlsdaten ab dem Terminal TE zur Karte
CA, ein Datenpaket DATA1, dessen Datenfeld den Anfang oder das Ende des
Datenfelds DC des Befehls C3 umfaßt, der vom Terminal an die
Karte übermittelt
wird, und ein Endpaket ACK, das von der Karte in Antwort auf ein
vorheriges richtiges Datenfeld DATA1 an das Terminal übermittelt
wird. Die letzte Transaktion ist ähnlich der letzten aufsteigenden
Transaktion, die auf der 6 gezeigt wird, und sie umfaßt ein Anfangspaket
IN, das vom Terminal an die Karte übermittelt wird, ein Datenpaket
DATA1, dessen Datenfeld nur die 2 Bytes SW1 und SW2 der Warteschlange
Q der Antwort RES1 umfaßt,
und das von der Karte an das Terminal übermittelt wird, und ein Endpaket
ACK, das vom Terminal übermittelt
wird.
-
Wenn
ein Befehl C4 vom Terminal an die Karte übermittelt werden muß, werden
zum Beispiel drei absteigende Transaktionen und zwei aufsteigende
Transaktionen zwischen dem Terminal und der Karte ausgetauscht,
wie auf der 8 gezeigt wird. Bei der ersten
Transaktion wird vom Terminal ein Datenpaket DATA0 nach einem Anfangspaket
OUT an die Karte übermittelt,
und es umfaßt
in seinem Datenfeld DATA die Kopfzeile EN, das Feld der Länge des Befehls
LC und das Feld der erwarteten Länge
LE, die aus dem Befehl c4 entnommen wurden, und darauf folgt ein
Endpaket ACK, das von der Karte an das Terminal übermittelt wird, wenn das vorherige
Paket DATA0 richtig ist. Die beiden nächsten absteigenden Transaktionen
bestehen jeweils aus einem Paket OUT zur Steuerung des Transfers
von Teilen des Datenfelds DC des Befehls C4 ab dem Terminal zur
Karte, einem Datenpaket DATA1, dessen Datenfeld DATA einen ersten
Teil umfaßt,
oder einem Zwischenteil oder einem Endteil des Datenfelds DC des Befehls
C4, der vom Terminal an die Karte übermittelt wird, und ein Endpaket
ACK, das von der Karte an das Terminal übermittelt wird, wenn das vorherige Paket
bei der Karte richtig eingegangen ist. Die beiden aufsteigenden
Transaktionen betreffen den Transfer der Daten des Felds DR der
Antwort RES2, die vom Befehl C2 angekündigt wurden. Die erste aufsteigende
Transaktion umfaßt
ein Anfangspaket IN, das vom Terminal übermittelt wird, dann ein Datenpaket
DATA', das insbesondere
den Anfang des Datenfelds DR der Antwort RES2 umfaßt, das
von der Karte an das Terminal übertragen
wird, und ein Endpaket ACK, das vom Terminal an die Karte übermittelt
wird. Die zweite aufsteigende Transaktion umfaßt ein Anfangspaket IN, das
vom Terminal übermittelt
wird, ein Paket DATA1, dessen Datenfeld eventuell das Ende der aus
der Karte kommenden Daten umfaßt,
die im Feld DR der Antwort RES2 enthalten sind, sowie die Warteschlange
Q mit 2 Bytes SW1 und SW2 der Antwort RES2, und ein Endpaket ACK, das
vom Terminal an die Karte übermittelt
wird.
-
Bei
dem auf der 8 illustrierten Beispiel geben
die Felder CH5 und CH6, die dem Anfang des Datenfelds DR der Antwort
RES2 im Datenpaket DATA1 der ersten aufsteigenden Transaktion vorausgehen,
die nützliche
Länge Lu
der Daten im Feld DR der Antwort RES2 an, die reell übermittelt
werden, wobei Lu unter oder gleich der erwarteten Länge Le sein
kann, die vom Befehl C4 angekündigt
wurde. Wenn auch die Länge
der in der erwarteten Antwort gefragten Daten schon bei Anfang der
Abfolge gemeldet wird, und zwar im Feld LE des Pakets DATA0 während der
vorherigen ersten absteigenden Transaktion, ist es bei Zwischenfall
oder von der Karte CA entdecktem Fehler, die alle oder einen Teil
der an das Terminal TE zu übermittelnden
Daten ungültig
machen, vorzuziehen, dem Terminal die Länge Lu der reell durch die
Antwort RES2 übermittelten
Daten mitzuteilen. Im Fall, wo Lu < Le,
wird das Datenfeld DR der Länge
Le durch bedeutungslose Bytes mit Füllbits BB abgeschlossen (Padding),
deren Anzahl (Le-Lu) nur dazu bestimmt ist, Protokollregeln einzuhalten.
Somit umfaßt
das Feld DATA des Datenpakets DATA1 der ersten aufsteigenden Transaktion
auf der 8 die nützliche Länge Lu und den Anfang des Datenfelds
DC der Antwort RES2, und das Datenfeld DATA des Datenpakets DATA1
der zweiten aufsteigenden Transaktion umfaßt das Ende des Datenfelds DR
der Antwort RES2 mit eventuell nachfolgenden (Le-Lu) Bytes mit Füllbits BB
und den nachfolgenden beiden Bytes SW1 und SW2 der Warteschlange
Q der Antwort RES2.
-
Die
oben beschriebene Variante mit den Feldern CH5 und CH6 und Füllbits BB
ist ebenfalls für diejenigen
der aufsteigenden Transaktionen anwendbar, die eine Antwort RES2
auf den Befehl C2 nach dem Transfer der 6 enthalten.
-
Nach
einer zweiten Ausführung
werden die Befehl-Antwort
Paare nach der Norm ISO 7816-4 zwischen der Karte CA und dem Terminal
im Kontrolltransfermodus (Control Transfer) nach der USB Norm ausgetauscht.
-
Der
Kontrolltransfermodus wird besonders für die Initialisierung der Peripheriegeräte nach
der USB Norm benutzt. Dieser Modus wird somit von allen Controllern
erkannt, was das Interesse daran geweckt hat, ihn erfindungsgemäß auf eine
Chipkarte anzuwenden.
-
Wie
beim vorher beschriebenen Transfermodus „voluminös" sind die Einheiten des Protokolls APDU,
das heißt
die Befehle und die Antworten, erfindungsgemäß in Datenpakete DP nach der
USB Norm während
der Transaktionen eingeschlossen. Jede absteigende Transaktion bezüglich des
zumindest teilweisen Transfers eines Befehls C1 bis C4 oder jede
aufsteigende Transaktion bezüglich
des teilweisen Transfers einer Antwort RES1, RES2 umfaßt drei
Pakete, ein Anfangspaket TP, das vom Terminal an die Karte übermittelt
wird, dann ein Datenpaket DP, das vom Terminal für einen Befehl oder von der
Karte für
eine Antwort übermittelt
wird, und ein Endpaket HP normalerweise von der Art ACK, das von
der Gesamtheit, dem Terminal oder der Karte, übermittelt wird, die das vorherige
Datenpaket DP richtig erhalten hat. Wie schon gesagt wurde, ist
jede Transaktion nur an eine einzige Datentransferrichtung gebunden,
nämlich
entweder die absteigende Richtung ab dem Terminal zur Karte, was
von einem Anfangspaket der Transaktion mit dem Identifikator OUT
angegeben wird, oder in aufsteigender Richtung ab der Karte zum
Terminal, was durch ein Anfangspaket der Transaktion mit dem Identifikator
IN angegeben wird.
-
Im
Kontrolltransfermodus ist eine Abfolge mehrerer Transaktionen durch
drei Schritte (Stages) definiert, nämlich ein Schritt mit Einrichtung
(Setup Stage), ein Schritt mit Daten (Data Stage) und ein Schritt
des Status (Status Stage).
-
Der
Schritt mit Einrichtung definiert die Transferrichtung und die Länge der
zu übertragenden
Daten, damit das Decodieren der Transaktionen beim nachfolgenden
Schritt mit Daten vereinfacht wird. Mit der Bemühung um Optimierung des erfindungsgemäßen Austauschs
ist beim Schritt mit Einrichtung die Kopfzeile EN eines Befehls
C1 bis C4 im Datenpaket DP immer mit dem Identifikator DATA0 enthalten,
wobei die von der USB Norm gebotenen Freiheiten der Codierung genutzt
werden.
-
Sofern
vorhanden, umfaßt
der Schritt mit Daten eine oder mehrere Transaktionen OUT in absteigender
Richtung für
Daten, die zu einem Befehl C3 oder C4 gehören, oder eine oder mehrere
Transaktionen IN in aufsteigender Richtung für Daten, die zu einer Antwort
RES2 gehören.
Die Datenmenge, die mit der Transferrichtung während des vorherigen Schritts
mit Einrichtung spezifiziert ist, kann in mehreren Transaktionen
je nach der vorher bestimmten Größe der Datenpakete
verteilt werden, die im allgemeinen deutlich unter der maximalen
Größe der Felder
DC und DR ist. Somit entspricht jeder Schritt mit Daten einem Datentransfer
in eine einzige Richtung.
-
Der
Schritt Status des Kontrolltransfermodus schließt die Abfolge mit drei Schritten
ab. Dabei wird immer ein Datenpaket DP von der Art DATA1 benutzt und
die Änderung
der Umlaufrichtung der Daten gegenüber dem vorhergehenden Schritt
mitgeteilt; Wenn der vorherige Schritt mit Daten zum Beispiel aus
einem Transfer OUT in absteigender Richtung besteht, betrifft der
nächste
Schritt mit Status eine Transaktion IN in aufsteigender Richtung.
-
Erfindungsgemäß für die Befehl-Antwort Paare
nach der Norm ISO 7816-4:
- – Die Kopfzeile eines Befehls
oder eines simulierten Befehls zur Auslösung einer Antwort ist immer im
Paket DATA0 eines Schritts mit Einrichtung eingeschlossen;
- – Die
absteigenden Daten DC in einem Befehl C3 oder C4 sind in mindestens
einem Paket DP eines Zwischenschritts mit Daten eingeschlossen;
- – Die
aufsteigenden Daten DR in einer Antwort RES2 auf einen Befehl C2
oder C4 sind in mindestens einem Paket DP eines Zwischenschritts mit
Daten eingeschlossen;
- – Die
aus den beiden Statusworten SW1 und SW2 einer Antwort RES1, RES2
gebildete Warteschlange Q ist in das Datenpaket einer letzten Transaktion
des vorgenannten Zwischenschritts mit Daten eingeschlossen, der
einem Statusschritt am Ende einer Abfolge vorausgeht.
-
Die
den Befehlen C1 und C2 entsprechenden Fälle 1 und 2 umfassen dann eine
einzige Abfolge mit einer oder mehreren aufsteigenden Transaktionen
von der Art IN zum Einschließen
einer Antwort ohne oder mit Daten, und die den Befehlen C3 und C4
entsprechenden Fälle
3 und 4 umfassen eine erste Abfolge SQ1 mit einer oder mehreren
absteigenden Transaktionen von der Art OUT zum Einschließen des
Datenfelds DC des Befehl C3 oder C4, und dann eine zweite Abfolge
SQ2 mit einer aufsteigenden Transaktion von der Art IN zum Einschließen einer
Antwort REST ohne Daten für
den Fall 3, oder mit einer oder mehreren aufsteigenden Transaktionen zum
Einschließen
des Datenfelds DR der Antwort RES2 für den Fall 4.
-
Die 9 zeigt
als Beispiel eine Abfolge im Kontrolltransfermodus für einen
Befehl C2 mit einer Antwort RES2, deren Datenfeld DR in Datenpakete DP
mit Identifikatoren DATA1 beziehungsweise DATA0 und DATA1 in drei
aufsteigenden Transaktionen des Zwischenschritts mit Daten verteilt
ist.
-
Der
Schritt mit Einrichtung bildet eine erste aufsteigende Transaktion
der Abfolge und umfaßt
ein Paket SETUP und ein Paket DATA0, die vom Terminal an die Karte übermittelt
werden, und ein Paket ACK, das von der Karte in Antwort auf das
richtig eingegangene Paket DATA0 übermittelt wird. Das Paket DATA0
schließt
nicht nur die 4 Bytes CLA, INS, P1 und P2 der Kopfzeile EN des Befehls
C2 ein, sondern umfaßt
auch zwei Felder CH1 und CH2, die dem Feld der Klasse CLA nach dem
Feld des Identifikators PID von der Art SETUP vorausgehen, und zwei
Felder CH3 und CH4, die auf das Feld des Parameters P2 vor dem Kontrollfeld
CRC16 folgen.
-
Das
Feld CH1 gibt der Karte an, daß die
fünf nächsten Bytes
CH2, CLA, INS, P1 und P2, die ihm im Datenfeld DATA des Pakets DATA0
nachfolgen, Eigentümer-Bytes sind. Das Feld
CH2 enthält
einen Identifikator des Formats, um der Karte das Format des Befehls
oder der Antwort anzugeben, die die laufende Abfolge übermittelt.
-
Die
Felder CH3 und CH4 umfassen die Länge Lc des Datenfelds DC des
Befehls beziehungsweise die erwartete Länge Le des Datenfelds DR der mit
4 beaufschlagten Antwort, die in den Feldern LC beziehungsweise
LE des zu übermittelnden
Befehls gelesen werden, sofern vorhanden. In diesem Fall beim Befehl
C2 ist Lc gleich 0, und Le ist ungleich 0. Die zur Länge Le hinzugefügte Zahl
4 erfaßt
zwei Felder CH5 und CH6, die am Anfang des Datenfelds DATA des ersten
Pakets DATA1 des nachfolgenden Schritts mit Daten eingeschlossen
sind, und die dem Anfang des Datenfelds DR der Antwort RES2 vorausgehen,
und die zwei Bytes SW1 und SW2 in der. Warteschlange Q der Antwort
RES2.
-
Der
Schritt mit Daten umfaßt
drei aufsteigende Transaktionen nach dem auf der 9 illustrierten
Beispiel. Jede Transaktion umfaßt
ein Anfangspaket TP von der Art IN, um einen Datentransfer von der
Karte CA zum Terminal TE zu initiieren, wobei ein Datenpaket DATA1
oder DATA0 einen Teil des Felds DR der Antwort RES2 umfaßt und von
der Karte an das Terminal übermittelt
wird, und ein Endpaket ACK, das der Karte bestätigt, daß das vorher von dieser übermittelte
Datenpaket beim Terminal richtig eingegangen ist.
-
Die
Felder CH5 und CH6, die dem Anfang des Datenfelds DR der Antwort
RES2 im ersten Datenpaket DATA1 vorausgehen, geben, wie schon in Bezug
auf die 8 gesagt wurde, die nützliche
Länge Lu
der Daten im Feld DR der Antwort RES2 an, die reell an das Terminal
TE übermittelt
werden, wobei Lu unter oder gleich Le sein kann. Im Fall, wo Lu < Le, wird das Datenfeld
DR der Länge
Le durch Bytes mit Füllbits
BB ohne Bedeutung (Padding) in einer Anzahl (Le-Lu) abgeschlossen.
Nach dem auf der 9 illustrierten Beispiel umfaßt somit
die zweite aufsteigende Transaktion im Zwischenschritt mit Daten
ein Paket IN, ein Datenpaket DATA0, dessen DATA einen Zwischenteil
des Datenfelds DC der Antwort RES2 umfaßt, und ein Endpaket ACK; Die
letzte Transaktion des Schritts mit Daten umfaßt nach einem Paket IN ein
Datenpaket DATA1, dessen Datenfeld DATA das Ende des Datenfelds
DR der Antwort RES2 umfaßt,
auf die eventuell (Le-Lu) Bytes mit Füllbits BB folgen, und auf die
die zwei Bytes SW1 und SW2 der Warteschlange Q der Antwort RES2
folgen, und ebenfalls ein Endpaket ACK.
-
Der
die Abfolge der 9 abschließende Statusschritt besteht
aus einer absteigenden Transaktion, die eine entgegengesetzte Richtung
zu derjenigen der aufsteigenden Transaktionen mit vorher ausgeführten Daten
IN aufweist. Diese absteigende Transaktion umfaßt ein Anfangspaket OUT, das
vom Terminal TE an die Karte CA übermittelt
wird, ein Paket DATA1 ohne Datenfeld, das vom Terminal an die Karte übermittelt
wird, und ein Endpaket ACK, das den richtigen Eingang des dem DATA1
vorausgehenden Pakets durch die Karte an das Terminal bestätigt.
-
Beim
auf der 9 gezeigten Beispiel ist vorausgesetzt
worden, daß die
vom Befehl C2 beim Schritt mit Einrichtung geforderten Daten in
der Karte verfügbar
waren, und daß folglich
die Karte sie in einer eingeschlossenen Antwort RES2 weiter übermitteln
kann. Im gegenteiligen Fall antwortet die Karte schon ab der zweiten
Transaktion mit einem Endpaket HP von der Art NAK auf das erste
vom Terminal übermittelte
Paket IN, um dem Terminal mitzuteilen, daß die angeforderten Daten nicht
zur Übermittlung bereit
sind.
-
Im
Fall des Befehls C1 umfaßt
die Abfolge den Schritt mit Einrichtung mit Anfangspaket SETUP nach
der 9, einen Schritt mit Daten, der nur eine einzige
Transaktion IN umfaßt
mit einem Datenpaket DATA1, dessen Datenfeld nur die Bytes SW1 und SW2
der Antwort RES1 umfaßt,
und den Statusschritt mit Anfangspaket OUT nach der 9.
-
Nun
in Bezug auf die 10; Ein Austausch eines Befehl
C4 und einer Antwort RES2 mit Daten im Kontrolltransfermodus umfaßt eine
erste Abfolge SQ1 von der Art OUT mit einem Schritt mit Einrichtung,
einen Schritt mit Daten, der mindestens eine absteigende Transaktion
OUT hat, zum Beispiel drei absteigende Transaktionen nach der 10,
und einen Statusschritt, und eine zweite Abfolge SQ2 von der Art
IN mit einem Schritt mit Einrichtung, einem Schritt mit Daten, der
mindestens eine aufsteigende Transaktion IN hat, zum Beispiel drei
aufsteigende Transaktionen nach der 10, und
einen abschließenden
Statusschritt
-
In
der ersten Abfolge SQ1 ist die erste absteigende Transaktion, die
den Schritt mit Einrichtung SETUP bildet, analog zu derjenigen,
die schon in Bezug auf die 9 beschrieben
wurde, bis auf den Unterschied, daß am Anfang des Datenfelds
des ersten Datenpakets DATA0 das Feld CH2 einen Identifikator des
vierten Formats der APDU Einheit enthält, die dem gerade übermittelten
Befehl C4 entspricht, und das Feld CH3 enthält die Länge Lc der Befehlsdaten, die
im Feld LC des Befehls C4 enthalten ist. Ferner umfaßt jede
der drei absteigenden Transaktionen des Schritts mit Daten in der
ersten Abfolge ein Anfangspaket OUT, das vom Terminal an die Karte übermittelt
wird, ein Datenpaket DATA1 oder DATA0, das vom Terminal an die Karte übermittelt
wird, und ein Endpaket ACK, das von der Karte an das Terminal in
Antwort auf das vorherige richtig eingegangene Datenpaket übermittelt
wird. Die Daten DC des Befehls C4 erfüllen nach und nach und bis
zu ihrer maximalen Länge
die Datenfelder DATA in den abwechselnd übermittelten Datenpaketen DATA0
und DATA1; Wenn zum Beispiel die maximale Länge des Datenfelds DATA der
Datenpakete DP mit 8 Bytes festgelegt worden ist, enthalten die
Datenfelder der Pakete DATA1, DATA0 und DATA1 in der ersten Abfolge
8 Bytes beziehungsweise 8 Bytes und 6 Bytes für ein Datenfeld DC, das 22
Bytes enthält.
-
Da
der vorherige Schritt mit Daten in der ersten Abfolge SQ1 Transaktionen
von der Art OUT umfaßt,
ist der Statusschritt, der die erste Abfolge abschließt, dann
eine aufsteigende Transaktion IN und umfaßt ein Anfangspaket TP von
der Art IN, das vom Terminal an die Karte übermittelt wird, ein Datenpaket
DATA1 ohne Datenfeld, das von der Karte an das Terminal übermittelt
wird, und ein Endpaket ACK, das vom Terminal an die Karte übertragen
wird.
-
Die
zweite Abfolge SQ2 des auf der 10 gezeigten
Austauschs umfaßt,
außer
einem Schritt mit Einrichtung, einen Schritt mit Daten mit drei
aufsteigenden Transaktionen von der Art IN, um die Antwort RES2
zu übermitteln,
und einen Statusschritt analog zur auf der 9 illustrierten
Abfolge.
-
Das
Datenpaket DATA0 nach dem Anfangspaket SETUP in der absteigenden
Transaktion, das den Schritt mit Einrichtung der zweiten Abfolge
SQ2 darstellt, hat eine identische Struktur mit dem Paket DATA0
in der ersten absteigenden Transaktion der ersten Abfolge SQ1. Das
Feld CH2 gibt das zweite Antwortformat mit Daten gemäß der Antwort
RES2 an den Befehl C4 an, die Felder CLA, P1, P2 und CH3 enthalten
Nullen, und das Feld CH4 enthält
die Länge
Le der Daten, die die Antwort RES2 enthalten muß, beaufschlagt mit der Zahl
4. Die letztgenannte Zahl 4 entspricht dem Feld CH5-CH6, hier mit
zwei Bytes, für
die nützliche
Länge Lu
der Antwort und der Warteschlange mit zwei Bytes SW1 und SW2. Wenn die
nützliche
Länge Lu,
die in den Feldern CH5 und CH6 am Anfang des Datenfelds DATA des
Datenpakets DATA1 der ersten Transaktion IN beim Schritt mit Daten
der zweiten Abfolge SQ2 enthalten ist, unter der erwarteten Länge Le beträgt, enthält das Datenfeld
DATA des Datenpakets DATA1 der letzten Transaktion IN beim Schritt
mit Daten (Le-Lu) Bytes mit Füllbits
BB vor den beiden Bytes SW1 und SW2 der Warteschlange Q der Antwort
RES2.