PKI 76

[X.509] ์†Œ์œ ์ž ๋Œ€์ฒด ๋ช…์นญ(Subject Alternative Name) ์ด๋ž€

์†Œ์œ ์ž ๋Œ€์ฒด ๋ช…์นญ ํ™•์žฅ ํ•„๋“œ๋Š” ์†Œ์œ ์ž์— ๋Œ€ํ•œ ์ถ”๊ฐ€์ ์ธ ๋ช…์นญ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค. ์ฆ‰ Subject DN์˜ ์ถ”๊ฐ€ ๋ช…์นญ ์ •๋ณด๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. ์ฐธ๊ณ ๋กœ ์†Œ์œ ์ž ๋Œ€์ฒด ๋ช…์นญ๊ณผ ๊ฐ™์€ ํ˜•์‹์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐœ๊ธ‰์ž ๋Œ€์ฒด ๋ช…์นญ (Issuer Alternative Name) ๋„ ์กด์žฌ ํ•˜๋Š”๋ฐ ์ด ๊ฐ’์€ ๋ฐœ๊ธ‰์ž ์ฆ‰ ์ธ์ฆ๊ธฐ๊ด€์˜ ์ถ”๊ฐ€ ์ ์ธ ๋ช…์นญ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค. ์•„๋ž˜ ๊ทธ๋ฆผ์€ Subject Alternative Name ์„ ์‚ฌ์šฉํ•œ ์ธ์ฆ์„œ ์˜ˆ์ œ ์ด๋‹ค. ์ด ๊ทธ๋ฆผ์—์„œ๋Š” DNS ์ด๋ฆ„ ์ •๋ณด๋ฅผ ์†Œ์œ ์ž ๋Œ€์ฒด ๋ช…์นญ์œผ๋กœ ์‚ฌ์šฉ ๋˜์—ˆ๋‹ค. ์†Œ์œ ์ž ๋Œ€์ฒด ๋ช…์นญ์˜ ์ข…๋ฅ˜ ์†Œ์œ ์ž ๋Œ€์ฒด ๋ช…์นญ์˜ ํƒ€์ž…์—๋Š” 9๊ฐ€์ง€ ํ˜•์‹์ด ์ง€์› ๋œ๋‹ค. rfc822Name : ์ธํ„ฐ๋„ท ์ „์ž ๋ฉ”์ผ dNSName : DNS ์ด๋ฆ„ iPAddress : IP ์ฃผ์†Œ uniformResourceIdentifier : URL ..

PKI/X509 Profile 2023.08.22

[X.509] ์ธ์ฆ์„œ ์œ ํšจ๊ธฐ๊ฐ„ (Validity) ์— ๋Œ€ํ•ด์„œ

์ธ์ฆ์„œ ์œ ํšจ ๊ธฐ๊ฐ„ (Validty) ์ด๋ž€? ์ธ์ฆ์„œ ์œ ํšจ ๊ธฐ๊ฐ„์€ CA ์ธ์ฆ์„œ๊ฐ€ ๋ฐœ๊ธ‰ํ•œ ์ธ์ฆ์„œ ์ •๋ณด์— ๋Œ€ํ•œ ์œ ํšจํ•œ ์ƒํƒœ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์‹œ๊ฐ„์˜ ๊ฐ„๊ฒฉ์„ ๋งํ•œ๋‹ค. ์ฆ‰ ํ•ด๋‹น ์ธ์ฆ์„œ์˜ ์œ ํšจํ•œ ๊ธฐ๊ฐ„์„ ๋งํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ด ํ•„๋“œ๋Š” ๋‘๊ฐœ์˜ ๋‚ ์งœ๋ฅผ SEQUENCE ํ˜•์‹์œผ๋กœ ๊ฐ’์ด ํ‘œํ˜„ ๋œ๋‹ค. ASN.1 ํ˜•์‹ Validity ::= SEQUENCE { notBefore Time, notAfter Time } Time ::= CHOICE { utcTime UTCTime, generalTime GeneralizedTime } ์œ ํšจ ๊ธฐ๊ฐ„์˜ ์ •๋ณด์—๋Š” ๋‘๊ฐ€์ง€ ํ•„๋“œ๊ฐ€ ์กด์žฌ ํ•˜๋Š”๋ฐ notBefore ํ•„๋“œ์™€ notAfter ํ•„๋“œ์ด๋‹ค. ์•„๋ž˜ ๊ทธ๋ฆผ ์ฐธ์กฐ ์ด ์˜ˆ์ œ ๊ทธ๋ฆผ์˜ ์ธ์ฆ์„œ์˜ ์œ ํšจ ๊ธฐ๊ฐ„์€ 2022๋…„ 5์›” 23์ผ 09์‹œ ๋ถ€ํ„ฐ 2023๋…„ 6์›” 8์ผ 0..

PKI/X509 Profile 2023.08.17

[X.509] ์ธ์ฆ์„œ ์ •์ฑ… (Ceritifcate Policies) ํ™•์žฅ ํ•„๋“œ๋ž€?

์ธ์ฆ์„œ ์ •์ฑ… (Certificate Policies ) ์šฉ๋„ ์ธ์ฆ์„œ ์ •์ฑ…์€ X.509 ์ธ์ฆ์„œ์˜ ํ™•์žฅ ํ•„๋“œ์ด๋‹ค. ์ด ํ•„๋“œ๋Š” ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰ํ•˜๋Š” CA์—์„œ ํ•ด๋‹น ๋ฐœ๊ธ‰๋œ ์ธ์ฆ์„œ ์ •์ฑ…์„ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒƒ์ด๋‹ค. ์ฆ‰ ํ•œ๋งˆ๋””๋กœ ํ•ด๋‹น ์ธ์ฆ์„œ์˜ ์šฉ๋„๋ฅผ ์•Œ๋ ค ์ฃผ๋Š” ํ™•์žฅ ํ•„๋“œ ์ด๋‹ค. ์ธ์ฆ์„œ ์ •์ฑ… ์˜ˆ์ œ ์•„๋ž˜ ๊ทธ๋ฆผ์€ SSL ์ธ์ฆ์„œ์—์„œ ์ธ์ฆ์„œ ์ •์ฑ… ํ•„๋“œ์— ๋Œ€ํ•œ ์˜ˆ์ œ์ด๋‹ค. ํ•ด๋‹น ๊ทธ๋ฆผ์—์„œ ์ฒ˜๋Ÿผ ์ธ์ฆ์„œ ์ •์ฑ… OID ์ •๋ณด์™€ CPS ( Certificate Practice Statement ) ์ •๋ณด๊ฐ€ ๋‚˜์˜จ๋‹ค. ์—ฌ๊ธฐ์„œ CPS ๋Š” URI ํ˜•์‹์˜ ์ •๋ณด์ด๋‹ค. ํ•ด๋‹น CPS ์ •๋ณด์˜ URI ์ฃผ์†Œ๋ฅผ ์ฐธ์กฐ ํ•˜๋ฉด ํ•ด๋‹น ์ธ์ฆ์„œ ์šฉ๋„์— ๋Œ€ํ•œ ๋‚ด์šฉ์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ธ์ฆ์„œ ์ •์ฑ… ์ •๋ณด์—๋Š” User Notice ์ •๋ณด๋„ ์กด์žฌ ํ•˜๋Š”๋ฐ ์ด ์ •๋ณด๋Š” ์‹ ๋ขฐ ๋‹น์‚ฌ์ž์—๊ฒŒ ์ธ์ฆ..

PKI/X509 Profile 2023.08.16

[X.509] ์ธ์ฆ์„œ ์ฃผ์ฒดํ‚ค ์‹๋ณ„์ž(Subject Key Identifier) ์™€ ๊ธฐ๊ด€ํ‚ค ์‹๋ณ„์ž(Authority Key Identifier)

X.509 ์ธ์ฆ์„œ ๊ธฐ๋ณธ ํ”„๋กœํŒŒ์ผ์—์„œ ์ฃผ์ฒดํ‚ค ์‹๋ณ„์ž์™€ ๊ธฐ๊ด€ํ‚ค ์‹๋ณ„์ž ๊ฐ’์ด ์กด์žฌํ•œ๋‹ค. ์ด ์‹๋ณ„์ž๋Š” ์ธ์ฆ์„œ์˜ ๊ฒฝ๋กœ ๊ตฌ์„ฑ์„ ํ•˜๊ธฐ ์œ„ํ•˜์—ฌ ๊ณต๊ฐœํ‚ค์— ๋Œ€ํ•œ ๊ตฌ๋ณ„ ๊ฐ’์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๊ฐ’์ด๋‹ค. ์ด ํ•„๋“œ๋Š” X.509 v3 ์—์„œ ํ™•์žฅ ํ•„๋“œ์˜ ๊ฐ’์ด๋‹ค. ์ฃผ์ฒดํ‚ค ์‹๋ณ„์ž (Subject Key Identifier) ์ฃผ์ฒดํ‚ค ์‹๋ณ„์ž๋Š” ํ•ด๋‹น ์ธ์ฆ์„œ์˜ ๊ณต๊ฐœํ‚ค๋ฅผ ๊ตฌ๋ณ„ํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ’์ด๋‹ค. ์ฃผ์ฒดํ‚ค ์‹๋ณ„์ž ASN.1 id-ce-subjectKeyIdentifier OBJECT IDENTIFIER ::= { id-ce 14 } SubjectKeyIdentifier ::= KeyIdentifier์ด๋ ‡๊ฒŒ KeyIdentifier ๊ฐ’ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ์•„๋ž˜ ์ธ์ฆ์„œ ๊ทธ๋ฆผ์—์„œ ํŒŒ๋ž€์ƒ‰ ๋ถ€๋ถ„์ด ์ฃผ์ฒดํ‚ค ์‹๋ณ„์ž(Subject Key Identifier) ๊ฐ’์ด๋‹ค ์ด ๊ฐ’..

PKI/X509 Profile 2023.07.13

[X.509] ์ธ์ฆ์„œ ๊ธฐ๋ณธ ์ œํ•œ(Basic Constraints)์— ๋Œ€ํ•ด์„œ

X.509 ์—์„œ CA ์ธ์ฆ์„œ์˜ ํ•„์ˆ˜ ๊ฐ’์ธ Basic Constraints ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž. ๋ณดํ†ต ํ•œ๊ธ€๋กœ๋Š” ๊ธฐ๋ณธ ์ œํ•œ ์ด๋ผ๊ณ  ํ‘œํ˜„ํ•œ๋‹ค. ์•„๋ž˜ ๊ทธ๋ฆผ์„ ๋ณด๋ฉด X.509 CA ์ธ์ฆ์„œ์—์„œ basicConstrains ๊ฐ’์ด ์กด์žฌ ํ•œ๋‹ค. CA( RootCA ํฌํ•จ) ์ธ์ฆ์„œ์—์„œ๋Š” ํ•„์ˆ˜๋กœ ์ด ๊ฐ’์ด ์กด์žฌํ•œ๋‹ค. ํ•œ๋งˆ๋””๋กœ CA ์ธ์ฆ์„œ๋ฅผ ๋งŒ๋“ค๋ ค๋ฉด ์ด ํ™•์žฅ ํ•„๋“œ๊ฐ€ ํ•„์ˆ˜ ๊ฐ’์ด๋‹ค. Basic Constrains ASN.1 ์ •์˜ id-ce-basicConstraints OBJECT IDENTIFIER ::= { id-ce 19 } BasicConstraints ::= SEQUENCE { cA BOOLEAN DEFAULT FALSE, pathLenConstraint INTEGER (0..MAX) OPTIONAL } ์œ„ ASN.1 ์ •์˜..

PKI/X509 Profile 2023.07.06

CER( Canonical Encoding Rules ) ์˜ ํŠน์„ฑ (DER๊ณผ ๋น„๊ต)

์ผ๋ฐ˜์ ์œผ๋กœ BER๊ณผ DER ์€ PKI ์—์„œ ๋งŽ์ด ์‚ฌ์šฉ๋œ๋‹ค. ํŠนํžˆ DER ์€ BER์˜ ์„œ๋ธŒ์…‹์œผ๋กœ ์ข€๋” ๋ช…ํ™•ํžˆ ๊ฐ’์„ ์ œํ•œ ํ•˜์˜€๋‹ค๊ณ  ๋ณด๋ฉด ๋œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  DER ๊ณผ ๋‹ค๋ฅธ ๋˜๋‹ค๋ฅธ BER ์˜ ์„œ๋ธŒ์…‹์ธ CER ์ด์žˆ๋‹ค. ๊ทธ๋Ÿผ CER์ด ๋ฌด์—‡์ธ์ง€ DER๊ณผ ์ฐจ์ด์ ์„ ์•Œ์•„๋ณด์ž CER ํŠน์„ฑ ๋ชจ๋“  ์œ ํšจํ•œ CER ์ธ์ฝ”๋”ฉ์ด ์œ ํšจํ•œ BER ์ธ์ฝ”๋”ฉ์ด๋ผ๋Š” ์ ์—์„œ BER๊ณผ ์œ ์‚ฌํ•˜๋‹ค. BER์€ ๋Œ€๋ถ€๋ถ„์˜ ๊ฐ’์„ ์ธ์ฝ”๋”ฉํ•˜๋Š” ์—ฌ๋Ÿฌ ๋ฐฉ๋ฒ•์„ ํ—ˆ์šฉํ•˜๋Š” ๋ฐ˜๋ฉด, CER์€ ์ฃผ์–ด์ง„ ๊ฐ’์— ๋Œ€ํ•ด ์ด๋Ÿฌํ•œ ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๋งŒ ํ—ˆ์šฉํ•œ๋‹ค๊ณ  ๊ทœ์ •ํ•ฉ๋‹ˆ๋‹ค (์˜ˆ: BER์€ BOOLEAN์˜ ๊ฒฝ์šฐ 00 ๊ฐ’์ด FALSE์ด๊ณ  0์ด ์•„๋‹Œ ๊ฐ’์€ TRUE๋ผ๊ณ  ๋งํ•˜์ง€๋งŒ CER์€ 00์€ FALSE์ด๊ณ  FF๋Š” TRUE์ด๋ฉฐ ๊ฐ’ 01-FE๋Š” ๊ฑฐ์ง“์ž„์„ ๋‚˜ํƒ€๋‚ด๋‹ค) DER์€ ์ฃผ์–ด์ง„ ๊ฐ’์„ ์ธ์ฝ”๋”ฉํ•˜๋Š” ๋‹จ์ผ ๋ฐฉ๋ฒ•..

PKI/ASN.1 2023.06.30

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

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..

PKI/ASN.1 2023.06.29

[X.509] ์ธ์ฆ์„œ ํ‚ค ์šฉ๋„(KeyUsage) ์„ค๋ช…

X.509 ์ธ์ฆ์„œ ํ•„๋“œ ์ค‘์— KeyUsage ๋ผ๋Š” ํ•„๋“œ๊ฐ€ ์žˆ๋‹ค. ์ด ํ•„๋“œ๋Š” ํ•ด๋‹น ์ธ์ฆ์„œ์— ์žˆ๋Š” ๋น„๋Œ€์นญํ‚ค์˜ ์‚ฌ์šฉ ๋ชฉ์ ์„ ์ •์˜ํ•œ ํ•„๋“œ์ด๋‹ค. ์•„๋ž˜ ๊ทธ๋ฆผ์€ RootCA ์ธ์ฆ์„œ์˜ KeyUsage ํ•„๋“œ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์ด ์ธ์ฆ์„œ์˜ keyUsage ๋‚ด์šฉ์€ keyCertSign, cRLSign ์œผ๋กœ ๋‚˜์˜ค๋Š”๋ฐ ์ธ์ฆ์„œ ์„œ๋ช… ๋ฐ CRL ์„œ๋ช…์šฉ์ด๋ผ๋Š” ๋œป์ด๋‹ค. ํ•ด๋‹น ํ•„๋“œ์˜ ASN.1 ํ˜•์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. id-ce-keyUsage OBJECT IDENTIFIER ::= { id-ce 15 } KeyUsage ::= BIT STRING { digitalSignature (0), nonRepudiation (1), keyEncipherment (2), dataEncipherment (3), keyAgreement (4), keyC..

PKI/X509 Profile 2023.06.28

[๋ฒˆ์—ญ๊ธ€] ์•”ํ˜ธํ™” ๊ฐœ์š” ( Cryptography Overview )

์ด๊ธ€์€ Pratical Cryptograpy for developers ์— ์žˆ๋Š” ๋‚ด์šฉ์„ ๋ฒˆ์—ญํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค.[์›๋ฌธ] ํ˜„๋Œ€ ์•”ํ˜ธํ™” ๊ฐœ์š” ( Overview of Modern Cryptography ) ์•”ํ˜ธํ™”๋Š” ์ตœ์ดˆ์˜ ์‹œ๋„(์ˆ˜์ฒœ๋…„ ์ „)์—์„œ ์‹œ์ž‘ ๋˜์–ด์„œ ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ์ตœ์ดˆ์˜ ์„ฑ๊ณต์ ์ธ ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜(ํ˜„์žฌ๋Š” ์€ํ‡ดํ•œ MD5 ๋ฐ DES์™€ ๊ฐ™์€)์„ ํ†ตํ•ด ์ตœ์‹  ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜(SHA-3, Argon2 ๋ฐ ChaCha20๊ณผ ๊ฐ™์€)์œผ๋กœ ๋ฐœ์ „ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋จผ์ € ๊ฐ„๋‹จํžˆ ์†Œ๊ฐœ ํ•˜๋ฉด ์•”ํ˜ธํ™” ํ•ด์‹œ ๊ธฐ๋Šฅ(SHA-256, SHA3, RIPEMD ๋“ฑ), HMAC(ํ•ด์‹œ ๋ฉ”์‹œ์ง€ ์ธ์ฆ ์ฝ”๋“œ), ํ‚ค ํŒŒ์ƒ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์•”ํ˜ธ(์˜ˆ: Scrypt), Diffie-Hellman ํ‚ค ๊ตํ™˜ ํ”„๋กœํ† ์ฝœ, ๋Œ€์นญ ํ‚ค ์•”ํ˜ธํ™” ์ฒด๊ณ„(์˜ˆ: CBC ๋ฐ CTR ๋ธ”๋ก ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉ..

PKI/Cryptography 2023.06.22

EdDSA ์•Œ๊ณ ๋ฆฌ์ฆ˜ Ed25519 ๊ณผ Ed448์— ๊ด€ํ•˜์—ฌ

์ด ๊ธ€์€ [์ถœ์ฒ˜] Practical Cryptographiy for Developer ์—์„œ ๋‚˜์˜ค๋Š” EdDSA ์™€ Ed25519 ์— ๊ด€ํ•œ๊ธ€์„ ๋ฒˆ์—ญ ํ•œ ๊ฒƒ์ด๋‹ค. EdDSA(Edwards-curve Digital Signature Algorithm)๋Š” 255๋น„ํŠธ ๊ณก์„  ๋ฐ 448๋น„ํŠธ ๊ณก์„ ๊ณผ ๊ฐ™์€ ์„ฑ๋Šฅ ์ตœ์ ํ™” ํƒ€์› ๊ณก์„ ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ํ˜„๋Œ€์ ์ด๊ณ  ์•ˆ์ „ํ•œ ๋””์ง€ํ„ธ ์„œ๋ช… ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค. EdDSA ์„œ๋ช…์€ ๊ฐ๊ฐ edwards25519 ๋ฐ edwards448์ธ ํƒ€์› ๊ณก์„ ์˜ Edwards ํ˜•์‹(์„ฑ๋Šฅ์ƒ์˜ ์ด์œ ๋กœ)์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. EdDSA ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ECDLP ๋ฌธ์ œ์˜ ๋‚œ์ด๋„๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋ฉฐ ์ด์— ์˜์กดํ•ฉ๋‹ˆ๋‹ค. EdDSA ์„œ๋ช… ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ ๊ทธ ๋ณ€ํ˜•์ธ Ed25519 ๋ฐ Ed448์€ RFC8032 ์— ๊ธฐ์ˆ ์ ์œผ๋กœ ์„ค๋ช…๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. Ed..

PKI/Cryptography 2023.06.15