728x90
APDU는 "Application Protocol Data Unit"의 약자로, 스마트 카드와 카드 리더기 간의 통신에 사용되는 데이터 단위입니다. 스마트 카드와의 상호작용에서 중요한 역할을 하며, 주로 두 가지 유형으로 나뉩니다:
1. APDU의 구성:
APDU는 두 가지 주요 부분으로 나눌 수 있습니다:
- 명령 APDU (Command APDU): 카드에 명령을 보내는 데 사용됩니다. 이 명령은 카드에 수행할 작업을 지시합니다.
- 응답 APDU (Response APDU): 카드가 명령에 대한 응답을 보내는 데 사용됩니다. 이 응답은 명령의 실행 결과를 포함합니다.
2. 명령 APDU의 형식:
명령 APDU는 다음과 같은 필드로 구성됩니다:
- CLA (Class byte): 명령의 클래스를 정의합니다. 특정 카드의 명령 집합을 식별하는 데 사용됩니다.
- INS (Instruction byte): 수행할 작업을 정의하는 명령어입니다. 예를 들어, 데이터 읽기, 데이터 쓰기, 인증 등의 작업을 나타냅니다.
- P1-P2 (Parameter bytes): 명령에 대한 추가적인 매개변수를 포함합니다. 특정 작업에 필요한 세부 설정을 정의합니다.
- Lc (Length of command data): 명령 데이터의 길이를 정의합니다. 이 필드는 선택적으로 포함될 수 있습니다.
- Data (Command data): 명령에 필요한 데이터를 포함합니다. Lc가 있는 경우에만 포함됩니다.
3. 응답 APDU의 형식:
응답 APDU는 다음과 같은 필드로 구성됩니다:
- Data (Response data): 명령의 실행 결과로 반환된 데이터입니다.
- SW1-SW2 (Status words): 명령의 실행 상태를 나타내는 두 바이트의 상태 코드입니다. 이 상태 코드는 명령이 성공적으로 수행되었는지 또는 오류가 발생했는지를 나타냅니다.
4. 사용 예:
예를 들어, 스마트 카드에서 특정 데이터를 읽어오려는 경우:
- 명령 APDU: 카드에 데이터를 읽어오라는 명령을 보냅니다.
- 응답 APDU: 카드가 요청한 데이터를 응답으로 반환합니다.
5. APDU 예시:
- 명령 APDU: 00 A4 04 00 07 A0 00 00 04 10 10 01 01
- CLA: 00 (카드 명령 클래스)
- INS: A4 (SELECT 명령)
- P1: 04 (파일 선택 모드)
- P2: 00 (선택 옵션)
- Lc: 07 (데이터 길이)
- Data: A0 00 00 04 10 10 01 (선택할 파일 ID)
- 응답 APDU: 6F 1D 84 0A A0 00 00 04 10 10 01 01 90 00
- Data: 84 0A A0 00 00 04 10 10 01 01 (파일 정보)
- SW1-SW2: 90 00 (성공적으로 처리됨)
APDU는 스마트 카드의 보안과 통신을 관리하는 데 필수적이며, 카드와 시스템 간의 명확한 상호작용을 보장합니다.
728x90
'기타' 카테고리의 다른 글
[OneNote 2016] 플러그인 (0) | 2025.01.22 |
---|---|
메일에 mailto 하이퍼링크 걸기 (0) | 2024.04.23 |
바탕 화면 아이콘이 안 보일 때 (1) | 2024.03.20 |
Avast - URL:Malvertising에 감염되었기 때문에 search.naver.com 연결을 안전하게 중단했습니다. (0) | 2022.11.09 |