PKI/X509 Profile

[X.509] μΈμ¦μ„œ μœ νš¨κΈ°κ°„ (Validity) 에 λŒ€ν•΄μ„œ

JayKimπŸ™‚ 2023. 8. 17. 15:28

μΈμ¦μ„œ 유효 κΈ°κ°„ (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일 08μ‹œ 59λΆ„ 59초 κΉŒμ§€ μœ νš¨ν•œ μΈμ¦μ„œμ΄λ‹€.

  • notBefore : μΈμ¦μ„œ 유효 기간이 μ‹œμž‘ λ˜λŠ” λ‚ μ§œ
  • notAfter : μΈμ¦μ„œ 유효 기간이 μ’…λ£Œ λ˜λŠ” λ‚ μ§œ

이 두가지 ν•„λ“œλŠ” ν‘œν˜„ 방법은 UTCTime κ³Ό GeneralizeTime ν˜•μ‹μ΄ μžˆλ‹€.
이 λ‘κ°œμ˜ μš©λ„λŠ” ν•΄λ‹Ή μΈμ¦μ„œκ°€ 2049λ…„ 이내에 μœ νš¨ν•œ λ‚ μ§œ ν‘œμ‹œλŠ” UTCTime ν˜•μ‹μ„ μ‚¬μš©ν•˜κ³ 
2050λ…„ μ΄ν›„μ—λŠ” GeneralizeTime ν˜•μ‹μ„ μ‚¬μš©ν•΄μ•Ό ν•œλ‹€.

UTCTime ν˜•μ‹

UTCTime 은 The Universal Time ν˜•μ‹μœΌλ‘œ ASN.1 의 ν‘œμ€€ νƒ€μž…μ΄λ‹€.
이 ν˜•μ‹μ€ λ‚ μ§œμ™€ μ‹œκ°„(μ΄ˆλ‹¨μœ„κΉŒμ§€)을 ν‘œμ‹œν•˜κΈ° μœ„ν•΄ ν‘œμ€€μ‹œ(Zulu) λ₯Ό ν¬ν•¨ν•œ ν˜•μ‹μ΄λ‹€.
즉 μ‹œκ° ν˜•μ‹μ€ YYMMDDHHMMSSZ ν˜•μ‹μœΌλ‘œ μ—°λ„λŠ” YY둜 λ‘μžλ¦¬ ν‘œμ‹œλ₯Ό ν•˜κ³  Z 인 Zulu 값이 포함 λœλ‹€.
참고둜 YYκ°€ 50보닀 크면 19YY둜 해석 ν•˜κ³  50미만 이면 20YY둜 ν•΄μ„ν•œλ‹€.
Z κ°€ μžˆλ‹€λŠ” 것은 ν‘œμ€€μ‹œμ˜ μ‹œκ°„μœΌλ‘œ 보면 λœλ‹€.

예제 그림

GeneralizeTime ν˜•μ‹

GeneralizeTime ν˜•μ‹ λ˜ν•œ ASN.1의 ν‘œμ€€ νƒ€μž…μ΄λ‹€.
이 ν˜•μ‹λ˜ν•œ λ‚ μ§œμ™€ μ‹œκ°„(μ΄ˆλ‹¨μœ„κΉŒμ§€)을 ν‘œμ‹œν•˜κΈ° μœ„ν•΄ ν‘œμ€€μ‹œ(Zulu)λ₯Ό ν¬ν•¨ν•œ ν˜•μ‹μ΄λ‹€.
이 νƒ€μž…μ˜ ν˜•μ‹μ€ YYYYMMDDHHMMSSZ μ΄μ–΄μ„œ 년도 ν‘œμ‹œκ°„ YYYY λ„€μžλ¦¬λ₯Ό μ‚¬μš©ν•œλ‹€.
YYYY λ„€μžλ¦¬λ₯Ό μ‚¬μš©ν•˜λŠ”κ²ƒμ΄ UTCTime ν˜•μ‹κ³Όμ˜ 차이점이닀.

마무리

μœ νš¨κΈ°κ°„μ€ ν•΄λ‹Ή μΈμ¦μ„œλ₯Ό μ‚¬μš©ν•  수 μžˆλŠ” 기간을 λ§ν•œλ‹€.
μΈμ¦μ„œλ₯Ό μ‚¬μš©ν•˜λ‹€ 보면 주기적으둜 μΈμ¦μ„œλ₯Ό 갱신을 ν•΄μ£ΌλŠ”λ° κ·Έ μ΄μœ κ°€ 이 μœ νš¨κΈ°κ°„μ΄ λ§Œλ£Œκ°€ 되기 λ•Œλ¬ΈμΈκ²ƒμ΄λ‹€.
그리고 CAκ°€ μΈμ¦μ„œλ₯Ό λ°œκΈ‰ ν• λ•Œ ν•΄λ‹Ή μΈμ¦μ„œμ˜ μœ νš¨κΈ°κ°„μ€ 항상 CA μΈμ¦μ„œ μœ νš¨κΈ°κ°„ 이내에 μžˆμ–΄μ•Ό ν•œλ‹€.