Im Kontext von Smartcards ist eine Application Protocol Data Unit ( APDU ) die Kommunikationseinheit zwischen einem Smartcard-Lesegerät und einer Smartcard. Die Struktur der APDU ist in ISO/IEC 7816-4 Organisation , Sicherheit und Befehle für den Datenaustausch definiert . [ 1 ]

APDU-Nachrichten-Befehl-Antwort-Paar

Es gibt zwei Kategorien von APDUs: Befehls-APDUs und Antwort-APDUs. Eine Befehls-APDU wird vom Lesegerät an die Karte gesendet – sie enthält einen obligatorischen 4- Byte -Header (CLA, INS, P1, P2) [ 2 ] und 0 bis 65.535 Byte Daten. Eine Antwort-APDU wird von der Karte an das Lesegerät gesendet – sie enthält 0 bis 65.536 Byte Daten und zwei obligatorische Statusbytes (SW1, SW2).

Befehl APDU
Feldname Länge (Bytes) Beschreibung
CLA 1 Befehlsklasse – gibt die Art des Befehls an, z. B. branchenübergreifend oder proprietär.
INS 1 Befehlscode – gibt den spezifischen Befehl an, z. B. „select“, „write data“
P1-P2 2 Befehlsparameter, z. B. der Offset in der Datei, an dem die Daten geschrieben werden sollen.
L c0, 1 oder 3 Kodiert die Anzahl (N c ) der folgenden Bytes an Befehlsdaten.

0 Bytes bedeuten N c = 0; 1 Byte mit einem Wert von 1 bis 255 bedeutet N c mit der gleichen Länge; 3 Bytes, von denen das erste 0 sein muss, bedeuten N c im Bereich von 1 bis 65; 535 (alle drei Bytes dürfen nicht null sein).

Befehlsdaten N cN c Bytes an Daten
L e0, 1, 2 oder 3 Kodiert die maximale Anzahl (N e ) der erwarteten Antwortbytes.

0 Bytes bedeuten N <sub>e</sub> = 0. 1 Byte im Bereich von 1 bis 255 bedeutet diesen Wert von N<sub> e</sub> , oder 0 bedeutet N <sub>e</sub> = 256. 2 Bytes (falls das erweiterte L<sub> c </sub> im Befehl vorhanden war) im Bereich von 1 bis 65.535 bedeuten N<sub> e</sub> mit diesem Wert, oder zwei Null-Bytes bedeuten 65.536. 3 Bytes (falls L<sub> c</sub> nicht im Befehl vorhanden war), von denen das erste 0 sein muss, bedeuten N<sub> e</sub> auf die gleiche Weise wie ein zweibyte L<sub> e</sub>.

Antwort APDU
Antwortdaten N r (höchstens N e ) Antwortdaten
SW1-SW2 (Einsatzanhänger) 2 Der Status der Befehlsverarbeitung, z. B. 90 00 ( hexadezimal ), bedeutet Erfolg [ 2 ].

Siehe auch

Referenzen