X.509
From IT Wiki
X.509 인증서
- 버전 : X.509 인증서 형식의 버전으로, 현재 v1-v3까지 있음
- 일련번호 : CA에서 인증서를 발행할 때 마다 할당되는 유일한 번호
- 알고리즘 식별자 : CA가 사용한 서명 알고리즘의 OID.sha1withRSAEncryption의 OID는 1.2.840.113549.1.1.5
- 발행자 : 인증서를 발행한 CA의 이름
- 유효 개시 기간(Validity from) : 인증서가 유효한 최초 시간
- 유효 만기 시간(Validity to) : 인증서가 유효한 마지막 시간
- 주체 : 인증서의 증명대상의 DN(Distinguished Name). 사람뿐만 아니라 서버도 해당
- 주체 공개키 정보 : 암호용 또는 서명용 공개키, 키가 사용될 알고리즘의 종류, 키 길이 등 정보로 구성
- 알고리즘 : 공개키 알고리즘의 OID
- 공개키 : 주체의 공개키 값
- 서명 : CA의 서명 값
X.509 버전별 추가사항
- 버전 2에서 추가된 영역
- 인증 기관 고유 식별자 : 한 주체에 대해 둘 이상의 인증기관으로부터 인증서가 발급된 경우, 인증기관 구분
- 주체 고유 식별자 : 주체를 식별하는 값, 예를 들어 같은 회사에 동명이인이 있는 경우 구분하기 위해 사용
- 버전 3에서 추가된 영역
- 인증기관 키 식별자 : 하나의 인증기관이 여러 개의 비밀키로 인증서를 발급한 경우, 서명 검증용 공개키를 식별하기 위해 사용. SHA-1해시 값인 KeyIdentifier, 발행기관 이름, 일련 번호로 구성
- 주체 키 식별자 : 한 주체가 여러 키 쌍에 대해 발급받은 인증서를 가지고 있을 때, 인증서에 포함된 공개키를 구별하는데 사용
- 키 용도 : 해당 공개키가 암호용인지 서명용인지를 해당 비트로 표시
- 비밀키 사용기간 : 인증서의 유효기간과 서명용 비밀키의 사용시간이 다를 때 사용
- 확장 키 사용 : Key usage 항목으로 표시할 수 없는 세부적인 추가용도를 OID 형태로 표시. TLS 웹 서버 인증용, TLS 웹 클라이언트 인증용, 코드 서명용, 전자 우편용, IPSec 용 등을 지시
- CRL 배포 지점 : 폐기한 인증서의 리스트가 저장되어있는 곳의 URL
- 주체 대체 이름 : DNS 이름, IP 주소, 메일 주소, 커버로스 이름 등 주체 이름에 대한 또 다른 이름
- 발행자 대체 이름 : CA의 또 다른 이름
- 기본 제한 : {CA 플래그, pathLenConstraint로 구성}
- 기관 정보 액세스 : 인증기관이 제공하는 인증서 관련 서비스에 접근할 수 있는 URL이나 프로토콜 관련 정보
- 주체 정보 액세스 : 인증서 주체가 제공할 수 있는 정보와 서비스에 접근하는 방법 제공, 주로 CA의 루트 인증서에 사용
키 종류 및 용도
- digitalSignature : keyCertSign, cRLSign을 제외한 서명용도의 공개키
- nonRepudiation : 부인방지를 위한 서명용 공개키
- keyEncipherment : 공유 비밀키를 암호화할 때 사용하는 공개키
- dataEncipherment : 데이터 암호용 공개키
- keyAgreement : 키 분배 프로토콜에 사용할 공개키
- keyCertSign : 루트 인증서의 서명용 공개키
- CRLSign : CRL 서명용 공개키
- encipheronly : keyAgreement 비트가 1일 때, 암호 전용 공개키 임을 지시
- dncipheronly : keyAgreement 비트가 1일 때, 복호 전용 공개키 임을 지시