PKI/ASN.1 22

ASN.1 Value Notation (2/2)

* Tagged Type - tagged type์€ value notation์„ ๊ฐ€์งˆ ์ˆ˜ ์—†์Œ ( ์ง์  ๊ฐ’๋งŒ ์ง€์ •ํ•˜๊ณ  ๊ฐ’๋‚ด์— value notation์„ ๋ชป์“ด๋‹ค ์ธ๊ฐ€? ) - tag๋Š” value notation์—๋Š” ๋‚˜ํƒ€๋‚˜์ง€ ์•Š์Œ Present ::= [21] BOOLEAN status Present ::= TRUE IDNumber ::= [PRIVATE 1] IMPLICIT INTEGER unassigned IDNumber ::= 9999 Color ::= [13] BIT STRING {red(0), blue(1), yellow(2)} defaultColor Color ::= {red, yellow} * SEQUENCE / SEQUENCE OF - ์ˆœ์„œ ์žˆ๋Š” ๊ฐ’๋“ค์˜ ๋‚˜์—ด / ๋™์ผํ•œ type์˜ ์ˆœ์„œ ์žˆ๋Š” ..

PKI/ASN.1 2022.11.03

ASN.1 Value Notation (1/2)

* Value Assignment - ํŠน์ •ํ•œ ์ด๋ฆ„๊ณผ ๊ฐ’์„ ์ •์˜ ํ• ๋•Œ ์‚ฌ์šฉ ::= - ํŠน์ง• * valuereference ๋Š” value์˜ ์ด๋ฆ„์ด๋ฉฐ ์†Œ๋ฌธ์ž๋กœ ์‹œ์ž‘ ํ•ด์•ผ ํ•จ * type ์€ value ์˜ type * value ๋Š” type์— ๋”ฐ๋ผ ํ˜•์‹์ด ๋‹ฌ๋ผ์ง * BOOLEAN - TRUE / FALSE Married ::= BOOLEAN currentStatus Married ::= FALSE * INTEGER - ๋ชจ๋“  ์ •์ˆ˜ (์–‘/์Œ์ˆ˜ ํฌํ•จ) - ์‚ฌ์ด์ฆˆ ์ œํ•œ ์—†์Œ temperatureToday INTEGER ::= -20 Color ::= INTEGER { red(0), blue(1), yellow(2) } defaultColor Color ::= 1 defaultColor Color ::= blue * E..

PKI/ASN.1 2022.11.03

ASN.1 Constraints

* Basic Constraints - Permitted Alphabet (applicable to strings) HardToReadChars ::= IA5String (FROM("8BI10OD5S")) -- FROM ์•ˆ์— ์žˆ๋Š” ๋ฌธ์ž๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ - Pattern ( RegEx-like ) LicensePlate ::= IA5String (PATTERN "[0-9]#4(-[A-Z]#2)?") -- NNNN[-NN] - Value Size (applicable to strings, sequence/set of) LicensePlate ::= IA5String (SIZE (4..7)) CarPark ::= SEQUENCE SIZE (1..25) OF LicensePlate - Value Range (app..

PKI/ASN.1 2022.11.03

ASN.1 Type Notation (3/3)

* Adding and Overriding Tags - Universal Tag๊ฐ€ ๋””ํดํŠธ ex) IQ ::= INTEGER -- 'Universal 2' ์˜ tag๋ฅผ ๊ฐ€์ง - EXPLICIT : ๊ธฐ๋ณธ Type ์˜ Tag์— ์ƒˆ๋กœ์šด Tag ์ถ”๊ฐ€ ex) IQ ::= [21] EXPLICIT INTEGER -- EXPLICIT ๋Š” ์ƒ๋žต ๊ฐ€๋Šฅ - IMPLICIT : ๊ธฐ๋ณธ Type ์˜ tag๊ฐ€ ์ƒˆ๋กœ์šด tag๋กœ ๋Œ€์ฒด IQ๋Š” 'Context-specific 21'์˜ tag ๋กœ ๋Œ€์ฒด ๋จ ex) IQ ::= [21] IMPLICIT INTEGER - Tag ์˜ˆ์ œ BinaryFile ::= [APPLICATION 13] OCTET STRING IDNumber1 ::= [PRIVATE 1] INTEGER Present ::=..

PKI/ASN.1 2022.11.03

ASN.1 Type Notation (2/3)

- Tag * ๋ชจ๋“  Type ์€ Tag ๊ฐ’์„ ๊ฐ€์ง„๋‹ค * Tag๋Š” ์ง์ ‘ ๋˜๋Š” ๊ฐ„์ ‘์ ์œผ๋กœ Type ๊ฐ’์„ ์‹๋ณ„ ํ•จ * Tag๋Š” ์œ ์ผํ•œ ํ•„์š” ์—†์Œ * Tag ๊ตฌ์„ฑ - Class์™€ Tag Number๋กœ ๊ตฌ์„ฑ : [[class] tag#] - Class : Universal, Application, Private, Context-Specific - Tag Number : non-negative integer * Class - Universal * Built-in Types, Application independent types * X.208์— ์ •์˜ ๋œ Type์— ๋Œ€ํ•œ class - Application * Application specific types ( such as X.500 directory services..

PKI/ASN.1 2022.11.02

ASN.1 Type Notation (1/3)

* Type ํ• ๋‹น - ์ƒˆ๋กœ์šด ํƒ€์ž…์„ ์ •์˜ ํ•˜๊ณ  ๋ช…๋ น ํ• ๋•Œ ์‚ฌ์šฉ ::= - ํŠน์ง• * ํ”„๋กœ๊ทธ๋žจ ์–ธ์–ด ์ฒ˜๋Ÿผ Simple type (INTEGER๋“ฑ)์„ ๊ฐ€์ง * Simple Type ์œผ๋กœ ์ƒˆ๋กœ์šด Type ์ •์˜ ๊ฐ€๋Šฅ * ์•ŒํŒŒ๋ฒณ, ์ˆซ์ž, ํ•˜์ดํ”ˆ(-) ์‚ฌ์šฉ ๊ฐ€๋Šฅ * type ์ด๋ฆ„์€ ๋Œ€๋ฌธ์ž๋กœ ์‹œ์ž‘ ํ•ด์•ผ ํ•จ * ํ•˜์ดํ”ˆ(-)์œผ๋กœ ๋๋‚˜๊ฑฐ๋‚˜ "--"๋ฅผ ํฌํ•จ ํ•˜๋ฉด ์•ˆ๋จ ex) My-Integer ::= INTEGER * Type ์ข…๋ฅ˜ Simple Structured Tagged Other BIT STRING IA5STring INTEGER NULL .... SEQUENCE SEQUENCE OF SET SET OF ... IMPLICIT EXPLICIT CHOICE ANY - Simple Types * Atomic Type * ..

PKI/ASN.1 2022.11.02

RFC3280-PKIX1Implicit88 ASN.1

X.509 ๊ธฐ๋ฐ˜ ์ธ์ฆ์„œ ๋ฐ CRL ์— ๋Œ€ํ•œ Implicit ๋กœ ์ •์˜ ๋œ ASN.1 -- -- ASN.1 module found by ./crfc2asn1.pl in rfc3280.txt at line 5850 -- PKIX1Implicit88 { iso(1) identified-organization(3) dod(6) internet(1) security(5) mechanisms(5) pkix(7) id-mod(0) id-pkix1-implicit(19) } DEFINITIONS IMPLICIT TAGS ::= BEGIN -- EXPORTS ALL -- IMPORTS id-pe, id-kp, id-qt-unotice, id-qt-cps, -- delete following line if "new" typ..

PKI/ASN.1 2022.11.02

RFC3280-PKIX1Explicit88 ASN.1

X.509 ๊ธฐ๋ฐ˜ ์ธ์ฆ์„œ ๋ฐ CRL ์— ๋Œ€ํ•œ Explicit ๋กœ ์ •์˜ ๋œ ASN.1 -- -- ASN.1 module found by ./crfc2asn1.pl in rfc3280.txt at line 5124 -- PKIX1Explicit88 { iso(1) identified-organization(3) dod(6) internet(1) security(5) mechanisms(5) pkix(7) id-mod(0) id-pkix1-explicit(18) } DEFINITIONS EXPLICIT TAGS ::= BEGIN -- EXPORTS ALL -- -- IMPORTS NONE -- -- UNIVERSAL Types defined in 1993 and 1998 ASN.1 -- and required ..

PKI/ASN.1 2022.11.02

ASN.1 ๊ธฐ๋ณธ ๊ตฌ์กฐ

ASN.1 ์€ ํ…์ŠคํŠธ๋กœ ๋œ Syntax ์ด๋‹ค. ์ฆ‰ ์–ธ์–ด ํ‘œํ˜„์ด๋‹ค. ์ด ASN.1 ๋ฐ์ดํƒ€๋ฅผ ์ž‘์„ฑ ํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋ณธ ๊ทœ์น™์„ ์„ค๋ช… ํ•œ๋‹ค. ASN.1 ๋ฌธ์ž ์…‹ A-Z, a-z, 0-9 : = , { } ํŠน์ง• ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ณ„ ๋ ˆ์ด์•„์›ƒ์€ ์ž์œ  ํฌ๋งท์ด๋ฉฐ ๊ฐœํ–‰๋ฌธ์ž (End Of Line) ์€ ํ•˜๋‚˜์˜ ๊ณต๋ฐฑ ๋ฌธ์ž๋กœ ์ธ์‹ํ•จ ์ฃผ์„์˜ ๊ฒฝ์šฐ "--"๋กœ ์‹œ์ž‘ ํ•ด์„œ "--"๋กœ ๋๋‚จ ๋˜๋Š” ๊ฐœํ–‰ ๋ฌธ์ž๋กœ ๋๋‚จ ์˜ˆ์•ฝ์–ด BOOLEAN, CHARACTER, FALSE, IA5String, INTEGER, NULL, OCTET, etc SET, SEQUENCE, CHOICE and etc BEGINE, END, OPTIONAL, COMPONENTS, UNION, WITH etc ๋Œ€๋žต ๋‹ค๋ฅธ..

PKI/ASN.1 2022.11.02