2014-03-13 5 views
0

저는 RFC 5280의 몇 가지 모서리 사례를 구문 분석하는 데 어려움을 겪었습니다 (ASN.1은 사양에 맞지 않습니다).RFC 5280은 DN에서 어떤 문자를 허용합니까?

첫째, RDN 필드의 일부로 허용되는 유일한 쉼표입니까? 쉼표는 일반적인 즉

CN=Wingdings, Inc

하지만

CN=, 유효

같은 이름은?

둘째, RFC에서 CN=과 같이 빈 필드 이름을 사용할 수 있습니까?

+0

당신은 RFC를 읽고 있습니까? –

+0

글쎄, 내가 말했듯이, 나의 ASN.1은 그렇게 뜨겁지 않다. 그리고 네. – mikek

+0

그리고 RFC가 이것에 대해 무엇을 이야기합니까? –

답변

2

은 RFC이 (. 제 4.1.2.4)를 말한다 나중에 다음

Name ::= CHOICE { -- only one possibility for now -- 
    rdnSequence RDNSequence } 

    RDNSequence ::= SEQUENCE OF RelativeDistinguishedName 

    RelativeDistinguishedName ::= 
    SET SIZE (1..MAX) OF AttributeTypeAndValue 

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

    AttributeType ::= OBJECT IDENTIFIER 

    AttributeValue ::= ANY -- DEFINED BY AttributeType 

그리고 (부록 A)이에서

-- Naming attributes of type X520CommonName 

id-at-commonName  AttributeType ::= { id-at 3 } 

-- Naming attributes of type X520CommonName: 
-- X520CommonName ::= DirectoryName (SIZE (1..ub-common-name)) 
-- 
-- Expanded to avoid parameterized type: 
X520CommonName ::= CHOICE { 
     teletexString  TeletexString (SIZE (1..ub-common-name)), 
     printableString PrintableString (SIZE (1..ub-common-name)), 
     universalString UniversalString (SIZE (1..ub-common-name)), 
     utf8String  UTF8String  (SIZE (1..ub-common-name)), 
     bmpString   BMPString  (SIZE (1..ub-common-name)) } 

나는 추론 :

  1. CN 값은 적어도 하나의 문자를 가져야합니다.

  2. CN에서 거의 모든 문자가 유효합니다.

따라서 "CN ="은 허용되지 않지만 "CN ="은 허용됩니다.

(. 당신이 허용 일반 이름이 다른 문제로 ","고려해야 할 것이지만, 적어도이 구문 규칙에 의해 금지되어 있는지 여부를)

경고 : 위의은을 기반으로 RFC의 간단한 읽기와 약간의 부작용을 온전하게 다룬다. 저는 X.500/520 또는 ASN.1 전문가가 아닙니다.