인증서(Certificate) 규격
Computer Science/인증, 서명, 본인확인, FIDO

인증서(Certificate) 규격

728x90
반응형

인증서(certificate):인증기관의고유키또는비밀키를사용하여변조를불가능하게 한개체의데이터.

 

 

 

기본 필드

인증서 기본필드는 인증서의 버전, 발급자, 유효기간 등 인증서의 기본 정보를 나타내며, 아래 정의된 기본필드는 행정전자서명 인증서에 모두 포함되어야 한다. 또한, 행정전자서명 인증서를 처리하는 모든 소프트웨어는 아래에 명시된 기본 필드를 모두 처리할 수 있어야 한다. 행정전자서명 인증서 기본필드는 최상위인증기관, 인증기관, 가입기관 모두 공통된 영역을 사용하며, 다음과 같이 정리할 수 있다. 등록기관, OCSP서버, TSA 서버 인증서는 가입기 관과 동일하므로 별도로 표현하지 않는다.

 

■ 버전(version)

인코딩된 인증서의 버전. 행정전자서명인증체계에서 사용되는 인증서는 버전3을 이용하며, 이 값은 정수 2로 표현된다. * 값 = 2 : 버전3(extension 사용시, 현 행정전자서명인증체계에서 적용), 1 : 버전2(extension 미사용이나, UniqueIdentifier 존재시), 0 : 버전1(기본필드만 사용시)

 

■ 발행 일련 번호(serial number)

인증기관이 각 인증서에 부여하는 양의 정수 이것은 해당 인증기관에 의해 발급된 각각의 인증서 별로 유일해야 한다.

 

■ 서명 알고리즘 식별자(signature algorithm id)

인증기관이 인증서를 서명하는데 사용하는 알고리즘에 대한 식별자를 OID(Object Identifier)와parameter를 사용하여나타낸다.이필드는 인증서에있는서명알고리 즘과 동일한 알고리즘 식별자를 포함한다.

 

■ 인증서발행자(issuer)

인증서에서명하고발행한기관(인증기관)의유일한이름이며행정전자서명인증체계에 서는X.500DN을사용한다. LDAP디렉토리서버는RFC4510형태의DN을사용한 다. 한글을 사용하는 경우에는 UTF8 형식으로 표현한다.

 

■ 인증서 유효 기간(validity)

인증기관이 인증서의 유효성을 보증하는 기간임 인증서 유효기간은 ‘시작하는 날짜(notBefore)’와 ‘만료되는 날짜(notAfter)’의 쌍으로 표현한다. notBefore에서 notAfter까지의 기간이 유효기간이다. 이 필드에 사용되는 UTCTime은GMT로표시되는데,2049년까지는 UTCTime을사용해야하고,2050년 이후에는 GeneralizedTime만 사용해야 한다. * UTCTime : YYMMDDHHMMSSZ (반드시 초 단위까지 표시) * GeneralizedTime : YYYYMMDDHHMMSSZ (반드시 초 단위까지 표시)

 

■ 인증서 소유자(subject)

인증서내 공개키를 소유하고 있는 자의 유일한 이름으로 X.500 DN을 사용한다. (LDAP 디렉토리 서버는 RFC 4510 형태의 DN을 사용한다.) -CA용인증서의소유자는인증기관에의해발행된인증서의발행자(issuer)필드와 일치 - CRL 발행용 인증서의 소유자는 CRL 인증서의 발행자(issuer) 필드와 일치

 

■ 소유자 공개키 정보(subject public key info)

공개키를 제공하고, 키가 사용하는 알고리즘을 식별한다. 즉,공개키필드와알고리즘식별자필드로이루어져있다.또한알고리즘식별자는알 고리즘과 파라미터 필드로 이루어져 있다.

 

■ 발행자의 고유 식별자(Issuer unique identifiers)

서로 다른 발행자가 하나의 DN을 사용할 경우, 이를 식별하기 위해 존재한다.

 

■ 소유자의 고유 식별자(Subject unique identifiers)

서로 다른 소유자가 하나의 DN을 사용할 경우, 이를 식별하기 위해 존재한다.

 

■ 발행자 서명(signature)

인증기관(CA)이 ‘소유자의 신분’과 ‘소유자의 공개키’를 연결해 주는 전자정보 (TBSCertificate)의 유효성을 인증하고 CA자신의 비공개키로 서명한 값. - TBSCertificate는 소유자의 이름(subject), 발행자(issuer), 소유자의 공개키 (public key), 유효기간(validity period), 버전(version), 발행일련번호(serial number), 확장필드(Extensions) 등으로 구성된다. ASN.1DER형태의TBSCertificate의내용을[PKIXALGS]의서명알고리즘을사용하여 비트 스트링(bit string)로 인코딩하고 signature 필드에 저장한다.

 

 

확장 필드

확장 필드는 OID와 ASN.1의 구조를 준수해야 하며, 다음 사항이 필수적으로 지원되어야 한다. o 인증기관:인증기관공개키식별자,소유자공개키식별자,기본제한,키사용목적,인증서 정책 o 가입기관:키사용목적,인증서정책,소유자대체이름,기본제한,이름제한,정책제7한, 확장키사용목적,any-policy상속 암호통신을 위해 사용되는 인증서(SSL) 및 해당 인증서를 발급하는 인증기관 인증서의 경 우, Certificate Policies 필드와 Policy Constraints 필드의 Criticality는 False로 설정할 수 있다. 키 용도 필드(Key Usage)는 인증기관에서 설정할 수 있으며, 본 상세서은 키 용도 확장들의 조합에 제한을 두지 않는다. 필요시 본 상세서에서 권고이외의 확장필드 추가 사용시 상호호환성을 해치지 않는 범위에 서 가능하다.

■ 인증기관 공개키 식별자(authority key identifier)

발행자가 복수의 서명키를 가지고 있을 경우, 인증서를 서명하기 위해 사용되는 비공 개키(서명키)에 대응되는 공개키를 구분하기 위하여 사용한다. AuthorityKeyIdentifier ::= SEQUENCE { keyIdentifier [0] KeyIdentifier OPTIONAL, authorityCertIssuer [1] GeneralNames OPTIONAL, authorityCertSerialNumber [2] CertificateSerialNumber OPTIONAL } KeyIdentifier ::= OCTET STRING * KeyIdentifier 생성 방법은 아래 ‘subject key identifier’의 ‘KeyIdentifier 생 성방법’과 동일.

 

■ 소유자 공개키 식별자(subject key identifier)

소유자가복수의서명키를가지고있을경우서명키에대응되는공개키를구분하기위 하여 사용한다. 특히, 인증경로 구축을 위해 사용된다.

 

■ 키 용도(key usage)

인증서에 포함된 ‘소유자 공개키’의 목적(암호, 서명, 인증서 발행 등)을 정의한다. 키 용도 확장들의 조합에 제한을 두지 않는다. 이 확장은 critical로 설정된다. 키 용도는 BitString로 표시되며 유형은 다음과 같다.

키 용도 유형 키 용도 digitalSignature CA나 CRL이외의 보안서비스를 지원할 목적으로 사용될 때 설정된다. 즉, 신원 확인(entity authentication), 데이터 무결성(data origin authentication with integrity)등의 용도 nonRepudiation 부인봉쇄 서비스를 제공하기 위하여 전자서명을 검증하는 데 사용될 때 설정 KeyEncipherment 키 전송(key transport)에 사용될 때 설정된다. 예를 들어 RSA 키가 키 관리(key management)에 사용될 때 설정 DataEncipherment 소유자의 데이터를 암호화하는 데 사용될 때 설정된다. (이는 소유자의 비공개키(암호키)를 대신해서 사용할 경우임.) KeyAgreement 키 합의(key agreement)에 사용될 때 설정된다. 예를 들어 Diffie-Hellman 키가 키 관리(key management)에 사용될 때 설정 KeyCertSign 인증서의 서명을 검증하기 위해 사용될 때 설정된다. 이 비트는 인증기관(CA) 인증서에만 해당 CRLSign 인증서 폐지목록(CRL, delta CRL, ARL)의 서명을 검증하기 위해 사용될 때 설정되어야 한다. 행정전자서명인증체계경우 이 비트는 인증기관(CA) 인증서에만 해당 encipherOnly keyAgreement 비트가 설정된 경우에 소유자 공개키가 키 합의(key agreement)를 수행하는 동안 데이터 암호화용으로만 사용 * encipherOnly 비트는 keyAgreement 비트가 설정되지 않을 경우에는 의미가 없다. decipherOnly keyAgreement 비트가 설정된 경우에 소유자 공개키가 키 합의(key agreement)를 수행하는 동안 데이터 복호화용으로만 사용될 때 설정 * decipherOnly 비트는 keyAgreement 비트가 설정되지 않을 경우에는 의미가 없다.

 

■ 비공개키 사용 기간(private key usage period)

비공개키(전자서명 생성키)의 유효기간이 인증서에 포함된 공개키(전자서명 검증키)의 유효기간과 다른 경우 비공개키의 사용기간을 나타낸다.

 

■ 인증서 정책(certificate policies)

인증서를 발급하는 데에 적용된 인증기관의 일련의 ‘정책정보’들을 나타낸다. 이 ‘정책 정보’란인증서가발행시준수한정책과인증서가사용될목적을말한다.이확장은정 책 식별자(OID)와 정책 수식자(optional qualifier)로 구성된다. CA인증서의 ‘정책정 보’는 인증경로(이 경로에 CA인증서가 포함)의 정책집합을 제한한다. 혹시, 인증경로 (이 경로에 CA인증서가 포함)의 정책집합을 제한하지 않으려면, 특수한 정책인 anyPolicy({2 5 29 32 0})를 사용한다. 응용소프트웨어(Application)가 특수한 정책만 받아들이고자 하는 경우, 특수한 정책 들의 list와 인증서의 정책 OID를 비교한다. 특히 이 확장이 critical인 경우는 경로검 증 S/W는 반드시 이 확장을 번역하거나 인증서를 거부해야 한다. 정책수식자는 CPS Pointer, User Notice qualifiers 등이 있다.

 

■ 정책 매핑(policy mappings)

다른PKI도메인간의상호인증시상대방의인증서정책을받아들이고자할때사용된 다. 인증기관(CA) 인증서에서만 이 정책 매핑 필드가 사용되며, 여러 ‘정책 식별자 (OID)쌍’들로 이루어진다. ‘정책 식별자(OID)쌍’은 이 인증서를 발행한 CA가 자신의 - 22 - 정책(issuerDomainPolicy)과이인증서소유자의정책(subjectDomainPolicy)을동일 하게 간주함을 나타낸다. ( issuerDomainPolicy ≒ subjectDomainPolicy ) 보통, 이 인증서를 발행한 인증기관(CA)의 사용자들은 어떤 응용을 위해 인증기관 (CA)의 정책(issuerDomainPolicy)을 받아들일 것이다. 정책 매핑(policy mappings) 은 이 인증서를 발행한 인증기관(CA)의 사용자들이 인증기관(CA)의 정책 (issuerDomainPolicy)과 대비하여 받아들일 수 있는 다른 PKI의 정책 (subjectDomainPolicy)을 나타낸다. 또한 anyPolicy는 issuerDomainPolicy나 subjectDomainPolicy에 쓰여 mapping될 수 없다.

 

■ 소유자 대체 이름(subject alternative name)

인증서 소유자의 추가적인 명칭을 나타내며 인증서비스 영역 내에서 사용되는 고유한 식별정보를 제공한다. 소유자 대체 이름(subject alternative name)은 전자우편 주소 (RFC822 참조), DNS(Domain Name System) 이름(RFC1034 참조), IP 주소 (RFC791참조), URI(uniform resource identifier) (RFC1738), otherName(RFC1510) 등이 가능하다.

 

■ 발행자 대체 이름(issuer alternative name)

인증서 발행자의 추가적인 명칭을 나타내며 인증서비스 영역 내에서 사용되는 고유한 식별정보를 제공한다. 이 확장은 인터넷 형식의 식별자로 인증서 발행자를 식별하는 데에 사용한다.

 

■ 소유자 디렉토리 속성(subject directory attributes)

소유자 디렉토리 속성 확장은 소유자의 id 속성(예: 국적 등)등 추가적인 정보를 제공 한다.

 

■ 기본 제한(basic constraints)

인증서 소유자가 인증기관인지 여부를 표시하고, 또한 인증경로(이 경로에 CA인증서 가포함됨)의최대인증검증길이(maximumdepthof valid certificationpath)를제 한한다. 인증 경로 길이 값이 0이면 사용자에게만 인증서를 발급한다. 값이 없으면 인증 경로 길이에 제한이 없다. 인증경로 길이 값은 인증기관 인증서에만 사용된다. 이 확장은 critical로 설정된다.

 

■ 이름 제한(name constraints)

인증경로상의 모든 인증서의 소유자 이름은 이 이름범위(name space)로 제한된다. 소유자DN 및 소유자 대체 이름에서 사용되는 이름범위(name space)를 제한한다. 이는 허용 가능한 이름 집합과 반드시 제외하여야 하는 이름 집합으로 나타난다. 이 확장은 인증기관(CA) 인증서에만 사용된다.

 

■ 정책 제한(policy constraints)

2가지 방법으로 인증 경로의 유효성를 제한한다. 정책 매핑을 금지하거나, 인증 경로 상의각인증서마다허용된인증정책(정책식별자)을포함하도록하는것이다.이확장 - 23 - 은 인증기관 인증서에만 사용된다.

 

■ 인증서 폐지목록 분배점(CRL Distribution Points)

인증서의 상태정보를 확인하는 방법으로 인증서 폐지목록을 사용하는 경우에 이를 획 득할 수 있는 위치정보를 나타낸다. 이 확장은 non-critical로 설정된다. CRLDistributionPoints ::= SEQUENCE SIZE (1..MAX) OF DistributionPoint DistributionPoint ::= SEQUENCE { distributionPoint [0] DistributionPointName OPTIONAL, reasons [1] ReasonFlags OPTIONAL, cRLIssuer [2] GeneralNames OPTIONAL } DistributionPointName ::= CHOICE { fullName [0] GeneralNames, nameRelativeToCRLIssuer [1] RelativeDistinguishedName } ReasonFlags ::= BIT STRING { unused (0), keyCompromise (1), cACompromise (2), affiliationChanged (3), superseded (4), cessationOfOperation (5), certificateHold (6), privilegeWithdrawn (7), aACompromise (8) }

 

■ 키 용도 확장(extended key usage)

키용도확장필드에표시된기본용도들에추가또는대신해서1개이상의공개키용 도를표시한다.키용도와는독립적으로사용되며,병행될때는두가지목적을모두만 족하게 쓰여야 한다. 키 용도들은 필요로 하는 기관에 의해 정의될 수 있다.

 

■ 인증기관(CA) 정보 접근(Authority Information Access)

인증기관(CA)에 대한 정보를 획득하고자 하는 경우에 사용되며, 인증기관 정보에 접 근하는 방법 및 위치정보를 나타낸다. OCSP 서비스를 사용할 경우, OCSP서버에 접 근하는 방법을 나타낼 수도 있다. 인증서 폐지목록 분배점 위치정보에 대해서는 인증 - 24 - 서폐지목록분배점확장필드의값을먼저활용하고,이를이용하여획득하기어려운 경우에는 기관 정보 접근 확장 필드의 값을 이용한다. 이 확장은 non-critical로 설정 된다. AuthorityInfoAccessSyntax ::= SEQUENCE SIZE (1..MAX) OF AccessDescription AccessDescription ::= SEQUENCE { accessMethod OBJECT IDENTIFIER, accessLocation GeneralName }

 

■ 소유자 정보 접근(Subject Information Access)

인증서 소유자에 대한 정보를 획득하기 위하여 사용함

 

<개인용 인증서 프로파일 예시>

\

 

728x90
반응형