다음을 통해 공유


문자열 형식

PKI(공개 키 인프라)에서 문자열의 가장 일반적인 사용 중 하나는 X.500 고유 이름을 만드는 것입니다. 예를 들어 인증서 요청의 주체 이름은 다음 구문 예제와 같이 상대적으로 구분된 이름의 시퀀스를 결합하여 만듭니다.

---------------------------------------------------------------------
-- Breakdown of a subject name in a certificate request.
---------------------------------------------------------------------

CertificationRequestInfo ::= SEQUENCE 
{
   version                 CertificationRequestInfoVersion,
   subject                 Name,
   subjectPublicKeyInfo    SubjectPublicKeyInfo,
   attributes              [0] IMPLICIT Attributes
}

Name ::= SEQUENCE OF RelativeDistinguishedName

RelativeDistinguishedName ::= SET OF AttributeTypeValue

AttributeTypeValue ::= SEQUENCE 
{
   type       OBJECT IDENTIFIER,
   value      ANY 
}

DirectoryString ::= CHOICE 
{
   teletexString           TeletexString (SIZE (1..MAX)),
   printableString         PrintableString (SIZE (1..MAX)),
   universalString         UniversalString (SIZE (1..MAX)),
   utf8String              UTF8String (SIZE (1..MAX)),
   bmpString               BMPString (SIZE (1..MAX)) 
}

인증서 등록 API는 다음 ASN.1 문자열 형식을 지원합니다.

BMPString

인코딩 태그: 0x1E

Certreq.exe 이름: UNICODE_STRING

기본 BMP(다국어 평면)는 UCS(유니버설 문자 집합)의 첫 번째 평면을 포함하는 문자 인코딩입니다. 번호가 0에서 16인 17개의 평면이 있습니다. BMP는 평면 0을 차지하며 0x0000 0xFFFF 65,536개의 코드 포인트를 포함합니다. 지금까지 대부분의 문자 할당이 수행된 유니코드 문자 맵의 섹션입니다. 여기에는 라틴어, 중동, 아시아, 아프리카 및 기타 언어가 포함됩니다.

IA5String

인코딩 태그: 0x16

Certreq.exe 이름: IA5_STRING

IA5(International Alphabet number 5)는 일반적으로 ASCII 알파벳과 동일하지만, 다른 버전에는 지역 언어와 관련된 악센트 또는 기타 문자가 포함될 수 있습니다. 다음 예제에서는 AlternativeNames 인증서 확장의 ASN.1 정의에 사용되는 IA5String 형식을 보여줍니다.

---------------------------------------------------------------------
-- AlternativeNames extension
---------------------------------------------------------------------

AltNames ::= SEQUENCE OF GeneralName

GeneralNames ::= AltNames

GeneralName ::= CHOICE 
{
   otherName               [0] IMPLICIT OtherName,
   rfc822Name              [1] IMPLICIT IA5String,
   dNSName                 [2] IMPLICIT IA5String,
   x400Address             [3] IMPLICIT SEQUENCE OF ANY, 
   directoryName           [4] EXPLICIT ANY,    
   ediPartyName            [5] IMPLICIT SEQUENCE OF ANY,
   uniformResourceLocator  [6] IMPLICIT IA5String,
   iPAddress               [7] IMPLICIT OCTET STRING,
   registeredID            [8] IMPLICIT OBJECT IDENTIFIER
}

OtherName ::= SEQUENCE 
{
   type                    OBJECT IDENTIFIER,
   value                   [0] EXPLICIT ANY 
}

PrintableString

인코딩 태그: 0x13

Certreq.exe 이름: PRINTABLE_STRING

PrintableString 데이터 형식은 원래 메인프레임 입력 터미널에서 사용할 수 있는 제한된 문자 집합을 나타내기 위한 것이었지만 여전히 일반적으로 사용됩니다. 여기에는 다음 문자가 포함됩니다.

  • A-Z
  • a-z
  • 0-9
  • ' ( ) + , - . / : = ? [space]

TeletexString

인코딩 태그: 0x14

TeletexString 및 관련 T61String 데이터 형식은 8비트(또는 복합 문자의 경우 16비트)로 인코딩됩니다. 둘 다 태그 번호의 0x14. 광범위하게 사용되지 않습니다.

UTF8String

인코딩 태그: 0x0C

Certreq.exe 이름: UTF8_STRING

8비트 UCS/유니코드 변환 형식(UTF-8)은 초기 코드 포인트가 ASCII와 일관되게 유지되도록 하면서 유니버설 문자를 유니코드 문자로 나타낼 수 있는 가변 길이 문자 인코딩입니다. UTF-8은 1~4바이트를 사용합니다. 태그 번호가 0x0C.

ASN.1 형식 시스템

Distinguished Encoding Rules

ASN.1 형식의 DER 인코딩