PE Notes · 서비스
ASN.1
추상 구문으로 구조를 적고 BER·DER·PER로 바이트를 고르는 ASN.1을 TLV와 인증서·이동망 쓰임으로 정리합니다.
언어와 CPU가 달라도 인증서 한 장이 같은 의미여야 합니다. 은 그 의미를 추상 구문으로 적는 표기법(ITU-T X.680 / ISO 8824)입니다. 바이트로 바꾸는 규칙은 따로 고릅니다.
추상과 전송을 가른다
추상 구문은 INTEGER·SEQUENCE처럼 타입과 순서만 말합니다. 전송 구문은 그 결과를 네트워크에 올리는 바이트입니다. 인코딩 규칙이 둘을 잇습니다. 같은 추상이라도 규칙이 바뀌면 길이가 바뀝니다.
는 기본이고 Tag-Length-Value로 유연합니다. 같은 값에 여러 바이트 표현이 남을 수 있습니다. 은 그 표현을 하나로 고정합니다. 서명이 바이트에 묶이므로 인증서가 DER을 고릅니다. 은 태그를 줄여 비트를 밀어 넣습니다. 무선·이동망이 이 칸입니다. CER은 큰 스트림, XER은 XML 가독성입니다.
| 규칙 | 하는 일 | 자리 |
|---|---|---|
| BER | 기본 TLV, 유연 | 범용 |
| DER | 유일한 바이트 | 인증서·서명 |
| PER | 비트 밀도 | 이동망·IoT |
| CER | 스트림 | 대용량 |
| XER | XML | 웹 연동 |
기본 타입은 정수·불리언·옥텟·문자열, 집합은 SEQUENCE·SET, 선택은 CHOICE, 이름은 OID입니다.
TLV는 이름·길이·값
BER·DER에서 태그가 타입을 알리고, 길이가 값의 폭을 말하며, 값이 본문입니다. 정수 하나를 짧은 세 칸으로 실을 수 있습니다. PER은 이 칸을 더 깎아, 개념만 같고 모양이 다릅니다.
X.509 인증서는 SEQUENCE로 본문·알고리즘·서명값을 쌓습니다. 은 DER로 고정된 본문 위에 올라갑니다. 가 그 인증서를 교환합니다.
어디서 쓰이는가
PKI와 CMS, SNMP MIB, LDAP 디렉터리, Kerberos 티켓, 3GPP 무선 메시지가 같은 표기법을 씁니다. 5G RRC는 PER 쪽에 가깝습니다. 와 IoT 스택도 이진 스키마가 필요할 때 이 계열을 만납니다.
답안은 추상/전송, BER·DER·PER 개념, TLV, 인증서 쓰임을 한 장에 씁니다.