다음을 통해 공유


주체 이름 인코딩

인증서 요청의 주체를 식별하기 위해 고유 이름으로 IX500DistinguishedName 개체를 초기화하면 ASN.1(Abstract Syntax Notation One)으로 인코딩된 DER(Distinguished Encoding Rules) 시퀀스가 만들어집니다. 예를 들어 주체 고유 이름은 다음과 같은 상대 RDN(고유 이름)으로 구성된다고 가정합니다.

E=Administrator@jdomcsc.nttest.microsoft.com
CN=Administrator
CN=Users
DC=jdomcsc
DC=nttest
DC=microsoft
DC=com

**IX500DistinguishedName** 개체는 다음 DER 인코딩(ASN.1) 시퀀스를 만듭니다. 시퀀스는 역순으로 인코딩됩니다. 이 예제는PKCS #7 갱신 인코딩된 ASN.1 항목에서 파생됩니다.
0a0d: 30 81 c4          ; SEQUENCE (c4 Bytes)
0a10: |  31 13          ; SET (13 Bytes)
0a12: |  |  30 11               ; SEQUENCE (11 Bytes)
0a14: |  |     06 0a            ; OBJECT_ID (a Bytes)
0a16: |  |     |  09 92 26 89 93 f2 2c 64  01 19
      |  |     |     ; 0.9.2342.19200300.100.1.25 Domain Component (DC)
0a20: |  |     16 03        ; IA5_STRING (3 Bytes)
0a22: |  |        63 6f 6d                                          ; com
      |  |           ; "com"
0a25: |  31 19          ; SET (19 Bytes)
0a27: |  |  30 17               ; SEQUENCE (17 Bytes)
0a29: |  |     06 0a            ; OBJECT_ID (a Bytes)
0a2b: |  |     |  09 92 26 89 93 f2 2c 64  01 19
      |  |     |     ; 0.9.2342.19200300.100.1.25 Domain Component (DC)
0a35: |  |     16 09            ; IA5_STRING (9 Bytes)
0a37: |  |        6d 69 63 72 6f 73 6f 66  74                       ; microsoft
      |  |           ; "microsoft"
0a40: |  31 16          ; SET (16 Bytes)
0a42: |  |  30 14               ; SEQUENCE (14 Bytes)
0a44: |  |     06 0a            ; OBJECT_ID (a Bytes)
0a46: |  |     |  09 92 26 89 93 f2 2c 64  01 19
      |  |     |     ; 0.9.2342.19200300.100.1.25 Domain Component (DC)
0a50: |  |     16 06            ; IA5_STRING (6 Bytes)
0a52: |  |        6e 74 74 65 73 74                                 ; nttest
      |  |           ; "nttest"
0a58: |  31 17          ; SET (17 Bytes)
0a5a: |  |  30 15               ; SEQUENCE (15 Bytes)
0a5c: |  |     06 0a            ; OBJECT_ID (a Bytes)
0a5e: |  |     |  09 92 26 89 93 f2 2c 64  01 19
      |  |     |     ; 0.9.2342.19200300.100.1.25 Domain Component (DC)
0a68: |  |     16 07            ; IA5_STRING (7 Bytes)
0a6a: |  |        6a 64 6f 6d 63 73 63                              ; jdomcsc
      |  |           ; "jdomcsc"
0a71: |  31 0e          ; SET (e Bytes)
0a73: |  |  30 0c               ; SEQUENCE (c Bytes)
0a75: |  |     06 03            ; OBJECT_ID (3 Bytes)
0a77: |  |     |  55 04 03
      |  |     |     ; 2.5.4.3 Common Name (CN)
0a7a: |  |     13 05            ; PRINTABLE_STRING (5 Bytes)
0a7c: |  |        55 73 65 72 73                                    ; Users
      |  |           ; "Users"
0a81: |  31 16          ; SET (16 Bytes)
0a83: |  |  30 14               ; SEQUENCE (14 Bytes)
0a85: |  |     06 03            ; OBJECT_ID (3 Bytes)
0a87: |  |     |  55 04 03
      |  |     |     ; 2.5.4.3 Common Name (CN)
0a8a: |  |     13 0d            ; PRINTABLE_STRING (d Bytes)
0a8c: |  |        41 64 6d 69 6e 69 73 74  72 61 74 6f 72           ; Administrator
      |  |           ; "Administrator"
0a99: |  31 39          ; SET (39 Bytes)
0a9b: |     30 37               ; SEQUENCE (37 Bytes)
0a9d: |        06 09            ; OBJECT_ID (9 Bytes)
0a9f: |        |  2a 86 48 86 f7 0d 01 09  01
      |        |     ; 1.2.840.113549.1.9.1 Email Address (E)
0aa8: |        16 2a            ; IA5_STRING (2a Bytes)
0aaa: |           41 64 6d 69 6e 69 73 74  72 61 74 6f 72 40 6a 64  ; Administrator@jd
0aba: |           6f 6d 63 73 63 2e 6e 74  74 65 73 74 2e 6d 69 63  ; omcsc.nttest.mic
0aca: |           72 6f 73 6f 66 74 2e 63  6f 6d                    ; rosoft.com
      |              ; "Administrator@jdomcsc.nttest.microsoft.com"

주체 이름에서 설명한 대로 고유 이름의 모든 RDN은 특성 집합으로 구성되며 각 특성에는 OID(개체 식별자) 및 값이 포함됩니다. IX500DistinguishedName 개체가 고유 이름을 인코딩하는 방법을 이해하려면 일반 이름 CN=Users를 고려합니다.

0a73: |  |  30 0c               ; SEQUENCE (c Bytes)
0a75: |  |     06 03            ; OBJECT_ID (3 Bytes)
0a77: |  |     |  55 04 03
      |  |     |     ; 2.5.4.3 Common Name (CN)
0a7a: |  |     13 05            ; PRINTABLE_STRING (5 Bytes)
0a7c: |  |        55 73 65 72 73                                    ; Users
      |  |           ; "Users"

ASN.1 개체의 DER 전송 구문은 항상 형식, 길이 및 값 삼중값을 포함하며, 트리플릿의 각 필드에는 하나 이상의 바이트가 포함됩니다. 인코딩된 경우 CN=Users는 OID 및 문자열 값으로 구성됩니다. CN OID의 점선 10진수 표기법은 2.5.4.3이고 문자열 값은 "Users"입니다. 문자열 값은 PRINTABLE_STRING 데이터 형식으로 표시됩니다. OBJECT_ID 연결된 숫자 형식 값은 항상 0x06 PRINTABLE_STRING 연결된 숫자 형식은 항상 0x13. 일반 이름 "Users"의 길이는 0x05 바이트입니다. OID의 길이는 0x03 바이트이며 값은 0x55 0x04 0x03.

참고

OID 2.5.4.3의 처음 두 숫자를 16진수 값 0x55 변환하려면 OID의 첫 번째 숫자를 40(2 x 40)으로 곱하고 두 번째 숫자(5)를 추가한 후 16진수로 변환합니다.

 

PKCS #7 인코딩된 ASN.1 갱신

샘플 요청

주체 이름