PKI/X509 Profile

[X.509] μΈμ¦μ„œ ν‚€ μš©λ„(KeyUsage) μ„€λͺ…

JayKimπŸ™‚ 2023. 6. 28. 09:00

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),
           keyCertSign             (5),
           cRLSign                 (6),
           encipherOnly            (7),
           decipherOnly            (8) }

ASN.1 ν˜•μ‹μ—μ„œ μ•Œ 수 μžˆλ“―μ΄ KeyUsage의 μš©λ„λŠ” 9가지가 μ‘΄μž¬ν•œλ‹€.
그럼 각각의 μš©λ„μ— λŒ€ν•΄μ„œ μ•Œμ•„λ³΄μž.

digitalSignature

  • λ³΄μ•ˆ μ„œλΉ„μŠ€λ₯Ό μœ„ν•œ μ „μž μ„œλͺ…μš© μš©λ„λ₯Ό λ‚˜νƒ€λ‚΄λ‹€. (μΈμ¦μ„œ μ„œλͺ… λ˜λŠ” CRL μ„œλͺ…κ³ΌλŠ” λ‹€λ₯Έκ²ƒμ΄λ‹€)
  • 일반 EndEntity κ°€ λ‹€μ–‘ν•˜κ²Œ μ‚¬μš©ν•˜λŠ” μ „μž μ„œλͺ…μš©μž„μ„ λ‚˜νƒ€λ‚΄λ‹€.

nonRepudiation

  • μ „μžμ„œλͺ…을 ν•  λ•Œ μ„œλͺ…μžκ°€ κ·Έ μ„œλͺ… 거래 내역을 λΆ€μΈν•˜μ§€ λͺ»ν•œλ‹€λŠ”것을 μ˜λ―Έν•œλ‹€.
  • 사싀 뢀인 방지 경우 λΆ„μŸμ˜ μš”μ§€κ°€ μžˆμ„ 경우 μ‹ λ’°λœ 3자의 μ§„μœ„ μ—¬λΆ€κ°€ ν•„μš”ν•œ μš©λ„μ΄λ‹€.

keyEncipherment

  • ν‚€λ₯Ό μ•”ν˜Έν™” ν•˜μ—¬ 전솑 ν•  수 μžˆλŠ” κΈ°λŠ₯을 λ§ν•œλ‹€.
  • 보톡 RSA κ³΅κ°œν‚€ μ•”ν˜Έν™”λ₯Ό ν•  λ•Œ μ‚¬μš©ν•œλ‹€.

dataEncipherment

  • μ•”ν˜Έν™” ν‚€κ°€ μ•„λ‹Œ μ‚¬μš©μžμ˜ 데이타λ₯Ό μ•”ν˜Έν™”ν•˜λŠ”λ° μ‚¬μš©λ¨μ„ μ˜λ―Έν•œλ‹€.

keyAgreement

  • 이 μš©λ„λŠ” μ–‘μͺ½μ—μ„œ ν‚€ λ™μ˜λ₯Ό μ–»κΈ° μœ„ν•΄ μ‚¬μš©λ˜λŠ” μš©λ„μ΄λ‹€.
  • 보톡 DH μ•Œκ³ λ¦¬μ¦˜μ΄λ‚˜ ECDH μ•Œκ³ λ¦¬μ¦˜μ„ μ‚¬μš© ν•  λ•Œ μ‚¬μš©λœλ‹€.

keyCertSign

  • μΈμ¦μ„œμ— λŒ€ν•œ μ„œλͺ…μš©λ„μž„μ„ λ‚˜νƒ€λ‚΄λ‹€.
  • 이 μš©λ„λŠ” CAμΈμ¦μ„œμ—μ„œ μ‚¬μš©λ˜λŠ” μš©λ„μ΄λ‹€.

cRLSign

  • CRL에 λŒ€ν•œ μ„œλͺ… μš©λ„μž„μ„ λ‚˜νƒ€λ‚Έλ‹€.
  • 이 μš©λ„λŠ” CA μΈμ¦μ„œμ—μ„œ μ‚¬μš©λ˜λŠ” μš©λ„μ΄λ‹€.

encipherOnly

  • RSAμ•Œκ³ λ¦¬μ¦˜μ—μ„œ μ‚¬μš©λ˜λ©° κ³΅κ°œν‚€κ°€ μ•”ν˜Έν™”μš©μœΌλ‘œλ§Œ μ‚¬μš©λ¨μ„ μ˜λ―Έν•œλ‹€.
  • keyAgreement 와 같이 주둜 μ‚¬μš© λœλ‹€.
  • ν‚€ λ™μ˜λ₯Ό μˆ˜ν–‰ μ‹œ 데이타λ₯Ό μ•”ν˜Έν™” ν•˜λŠ” μš©λ„μ΄λ‹€.

decipherOnly

  • RSAμ•Œκ³ λ¦¬μ¦˜μ—μ„œ μ‚¬μš©λ˜λ©° κ°œμΈν‚€κ°€ λ³΅ν˜Έν™”μš©μœΌλ‘œλ§Œ μ‚¬μš©λ¨μ„ μ˜λ―Έν•œλ‹€.
  • keyAgreement 와 같이 주둜 μ‚¬μš© λœλ‹€.
  • ν‚€ λ™μ˜λ₯Ό μˆ˜ν–‰ μ‹œ 데이타λ₯Ό λ³΅ν˜Έν™” ν•˜λŠ” μš©λ„μ΄λ‹€.

이상 ν‚€ μš©λ„μ— λŒ€ν•΄μ„œ μ•Œμ•„ λ³΄μ•˜λ‹€.
보톡 keyUage ν•„λ“œλŠ” 크리티컬 ν•„λ“œμ΄μ–΄μ„œ 항상 μš©λ„μ— 맞게 섀정이 λ˜μ–΄μ•Όν•œλ‹€.

λ°˜μ‘ν˜•