PKI/X509 Profile

[X509] μΈμ¦μ„œ DN ( Distinguished Name ) μ΄λž€?

JayKimπŸ™‚ 2023. 6. 13. 09:06

μΈμ¦μ„œ DN 에 λŒ€ν•΄μ„œ μ•Œμ•„ 보자

μ—¬κΈ°μ„œ DN 은 Distinguished Name 의 μ•½μžμ΄λ‹€.
그리고 μΈμ¦μ„œμ—μ„œλŠ” DN 이 두ꡰ데 쑴재 ν•œλ‹€ 즉 주체자의 DN κ³Ό λ°œκΈ‰μžμ˜ DN 이 μžˆλ‹€.
ν•œλ§ˆλ””λ‘œ 이 μΈμ¦μ„œμ˜ μ£Όμ²΄μžμ™€ λ°œκΈ‰μžμ— λŒ€ν•œ 이름이 DN 이닀.

즉 주체자의 DN 은 ν•΄λ‹Ή μΈμ¦μ„œμ˜ 주체의 이름이고
λ°œκΈ‰μžμ˜ DN 은 ν•΄λ‹Ή μΈμ¦μ„œλ₯Ό λ°œκΈ‰ν•œ CA μΈμ¦μ„œμ˜ 이름이닀.

그럼 DN에 λŒ€ν•˜μ—¬ 쒀더 ꡬ체적으둜 뢄석을 ν•΄λ³΄μž.
DN은 ν•˜λ‚˜ μ΄μƒμ˜ RDN ( Relative Distinguished Name ) 이 μˆœμ„œλ₯Ό 가지고 ꡬ성 λ˜μ–΄ μžˆλ‹€.

DN의 ASN.1 ν˜•μ‹

   Name ::= CHOICE {
     RDNSequence }

   RDNSequence ::= SEQUENCE OF RelativeDistinguishedName

   RelativeDistinguishedName ::=
     SET OF AttributeTypeAndValue

   AttributeTypeAndValue ::= SEQUENCE {
     type     AttributeType,
     value    AttributeValue }

   AttributeType ::= OBJECT IDENTIFIER

   AttributeValue ::= ANY DEFINED BY AttributeType

ASN.1 ν˜•μ‹μ—μ„œ μ•Œμˆ˜ μžˆλ“―μ΄ type 의 값은 OID 값을 μ‚¬μš©ν•˜κ³ 
value λŠ” ν•΄λ‹Ή 값이 λ“€μ–΄κ°€κ²Œ λœλ‹€.

μ΄λ ‡κ²Œ RDN 의 연속적인 값인데 이 κ΅¬μ‘°λŠ” LDAP μ—μ„œ μ‚¬μš©ν•˜λŠ” ν‘œκΈ° 법과 일치 ν•œλ‹€.
κ·Έλž˜μ„œ 일반적으둜 μΈμ¦μ„œμ˜ μ €μž₯μ†Œλ‘œ LDAP을 μ‚¬μš©ν•œλ‹€.

λ‹€μŒμ€ DN μ˜ˆμ œμ΄λ‹€.
uid=doe,e=doe@sun.com,cn=John Doe,o=Sun Microsystems Inc.,c=US
이 μ˜ˆμ—μ„œ 각 λ“±ν˜Έ(=) μ•žμ˜ μ•½μžλŠ” λ‹€μŒμ„ μ˜λ―Έν•©λ‹ˆλ‹€.

μ΄λ ‡κ²Œ RDN은 속성=κ°’μœΌλ‘œ μ—¬λŸ¬κ°œμ˜ RDN ( Relative Distinguished Name ) 의 μ—°μ†μœΌλ‘œ λ§Œλ“€μ–΄ 진닀.

DN의 속성

  • UID : μ‚¬μš©μžμ˜ 아이디
  • CN : Common Name μ•½μžλ‘œ κ°€μž…μžμ˜ 이름을 λ‚˜νƒ€λƒ„
  • SN : SurName의 μ•½μžλ‘œ κ°€μž…μž μ΄λ¦„μ˜ 성을 λ‚˜νƒ€λƒ„
  • SerialNumber : μ‹œλ¦¬μ–Ό 번호
  • C : Country Name의 μ•½μžλ‘œ λ‚˜λΌ 이름 (Printable String)
  • L : Local Name의 μ•½μžλ‘œ 지역 이름
  • S or ST : State or Province Name의 μ•½μžλ‘œ λ„μ‹œλ‚˜ 도λͺ…을 λ‚˜νƒ€λƒ„
  • STREET : Street Address 의 μ•½μžλ‘œ κ±°μ£Ό ν•˜λŠ” 거리λͺ… λ˜λŠ” λ²ˆμ§€μˆ˜λ₯Ό λ‚˜νƒ€λƒ„
  • O : Organization Name의 μ•½μžλ‘œ κ°€μž…μžκ°€ μ†ν•œ 쑰직λͺ…을 λ‚˜νƒ€λƒ„
  • OU : Organizational Unit Name의 μ•½μžλ‘œ κ°€μž…μžκ°€ μ†ν•œ ν•˜μœ„ 쑰직λͺ…을 λ‚˜νƒ€λƒ„
  • T or TITLE : Title 의 μ•½μžλ‘œ κ°€μž…μžκ°€ μ†ν•œ μ‘°μ§μ—μ„œμ˜ μ§μœ„λ₯Ό λ‚˜νƒ€λƒ„
  • G or GIVENNAME : Given name의 μ•½μžλ‘œ κ°€μž…μžμ˜ 뢀가적인 이름
  • I or INITIALS : κ°€μž…μž μ΄λ¦„μ˜ μ•½μ–΄
  • E : email Address 인 메일 μ£Όμ†Œλ₯Ό λ‚˜νƒ€λƒ„

μ΄λ ‡κ²Œ λ‹€μ–‘ν•œ RDN 을 μ‘°ν•©ν•˜μ—¬ λ§Œλ“€μ–΄μ§€λŠ” 값이 DN 이닀.
OpenSSL μ—μ„œ μΈμ¦μ„œλ₯Ό λ°œκΈ‰ ν•  λ•Œ λ˜λŠ” CSR μš”μ²­μ„œλ₯Ό λ§Œλ“€ λ•Œ DN 값을 μž…λ ₯ν•˜λŠ”λ°
μ΄λ ‡κ²Œ RDN 값을 μ—¬λŸ¬κ°œ μž…λ ₯을 λ°›μ•„μ„œ DN을 λ§Œλ“€κ²Œ λ˜λŠ” 것이닀.

μ•„λž˜ 그림은 μ‹€μ œλ‘œ μΈμ¦μ„œμ˜ DN 값을 BerEditor 둜 읽은 화면이닀.

BerViewer 둜 DN ν‘œμ‹œ

BerEditorλŠ” μ•„λž˜ λ§ν¬μ—μ„œ λ‹€μš΄ 받을 수 μžˆλ‹€.
BerEditor ( ASN.1 DER BER Viewer and Editor )

 

BerEditor ( ASN.1 DER BER Viewer and Editor )

BerEditor μ†Œκ°œ BerEditor λŠ” ASN.1 인코딩 κ·œμΉ™(BER, DER)을 μ‚¬μš©ν•˜μ—¬ 인코딩 된 데이타λ₯Ό λΆ„μ„ν•˜κ³  νŽΈμ§‘ν•˜κΈ° μœ„ν•œ κ·Έλž˜ν”½ μ‚¬μš©μž(GUI) 도ꡬ μž…λ‹ˆλ‹€. κ·Έμ™Έ PKI λ˜λŠ” μ•”ν˜Έν™” 개발 μ‹œ ν•„μš”ν•œ μ•”/λ³΅ν˜Έν™”, μ„œλͺ…/

jykim74.tistory.com