PKI/ASN.1

ASN.1 μ΄λž€?

JayKimπŸ™‚ 2022. 11. 2. 09:32

1. ASN.1 μ˜λ―ΈλŠ”?

Abstract Syntax Notation Dot One 이며 ITU ( International Telecommunication Unit ) μ—μ„œ λ„€νŠΈμ›Œν¬ 상 데이타 κ΅ν™˜μ„ μœ„ν•΄ μ •μ˜ν•œ ν”„λ‘œν† μ½œ ν‘œμ€€μ΄λ‹€. 데이타 ꡬ성을 ν‘œν˜„ ν•˜λŠ” 문법(μ–Έμ–΄) 이닀.

 

2. ASN.1 의 μ‚¬μš© μ΄μœ λŠ”?

λ„€νŠΈμ›Œν¬ 상 λ‹€μ–‘ν•œ μžμ‹ λ§Œμ˜ 데이타 처리λ₯Ό ν•˜λŠ” μ‹œμŠ€ν…œμ΄ μ‘΄μž¬ν•˜λŠ”λ° μ΄λ“€κ°„μ˜ 데이타 μ „μ†‘μ˜ ν‘œμ€€μ„ ν†΅ν•œ μ„œλ‘œκ°„μ˜ λ°μ΄νƒ€μ˜ ν˜Έν™˜μ„ μœ μ§€ν•˜κΈ° μœ„ν•΄ μ‚¬μš© ν•œλ‹€.

λŒ€ν‘œμ μœΌλ‘œ PKI μ—μ„œ μΈμ¦μ„œμ—μ„œ μ‚¬μš©μ΄ λ˜μ–΄ 진닀.

 

3. ASN.1 예제 포맷

Certificate  ::=  SEQUENCE  {
     tbsCertificate       TBSCertificate,
     signatureAlgorithm   AlgorithmIdentifier,
     signature            BIT STRING  }

TBSCertificate  ::=  SEQUENCE  {
     version         [0]  Version DEFAULT v1,
     serialNumber         CertificateSerialNumber,
     signature            AlgorithmIdentifier,
     issuer               Name,
     validity             Validity,
     subject              Name,
     subjectPublicKeyInfo SubjectPublicKeyInfo,
     issuerUniqueID  [1]  IMPLICIT UniqueIdentifier OPTIONAL,
                          -- If present, version MUST be v2 or v3
     subjectUniqueID [2]  IMPLICIT UniqueIdentifier OPTIONAL,
                          -- If present, version MUST be v2 or v3
     extensions      [3]  Extensions OPTIONAL
                          -- If present, version MUST be v3 --  }

이 뢀뢄은 X.509 μΈμ¦μ„œ 포맷의 ASN.1 의 일뢀뢄이닀.

 

 

4. ASN.1 인코딩 λ£°μ΄λž€?

ASN.1 ν˜•μ‹μ˜ λ©”μ‹œμ§€λ₯Ό λ„€νŠΈμ›Œν¬ μƒμ—μ„œ 전솑 ν• μˆ˜ μžˆλŠ” ν˜•μ‹μœΌλ‘œ λ³€ν™˜ μ‹œν‚€λŠ” κ·œμ•½μ„ λ§ν•œλ‹€.

인코딩 ν˜•μ‹μœΌλ‘œλŠ” BER, DER, PER, CER, XER 등이 μžˆλ‹€.

 

5. ASN.1 ν‘œμ€€ λ¬Έμ„œ

 

μ°Έκ³ ) 1984 : CCITT Recommendation X.409 κ΅­μ œν‘œμ€€ 등둝

'PKI > ASN.1' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

ASN.1 Type Notation (1/3)  (0) 2022.11.02
RFC3280-PKIX1Implicit88 ASN.1  (0) 2022.11.02
RFC3280-PKIX1Explicit88 ASN.1  (0) 2022.11.02
ASN.1 κΈ°λ³Έ ꡬ쑰  (0) 2022.11.02
ASN.1 μ΄μš©ν•œ 개발 흐름  (0) 2022.11.02