|
|
 |
|
|
 |
Smartcards: Die Kommunikation mit dem Lesegerät
Der Beginn der Kartensitzung
Die Benutzung einer Smartcard wird als Kartensitzung bezeichnet. Eine Sitzung beginnt mit dem Einführen der Karte in den Kartenleser. Zu Beginn der Sitzung werden folgende Schritte ausgeführt:
|
 |
Das Lesegerät aktiviert das RST-Signal. |
|
 |
Die Versorgungsspannung wird aufgebaut. |
|
 |
Der Controller setzt den I/O-Kontakt in den Empfangsmodus. |
|
 |
Das Lesegerät startet das Taktsignal. |
|
 |
Die Karte führt einen Power-On-Reset aus. |
|
 |
Das Lesegerät deaktiviert das RST-Signal. |
|
 |
Die Karte sendet das Answer-To-Reset-Signal (ATR), das eine Liste der möglichen Kommunikationsparameter enthält. |
|
 |
Das Lesegerät wählt ein Protokoll. Dieser Vorgang wird als PTS (Protocol Type Selection) bezeichnet. |
|
 |
Das Lesegerät teilt der Karte mit, welches Protokoll es gewählt hat. |
Die Kommunikation
Die Kommunikation zwischen Smartcard und Lesegerät basiert auf dem Client-Server-Prinzip: Die Karte stellt eine Reihe von Funktionen zur Verfügung, die durch das Lesegerät aufgerufen werden. Da nur ein I/O-Kontakt vorhanden ist, befindet sich jeweils eine Seite im Sende- und die andere Seite im Empfangsmodus.
Nach dem OSI-Referenzmodell lässt sich die Kommunikation in mehrere Schichten unterteilen.
Die unterste Schicht, Bitübertragungsschicht (Physical Layer) genannt, ist für die Aufrechterhaltung des elektronischen Kommunikationsweges verantwortlich. Im ATR werden Parameter wie Übertragungsgeschwindigkeit, Spannungspegel und Art der Logik (positiv oder negativ) übergeben. Die Übertragungsraten liegen in einem Bereich von 9600 bps bis 115 kbps.
Die zweite Schicht ist die Sicherungsschicht (Data Link Layer, Medium Access Control). Sie umfasst Protokolle zur Datenübertragung sowie Routinen zur Fehlerbehandlung. Der Datenstrom wird in einzelne Bytes unterteilt, die zusammen mit Start-, Stop- und Paritätsbits als TPDUs (Transport Protocol Data Unit) übertragen werden.
Für die Kommunikation mit Smartcards spielt weiterhin die Schicht 7 des Referenzmodell eine Rolle. Sie wird als Anwendungsschicht (Application Layer) bezeichnet. Sie umfasst die Übertragung von Kommandos, die als APDUs (Application Protocol Data Unit) bezeichnet werden, nach dem Client-Server-Prinzip.
Die Sicherungsschicht: Die Protokolle T=0 und T=1
In der Sicherungsschicht können 15 verschiedene Übertragungsprotokolle (T, Transmission Protocol) verwendet werden. Die gebräuchlichsten sind T=0 und T=1. Sie werden im ISO/IEC-7816/3-Standard beschrieben. Beide Protokolle sind für die asynchrone Halbduplex-Übertragung ausgelegt.
Das Protokoll T=0
Das Protokoll T=0 arbeitet byte- bzw. zeichenorientiert. Es ist recht einfach zu implementieren. Zusätzlich zu jedem Zeichen wird ein Paritätsbit übertragen. Beim Auftreten eines Fehlers wird nur das letzte Zeichen erneut gesendet.
Die Kommunikation wird immer vom Lesegerät initiiert. Es sendet ein Kommando, das aus einem Header und einem optionalen Body besteht. Der Header enthält die Klasse des Kommandos, den Code für die auszuführende Operation, zwei Parameterbytes und die Anzahl der Datenbytes, die gesendet oder empfangen werden sollen. Der Body enthält ggf. die zu übertragenden Daten. Mit einem Kommando können nicht gleichzeitig Daten gesendet und empfangen werden.
Das Protokoll T=1
Das Protokoll T=1 arbeitet blockorientiert. Es ist komplexer als T=0, seine Implementation erfordert wesentlich mehr Aufwand. Wenn ein zu übertragendes Datenpaket die maximale Blocklänge überschreitet, können mehrere Blöcke zu einer Einheit verkettet werden. Das T=1-Protokoll bietet den Vorteil, dass mit einem Kommando sowohl in der Anfrage als auch in der Antwort Daten übertragen werden können.
Die Anwendungsschicht: APDUs
In der Anwendungsschicht werden APDUs (Application Protocol Data Unit, Anwendungs-Dateneinheit) übertragen. Eine Anfrage des Lesegerätes an die Smartcard wird durch eine Kommando-APDU realisiert. Die Karte reagiert in Form einer Antwort-APDU, die ggf. den Rückgabewert der Operation enthält.
Sichere Kommunikation
Es gibt zwei Verfahren zur Sicherung der Kommunikation in der Anwendungsschicht.
Das Authentic-Verfahren
Mit diesem Verfahren kann die Authentizität der übertragenen APDUs gesichert werden. Aus jeder APDU wird mittels Blockverschlüsselung eine kryptografische Prüfsumme (CSS, cryptographic checksum) gebildet. Die Prüfsumme wird zusammen mit der APDU übertragen.
Das Combined-Verfahren
Das Combined-Verfahren basiert auf dem Authentic-Verfahren. Der Datenteil der APDU und die Prüfsumme werden verschlüsselt übertragen. Auf diese Weise wird das Abhören der Kommunikation verhindert.
Das Ende der Sitzung
Wenn die Karte aus dem Lesegerät entfernt wird, schaltet das Lesegerät die Kontakte in der Reihenfolge RST, CLK, I/O, Vcc ab.
|
|
|