PKI/X509 Profile

[X509] μ •μ±… μ œν•œ ( Policy Constraints ) μ΄λž€?

JayKimπŸ™‚ 2023. 9. 11. 13:55

μ •μ±… μ œν•œμ€ CA μΈμ¦μ„œμ—μ„œ μ‚¬μš© λ˜μ–΄μ§€λŠ” ν™•μž₯ ν•„λ“œμ΄λ‹€.
μ •μ±… μ œν•œμ€ μΈμ¦μ„œ 경둜 검증을 μœ„ν•΄ 두가지 μ œν•œμ„ μœ„ν•΄ μ‚¬μš© λœλ‹€.

μ²«μ§ΈλŠ” μ •μ±… 맀핑 κΈˆμ§€λ₯Ό μš”κ΅¬ ν•˜κΈ°
λ‘˜μ§ΈλŠ” 각각의 μΈμ¦μ„œ κ²½λ‘œκ°€ ν—ˆμš© κ°€λŠ₯ν•œ μ •μ±… μ‹λ³„μžλ₯Ό ν¬ν•¨ν•˜κΈ°
μ΄λ ‡κ²Œ 두가지 μ œν•œμ„ ν•œλ‹€.

μ•„λž˜ 그림은 μ •μ±… μ œν•œμ˜ 예제 그림이닀

μ •μ±… μ œν•œ ( Policy Constraints )

μ •μ±… μ œν•œ ASN.1

   id-ce-policyConstraints OBJECT IDENTIFIER ::=  { id-ce 36 }

   PolicyConstraints ::= SEQUENCE {
        requireExplicitPolicy           [0] SkipCerts OPTIONAL,
        inhibitPolicyMapping            [1] SkipCerts OPTIONAL }

   SkipCerts ::= INTEGER (0..MAX)

μ •μ±… μ œν•œμ— μ‚¬μš©ν•˜λŠ” 두가지 값은 requireExplicitPolicy 와 inhibitPolicyMapping ν•„λ“œμ΄λ‹€.
이 두가지 ν•„λ“œλŠ” ASN.1μ—μ„œ μ•Œ 수 μžˆλ“―μ΄ 0 ~ MAX 둜 μ •μˆ˜ 값이닀.

μ •μ±… μ œν•œμ˜ νŠΉμ„±

  • inhibitPolicyMapping
    μ •μ±… 맀핑이 더 이상 ν—ˆμš© λ˜μ§€ μ•ŠκΈ° 전에 이전 κ²½λ‘œμ—μ„œ λ‚˜νƒ€ λ‚  수 μžˆλŠ” μΆ”κ°€ μΈμ¦μ„œ κ°œμˆ˜μ΄λ‹€.
    예λ₯Ό λ“€μ–΄ 1 인 값인 경우 λ°œκΈ‰ν•œ μΈμ¦μ„œμ—μ„œλŠ” μ •μ±… 맀핑이 ν—ˆμš©λ˜μ§€λ§Œ μΆ”κ°€ μΈμ¦μ„œ κ²½λ‘œμ—λŠ” ν—ˆμš©μ΄ μ•ˆλœλ‹€.
    μΈμ¦μ„œ 경둜 검증은 보톡 μ΅œμƒμœ„ 루트 μΈμ¦μ„œ λΆ€ν„° μ‹œμž‘ν•΄ μ‹ λ’° λŒ€μƒμžμ˜ μΈμ¦μ„œ κΉŒμ§€ 검증 ν•΄κ°„λ‹€.
  • requireExplicitPolicy
    전체 μΈμ¦μ„œ κ²½λ‘œμ—μ„œ λͺ…μ‹œμ  정책을 μš”κ΅¬ ν•˜κΈ° 전에 μΈμ¦μ„œ κ²½λ‘œμƒ λ‚˜νƒ€λ‚  수 μžˆλŠ” μΆ”κ°€ μΈμ¦μ„œμ˜ 개수 이닀.λ§Œμ•½ μ •μ±… μ œν•œ ν™•μž₯이 μ‘΄μž¬ν•˜κ³  inhibitPolicyMapping ν•„λ“œκ°€ ν¬λ¦¬ν‹°μ»¬λ‘œ μ„€μ • λ˜μ–΄ μžˆμ„λ•Œ
    inhibitPolicyMapping ν•„λ“œλ₯Ό μ§€μ›ν•˜μ§€ μ•ŠλŠ” μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œλŠ” ν•΄λ‹Ή μΈμ¦μ„œλ₯Ό 거절 ν•΄μ•Ό ν•œλ‹€.
  • μ •μ±… μ œν•œμ€ inhibitPolicyMapping ν•„λ“œλ₯Ό μ‚¬μš©ν•˜κ±°λ‚˜ requireExplicitPolicy λ₯Ό μ‚¬μš©ν•˜λŠ”λ°
    λ‘˜μ΄ 같이 μ‚¬μš©ν•˜μ§€λŠ” μ•ŠλŠ”λ‹€.
  • μΈμ¦μ„œκ°€ λͺ…μ‹œμ  정책을 μš”κ΅¬ ν•˜κ²Œ 되면 λͺ¨λ“  μΈμ¦μ„œλŠ” ν™•μž₯ ν•„λ“œμ— ν—ˆμš© κ°€λŠ₯ν•œ μΈμ¦μ„œ 정책을 포함 ν•΄μ•Ό ν•œλ‹€.
    이 λ•Œ ν—ˆμš© κ°€λŠ₯ν•œ μ •μ±… μ‹λ³„μžλŠ” μΈμ¦μ„œ 경둜 μ‚¬μš©μžμ— μ˜ν•΄ 정해진 μ •μ±… μ‹λ³„μž λ˜λŠ” μ •μ±… 맀핑을 ν†΅ν•˜μ—¬
    λ™λ“±ν•œ μΈμ¦μ„œ μ •μ±… μ‹λ³„μž μž…λ‹ˆλ‹€.

마무리

μ •μ±… μ œν•œ ν•„λ“œλ₯Ό μ‚¬μš©ν•˜λŠ” κ²½μš°λŠ” 사싀 λ§Žμ§€κ°€ μ•Šμ•„μ„œ μ’€ 이해가 쉽지가 μ•Šλ‹€.

κ·Έλ‚˜λ§ˆ κ³΅λ™μΈμ¦μ„œμ—μ„œ RequireExplicitPolicy 값을 0 으둜 μ„€μ • λ˜μ–΄ μžˆλ‹€.
κ³΅λ™μΈμ¦μ„œμ—μ„œλŠ” μ‚¬μš©μž μΈμ¦μ„œλŠ” μ •μ±… μ‹λ³„μžλ₯Ό 포함 ν•΄μ•Ό ν•œλ‹€λŠ” 것이닀.
즉 λͺ…μ‹œμ  정책을 μš”κ΅¬ν•˜κΈ° 전에 μΈμ¦μ„œ κ²½λ‘œμƒ λ‚˜νƒ€λ‚Ό 수 μžˆλŠ” μΈμ¦μ„œμ˜ κ°œμˆ˜λŠ” 0개 이기 λ•Œλ¬Έμ΄λ‹€.