PKI/ASN.1

ASN.1 ์ธ์ฝ”๋”ฉ ๋ฐฉ์‹

JayKim๐Ÿ™‚ 2023. 6. 29. 09:07

ASN.1(Abstract Syntax Notation One)์€ ๋ฐ์ดํ„ฐ ํ‘œํ˜„ ํ˜•์‹์˜ ๊ทœ์น™์„ ์ •์˜ํ•˜๊ธฐ ์œ„ํ•œ ํ‘œ๊ธฐ๋ฒ•์ด๋‹ค.
ASN.1 ์ธ์ฝ”๋”ฉ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฐ”์ดํŠธ ์ŠคํŠธ๋ฆผ์œผ๋กœ ํ‘œํ˜„๋˜๋ฉฐ
์ธ์ฝ”๋”ฉ ํ˜•์‹์€ ๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ๋ฅผ ์ตœ์†Œํ™”ํ•˜๊ณ , ๋‹ค์–‘ํ•œ ํ”Œ๋žซํผ๊ณผ ์–ธ์–ด ๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์ƒํ˜ธ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.
ASN.1 ์ธ์ฝ”๋”ฉ์—๋Š” ๋‹ค์–‘ํ•œ ํ˜•์‹์ด ์žˆ๋Š”๋ฐ
BER( Basic Encoding Rules ), PER (Packed Encoding Rules), CER (Canonical Encoding Rules)
DER (Distingushed Encoding Rules ) OER, XER, JER ๋“ฑ์ด ์žˆ๋‹ค.
๊ทธ๋Ÿผ ๊ฐ๊ฐ์˜ ์ธ์ฝ”๋”ฉ ํŠน์ง•์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
์ด๊ธ€์€ oss.com ์— ์žˆ๋Š” ์ •๋ณด๋ฅผ ์ฐธ๊ณ  ํ•˜์˜€๋‹ค [์ฐธ๊ณ ์ž๋ฃŒ]

BER DER CER

๊ฐ€์žฅ ์˜ค๋ž˜๋œ ์ธ์ฝ”๋”ฉ ๊ทœ์น™์ธ ๊ธฐ๋ณธ ์ธ์ฝ”๋”ฉ ๊ทœ์น™BER (Basic Encoding Rules) ์€
๋ชจ๋“  ์ •๋ณด๋ฅผ ์ธ์ฝ”๋”ฉํ•˜๊ธฐ ์œ„ํ•ด TLV(Tag-Length-Value) ํ˜•์‹์„ ์‚ฌ์šฉ.
BER์€ ํ•ญ์ƒ ๋’ค์— ์˜ค๋Š” ๋ฐ์ดํ„ฐ์˜ ์ข…๋ฅ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ํƒœ๊ทธ๋ฅผ ๋ณด๋‚ด๊ณ ,
๋’ค๋”ฐ๋ฅด๋Š” ๋ฐ์ดํ„ฐ์˜ ๊ธธ์ด๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ธธ์ด์™€ ์‹ค์ œ ๋ฐ์ดํ„ฐ์ธ ๊ฐ’์„ ๋ณด๋‚ธ๋‹ค.
2๊ฐœ์˜ ๊ด€๋ จ ์ธ์ฝ”๋”ฉ ๊ทœ์น™์ธ DER(Distinguished Encoding Rules) ๋ฐ CER(Canonical Encoding Rules)์€
BER์ด ์ œ๊ณตํ•˜๋Š” ์ถ”๊ฐ€ ์œ ์—ฐ์„ฑ์„ ์ผ๋ถ€ ์ œ๊ฑฐํ•˜๋Š” BER์˜ ํ•˜์œ„ ์ง‘ํ•ฉ์ด๋‹ค.
DER์€ ์ผ๋ฐ˜์ ์œผ๋กœ X.509 ๋””์ง€ํ„ธ ์ธ์ฆ์„œ์™€ ๊ฐ™์€ ๋ณด์•ˆ ๊ด€๋ จ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

PER

๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ์ธ์ฝ”๋”ฉ ๊ทœ์น™์€ PER(Packed Encoding Rules)์ด๋‹ค.
PER์€ ๋ฉ”์‹œ์ง€์˜ ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ์ˆœ์„œ๋ฅผ ์•Œ๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— TLV์˜ ํƒœ๊ทธ๋ฅผ ๋ณด๋‚ด์ง€ ์•Š๋Š”๋‹ค๋Š” ์ ์—์„œ BER๊ณผ ๋‹ค๋ฅด๋‹ค.
PER์€ ๋˜ํ•œ ๊ฐ’์ด ๊ณ ์ • ๊ธธ์ด์ธ ๊ฒฝ์šฐ TLV์˜ ๊ธธ์ด๋ฅผ ๋ณด๋‚ด์ง€ ์•Š๋Š”๋‹ค.
PER์€ ๋˜ํ•œ ASN.1 ๋ฉ”์‹œ์ง€ ์„ค๋ช…์˜ ์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ TLV์˜ ๊ฐ’ ๋ถ€๋ถ„์—์„œ ์ค‘๋ณต ์ •๋ณด๋ฅผ ์ œ๊ฑฐํ•˜๋ฏ€๋กœ
PER ๋ฉ”์‹œ์ง€๋ฅผ ๋งค์šฐ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ๋งŒ๋“ค๊ณ  ๋Œ€์—ญํญ ๋ณด์กด์ด ์ค‘์š”ํ•œ ํ™˜๊ฒฝ์— ์ ํ•ฉํ•˜๋‹ค.
PER-Aligned ๋ฐ Unaligned์—์„œ ๋ฉ”์‹œ์ง€๋ฅผ ์ธ์ฝ”๋”ฉํ•˜๋Š” ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค.
์ •๋ ฌ๋œ PER์„ ์‚ฌ์šฉํ•˜๋ฉด ํŒจ๋”ฉ ๋น„ํŠธ๋ฅผ ์‚ฝ์ž…ํ•˜์—ฌ ํ•„๋“œ๋ฅผ 8๋น„ํŠธ ์˜ฅํ…Ÿ ๊ฒฝ๊ณ„์— ์ •๋ ฌํ•  ์ˆ˜ ์žˆ๋‹ค.
์ •๋ ฌ๋˜์ง€ ์•Š์€ PER์„ ์‚ฌ์šฉํ•˜๋ฉด ํ•„๋“œ ์‚ฌ์ด์— ํŒจ๋“œ ๋น„ํŠธ๊ฐ€ ์‚ฝ์ž…๋˜์ง€ ์•Š๋Š”๋‹ค.
์ •๋ ฌ๋˜์ง€ ์•Š์€ PER์€ RANAP, NBAP ๋˜๋Š” RRC์™€ ๊ฐ™์€ ํ”„๋กœํ† ์ฝœ์„ ์œ„ํ•œ
UMTS(3G) ๋˜๋Š” LTE(4G)์™€ ๊ฐ™์€ 3GPP ์…€๋ฃฐ๋Ÿฌ ๊ธฐ์ˆ ์—์„œ ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค.

OER

๊ฐ€์žฅ ๋น ๋ฅธ ASN.1 ์ธ์ฝ”๋”ฉ ๊ทœ์น™์€ OER (Octet Encoding Rules )์ด๋‹ค.
PER(Packed Encoding Rules)๊ณผ ๊ฐ™์€ OER(Octet Encoding Rules)์€
๊ฐ ์ธ์ฝ”๋”ฉ๋œ ๋ฉ”์‹œ์ง€์— ํฌํ•จ๋œ ์ •๋ณด์˜ ์–‘์„ ์ œํ•œํ•˜๊ธฐ ์œ„ํ•ด ASN.1 ์Šคํ‚ค๋งˆ์— ์žˆ๋Š” ์ •๋ณด๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๊ฐ„๊ฒฐํ•œ ์ธ์ฝ”๋”ฉ์„ ์ƒ์„ฑํ•œ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ PER๊ณผ ๋‹ฌ๋ฆฌ OER์€ ์ธ์ฝ”๋”ฉ์˜ ์†Œํ˜•ํ™”๋ณด๋‹ค ์ธ์ฝ”๋”ฉ/๋””์ฝ”๋”ฉ ์†๋„์™€ ๊ตฌํ˜„ ์šฉ์ด์„ฑ์„ ์„ ํ˜ธํ•œ๋‹ค.
PER Aligned์™€ ๋‹ฌ๋ฆฌ OER์€ ์™„์ „ํžˆ OCTET ์ง€ํ–ฅ์ ์ด๋‹ค.
PER Aligned์—์„œ 8๋น„ํŠธ ๋ฏธ๋งŒ์„ ์ฐจ์ง€ํ•˜๋Š” ๊ณ ์ • ํฌ๊ธฐ ์ธ์ฝ”๋”ฉ์€ ์˜ฅํ…Ÿ ๋‚ด์˜ ์ž„์˜์˜ ๋น„ํŠธ ์œ„์น˜์—์„œ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๊ณ  ๋™์ผํ•˜๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ์˜ฅํ…Ÿ ๋‚ด์˜ ์ž„์˜์˜ ๋น„ํŠธ ์œ„์น˜์—์„œ ๋๋‚  ์ˆ˜ ์žˆ๋Š” ๋ฐ˜๋ฉด, OER์—์„œ๋Š” ๋ชจ๋“  ASN.1์˜ ๋ชจ๋“  ๊ฐ€๋Šฅํ•œ ๊ฐ’์˜ ์ธ์ฝ”๋”ฉ์ด๋‹ค.
type์€ ์ „์ฒด ์˜ฅํ…Ÿ ์ˆ˜๋ฅผ ์ฐจ์ง€ํ•˜๋ฉฐ ์ธ์ฝ”๋”ฉ์˜ ๋ชจ๋“  ํ•„๋“œ๋Š” ์˜ฅํ…Ÿ ์ •๋ ฌ๋œ๋‹ค.
OER์€ Intelligent Transportation ํ”„๋กœํ† ์ฝœ์— ์‚ฌ์šฉ๋˜๋ฉฐ ์ธ์ฝ”๋”ฉ/๋””์ฝ”๋”ฉ ์†๋„๊ฐ€ ํ•„์ˆ˜์ ์ธ ๋ชจ๋“  ํ”„๋กœํ† ์ฝœ์— ๋งค์šฐ ์ ํ•ฉํ•˜๋‹ค.

XER, E-XER

๊ฐ€์žฅ ์ž‘์€ ์ธ์ฝ”๋”ฉ ๊ทœ์น™์ธ XER(XML encoding rules)์€ ๊ฐ’ ํ˜•์‹์˜ ์ธ์ฝ”๋”ฉ์— ํ…์ŠคํŠธ XML ํ˜•์‹์„ ์‚ฌ์šฉํ•œ๋‹ค.
XER๊ณผ E-XER(Extended XER)์€ E-XER์—์„œ ์ƒ์„ฑ๋œ ๊ธฐ๋ณธ ์ธ์ฝ”๋”ฉ์ด XSD(XML ์Šคํ‚ค๋งˆ ์ •์˜) ์—”์ง„๊ณผ ์ •๋ณด๋ฅผ ๊ตํ™˜ํ•˜๋Š” ๋ฐ ๋” ์ ํ•ฉํ•˜๋‹ค๋Š” ์ ์—์„œ ๋‹ค๋ฅด๋‹ค.
๋™์ผํ•œ ASN.1 ์‚ฌ์–‘์„ ์—ฌ๋Ÿฌ ์ธ์ฝ”๋”ฉ ๊ทœ์น™๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
์ฆ‰, ํœด๋Œ€ํฐ์˜ PER ๋ฉ”์‹œ์ง€๋ฅผ E-XER๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ํ‘œ์‹œํ•˜๊ณ  ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ค.

JER

JER(JSON Encoding Rules)์€ XER ๋˜๋Š” E-XER์— ๋น„ํ•ด ๋” ๊ฐ„๊ฒฐํ•˜๊ณ  ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฌ์šด ์ธ์ฝ”๋”ฉ ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•œ๋‹ค.
JER์„ ์‚ฌ์šฉํ•˜๋Š” ASN.1 ์œ ํ˜•์˜ ์ธ์ฝ”๋”ฉ์€ JSON ์‚ฌ์–‘(ECMA-404/RFC-8259)์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ๋‹ค.
JER์€ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” JSON ๋ฐ์ดํ„ฐ ํ˜•์‹์˜ ์žฅ์ ๊ณผ ASN.1์˜ ์ด์ ์„ ๊ฒฐํ•ฉํ•œ๋‹ค.
ASN.1 ์Šคํ‚ค๋งˆ๋Š” ์ฝ๊ธฐ ์‰ฝ๊ณ  ์ผ๋ฐ˜ JSON ๋ฉ”์‹œ์ง€์˜ ์œ ํšจ์„ฑ์„ ๊ฒ€์‚ฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
ASN.1 ๋์ ์€ JSON ๋์ ๊ณผ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๋‹ค.
์œ ํ˜•์€ JSON ๋ฉ”์‹œ์ง€์˜ ์ธ์ฝ”๋”ฉ๊ณผ ์ผ์น˜) JER์„ ์‚ฌ์šฉํ•˜๋ฉด ASN.1 ์‚ฌ์šฉ์ž๊ฐ€ ASN.1 ํ”„๋กœํ† ์ฝœ์„ ์‰ฝ๊ฒŒ ๋””๋ฒ„๊ทธํ•˜๊ณ  ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.