스마트 카드 응용 프로그램 프로토콜 데이터 단위

Smart card application protocol data unit

스마트 카드의 맥락에서 애플리케이션 프로토콜 데이터 단위(APDU)는 스마트 카드 리더와 스마트 카드 사이의 통신 단위다. APDU의 구조는 ISO/IEC 7816-4 조직, 보안 상호교환을 위한 명령에 의해 정의된다.[1]

APDU 메시지 명령-응답 쌍

APDU에는 명령 APDU와 응답 APDU의 두 가지 범주가 있다. APDU 명령은 판독기에 의해 카드에 전송되며, 여기에는 필수 4바이트 헤더(CLA, INS, P1, P2)와 0 ~ 65 535바이트의 데이터가 포함되어 있다. 응답 APDU는 0 ~ 65 536바이트의 데이터와 2개의 필수 상태 바이트(SW1, SW2)를 포함하는 카드에 의해 판독기로 전송된다.

명령 APDU
필드명 길이(바이트) 설명
CLA 1 명령어 클래스 - 명령어 유형(예: 산업 간 또는 독점)을 표시
INS 1 명령 코드 - 특정 명령어(예: "데이터 쓰기")를 나타냄
P1-P2 2 명령의 명령 매개 변수(예: 데이터를 쓸 파일의 오프셋)
Lc 0, 1 또는 3 다음 명령 데이터의 바이트 수(Nc)를 인코딩

0바이트는 Nc=0을 나타낸다.
값이 1 ~ 255인 1바이트는 길이가 같은 N을c 의미한다.
첫 번째 바이트는 0이어야 하며, 1 ~ 65 535 범위에서 N을 나타낸다c(3바이트는 모두 0이 아닐 수 있음).

명령 데이터 Nc N바이트의c 데이터
Le 0, 1, 2, 3 필요한 응답 바이트의 최대 수(Ne)를 인코딩

0바이트는 Ne=0을 나타낸다.
1 ~ 255 범위의 1 바이트는 N의e 값을 나타내며, 0은e N=256을 나타낸다.
1 ~ 65 535 범위의 2바이트(명령에 확장 L이c 있는 경우)는 해당 값의 N을e 나타내거나, 0바이트 2개는 65 536을 가리킨다.
3바이트(명령에 L이c 없는 경우), 첫 번째 바이트는 0이어야 하며 2바이트 L과e 같은 방식으로 N을e 나타낸다.

대응 APDU
반응 데이터 Nr(최대 Ne) 반응 데이터
SW1-SW2
(응답 트레일러)
2 명령 처리 상태(예: 90 00(헥사이드십진수)는 성공을 나타냄

참조

  1. ^ "ISO/IEC 7816-4:2005 Identification cards — Integrated circuit cards — Part 4: Organization, security and commands for interchange". Iso.org. 2008-10-03. Retrieved 2012-01-27.

외부 링크