PKI/X509 Profile

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

JayKim๐Ÿ™‚ 2023. 7. 6. 16:30

X.509 ์—์„œ CA ์ธ์ฆ์„œ์˜ ํ•„์ˆ˜ ๊ฐ’์ธ Basic Constraints ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž.
๋ณดํ†ต ํ•œ๊ธ€๋กœ๋Š” ๊ธฐ๋ณธ ์ œํ•œ ์ด๋ผ๊ณ  ํ‘œํ˜„ํ•œ๋‹ค.

์•„๋ž˜ ๊ทธ๋ฆผ์„ ๋ณด๋ฉด X.509 CA ์ธ์ฆ์„œ์—์„œ basicConstrains ๊ฐ’์ด ์กด์žฌ ํ•œ๋‹ค.

CA ์ธ์ฆ์„œ ์˜ˆ์ œ

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 ์ •์˜๋ฅผ ๋ณด๋ฉด ๋‘๊ฐ€์ง€ ๊ฐ’์ด ์กด์žฌ ํ•œ๋‹ค.

  • cA : ์ด ๋ถ€๋ถ„์ด cA ์ธ์ฆ์„œ ์œ ๋ฌด๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.

๊ธฐ๋ณธ์ ์œผ๋กœ CA ์ธ์ฆ์„œ ์ด๋ฉด TRUE ๋กœ ์„ค์ • ๋˜์–ด์•ผ ํ•˜๋ฉฐ ๊ฐ’์ด ์—†์œผ๋ฉด End Entity ์ธ์ฆ์„œ๋กœ ๋ณด๋ฉด ๋œ๋‹ค.

  • pathLenConstraint : ์ด ๊ฐ’์€ CA ์ธ์ฆ์„œ๊ฐ€ ๋ฐœ๊ธ‰ ๊ฐ€๋Šฅํ•œ SubCA ์˜ Depth ๋กœ ๋ณด๋ฉด ๋œ๋‹ค.

๋งŒ์•ฝ pathLenConstraints ๊ฐ’์ด 0 ์ด๋ฉด SubCA ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰ ํ•  ์ˆ˜ ์—†๊ณ 
End Entity ์ธ์ฆ์„œ๋งŒ ๋ฐœํ–‰ ํ•  ์ˆ˜์žˆ๋‹ค.
๊ฐ’์ด 1 ์ธ ๊ฒฝ์šฐ๋Š” SubCA์˜ 1๋‹จ๊ณ„ ๊นŒ์ง€ ๋ฐœ๊ธ‰์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
End-Entity ๊ฒฝ์šฐ๋Š” pathLenConstraints ๊ฐ’์„ ์‚ฌ์šฉ ํ•ด์„œ๋Š” ์•ˆ๋œ๋‹ค.
๋งŒ์•ฝ ์˜ˆ์ œ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ None ๊ฒฝ์šฐ๋Š” ํŠน๋ณ„ํžˆ ์ œํ•œ ์—†์ด SubCA์˜ ๋‹จ๊ณ„๋ฅผ ๋‘˜ ์ˆ˜ ์žˆ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค.

์ด BasicConstrains ์˜์—ญ์€ X.509 ์ธ์ฆ์„œ ํ”„๋กœํ”„์ผ์˜ ํ™•์žฅ ์˜์—ญ์ธ๋ฐ
CA ์ธ์ฆ์„œ ๊ฒฝ์šฐ critical ๋กœ ์„ค์ •์ด ๋œ๋‹ค.

์ผ๋ฐ˜ End-Entity ์ธ์ฆ์„œ ๊ฒฝ์šฐ( ex SSL ์„œ๋ฒ„ ์ธ์ฆ์„œ ) ์ด ๊ฐ’์€ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„๋„ ๋˜์–ด์„œ ์ด ํ•„๋“œ๊ฐ€ ์—†๋‹ค.

๋งˆ๋ฌด๋ฆฌ

X.509 ์ธ์ฆ์„œ๋Š” ํฌ๊ฒŒ ์šฉ๋„๋กœ ๋ณด๋ฉด CA ์ธ์ฆ์„œ์™€ End Entity ์ธ์ฆ์„œ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋Š”๋ฐ
์ด๊ฒƒ์˜ ๊ตฌ๋ณ„ ๊ฐ’์ด BasicConstrains ์„ค์ • ๊ฐ’์œผ๋กœ ๋ณด๋ฉด ๋œ๋‹ค.