Smart Card Kommunikation

Da bei Smart Cards nur eine Leitung benutzt werden kann, läuft die Kommunikation nur im halbduplex Verfahren. Die beiden freien Kontakte könnten zukünftig für ein Vollduplexverfahren oder USB genutzt werden. Die Kommunikation erfolgt nach einem Master-Slave-Prinzip, sie wird immer vom Terminal angestoßen, die Smart Card sendet selbst nie Daten. Auf ein Kommando des Terminals erfolgt eine Antwort der Karte. Die erste Kommunikation ist ein Reset vom Terminal auf den die Karte mit einem ATR (answer to reset)antwortet, der Karten und Übertragungsparameter enthält. Möglicherweise sendet das Terminal danach noch einen PPS (protocol parameter select). Danach beginnt die Kommando-Antwort Sequenz.

=

Protokolle und Schichten

Auch die Protokolle zur Kommunikation mit einer Smart Card kann anhand eines dreiteiligen Schichtenmodells klassifiziert werden.

Protokolle der Anwendungsschicht zuzurechnen sind: ISO/IEC 7816-4 u. 7-9, GSM, EMV, TS 31.111 (UMTS) EN 1546-3 (IEP)

Protokolle der Leitungschicht: ISO/IEC 7816-3 (T=0, T=1) ISO 10536-4 (T=2), T=14, USB, Bei T=1 nach EMV sind einige Einschränkungen gegenüber T1 nach ISO getroffen worden. Das in ISO 14443 definierte Protokoll wird oft auch T=CL genannt.

Die physikalische Übertragung: ISO/IEC 7816-2, und die Standards für kontaktlose Karten ISO/IEC 10536, ISO/IEC 14443, ISO/IEC 15693. 

=

Schicht 7
Anwendungsschicht 
ISO 7816-4,7,8,9
GSM, EMV, TS 31.111, EN 1546-3
proprietäre Protokolle 
Schicht 2
Leitungsschicht 
ISO 7816-3
ISO 14443-4 
Schicht 1
Physikalische Schicht 
ISO 7816-2
ISO 14443-2 (Typ A, Typ B) 

=

APDUs

Der Datenaustausch auf der Anwendungsschicht findet mit APDUs (application protocol data units) statt, unabhängig vom darunter liegenden Übertragungsprotokoll bei dem man von TPDUs (transport protocol data unit) spricht. Gemäß der Master-Slave Beziehung existieren Kommando-APDUs (C-APDU) und Antwort-APDUs (R-APDU).

Eine C-APDU besteht aus Header und Body, wobei der Header aus einem Class-Byte einem Instruction-Byte und ein oder zwei Parameterbytes besteht. Während das Class-Byte oft dazu verwendet wird Anwendungen und ihren Befehlssatz zu kennzeichnen, wird im Instruction-Byte das eigentliche Kommando codiert. Der optionale Body enthält die Daten zum Kommando, das Lc - Feld enthält die Länge des Datenfelds (length command) die Daten und eventuell ein Le-Feld welches die Länge der Antwort festlegt (length expected)

Eine R-APDU hat einen optionalen Body, der Daten enthält sowie einen verpflichtenden Trailer. Der Trailer besteht aus den beiden Bytes SW1 und SW2 (Status Word) und stellen den Returncode dar. Die über 50 verschiedenen Returncodes sind systematisch klassifiziert und zeigen die normale Bearbeitung oder bestimmte Warnungen an, bzw. wenn der Prozess abgebrochen wurde, ob es sich um einen Fehler bei der Ausführung oder bei einer durchgeführten Prüfung handelt.

=

Secure Messaging

Über die Kontaktfläche, über welche die Kommunikation läuft, kann natürlich relativ einfach alles aufgezeichnet werden, bzw. Kommandos und Antworten manipuliert werden können ist zum Austausch sensitiver Informationen in einer nicht vertrauenswürdigen Umgebung ein besonderes Verfahren notwendig.

"Secure Messaging" kann entweder die Integrität durch Checksummen (MACs) oder auch zusätzlich Vertraulichkeit durch Verschlüsselung sicherstellen. Die Integration eines Sendefolgenzählers verhindert dabei ein Wiedereinspielen von Kommunikation.

=

Schnittstellen zum Rechner

Die Kommunikation von Smart Cards mit externen Rechnern kann über PKCS #11 oder bei Windows auch mittels eines für die Smart Card bestimmten CSP (Cryptographic Service Provider) durchgeführt werden.

=

Schnittstellen zu Chipkarten
Schnittstellen zu Chipkarten