Application Protocol Data Unit

Application Protocol Data Unit (APDU) – struktura danych w protokole komunikacji między czytnikiem a kartą elektroniczną (np. między telefonem a kartą SIM). Struktura ramki APDU zdefiniowana jest w ISO/IEC 7816-4 Organization, security and commands for interchange[1].

Istnieją 2 kategorie APDU: polecenie APDU (od czytnika do karty) oraz odpowiedź APDU (od karty do czytnika). Polecenie APDU składa się z obowiązkowego nagłówka (4 bajty na pola: CLA, INS, P1, P2) i z opcjonalnej liczby danych (od 0 do 255 bajtów). Odpowiedź APDU stanowią 2 bajty statusowe oraz od 0 do 256 bajtów z danymi.

Polecenie APDU
Pole Długość (w bajtach) Opis
CLA 1 określa klasę instrukcji, do której należy polecenie
INS 1 określa konkretną instrukcję do wykonania na karcie, np.: „zapisz dane”
P1-P2 2 określa parametry instrukcji, np. offset w pliku, do którego mają być zapisane dane
Lc 0, 1 lub 3 określa liczbę (Nc) bajtów z danymi
Dane instrukcji Nc Nc bajtów z danymi
Le 0, 1, 2 lub 3 określa maksymalną liczbę (Ne) bajtów spodziewanych w odpowiedzi
Odpowiedź APDU
Dane odpowiedzi. Nr (max. Ne) Dane zwrócone przez kartę na zadaną instrukcję z parametrami.
SW1-SW2[2] 2 Kody statusu odpowiedzi, np. 90 00 (szesnastkowo) oznacza prawidłową odpowiedź

Przypisy

  1. ISO/IEC 7816-4:2005 Identification cards – Integrated circuit cards – Part 4: Organization, security and commands for interchange. Iso.org, 2008-10-037.
  2. Opis wybranych kodów SW1 i SW2. cheef.ru. [zarchiwizowane z tego adresu (2009-06-23)]..