최신판 |
당신의 편집 |
1번째 줄: |
1번째 줄: |
| [[분류:보안]] | | [[분류:보안]] |
| ;인증서 표기 공식 표준
| | == X.509 인증서 == |
| * [[ITU-T]] (X.509) 및 [[ISO]] (ISO/IEC 9594-8) 공동 [[표준]]
| |
| | |
| [[파일:X.509.png]] | | [[파일:X.509.png]] |
| | | * 버전 : X.509 인증서 형식의 버전으로, 현재 v1-v3까지 있음 |
| == X.509 인증서 ==
| | * 일련번호 : CA에서 인증서를 발행할 때 마다 할당되는 유일한 번호 |
| {| class="wikitable"
| | * 알고리즘 식별자 : CA가 사용한 서명 알고리즘의 OID.sha1withRSAEncryption의 OID는 1.2.840.113549.1.1.5 |
| ! 구분
| | * 발행자 : 인증서를 발행한 CA의 이름 |
| ! 설명
| | * 유효 개시 기간(Validity from) : 인증서가 유효한 최초 시간 |
| |-
| | * 유효 만기 시간(Validity to) : 인증서가 유효한 마지막 시간 |
| | 버전
| | * 주체 : 인증서의 증명대상의 DN(Distinguished Name). 사람뿐만 아니라 서버도 해당 |
| | X.509 인증서 형식의 버전으로, 현재 v1-v3까지 있음
| | * 주체 공개키 정보 : 암호용 또는 서명용 공개키, 키가 사용될 알고리즘의 종류, 키 길이 등 정보로 구성 |
| |-
| | * 알고리즘 : 공개키 알고리즘의 OID |
| | 일련번호
| | * 공개키 : 주체의 공개키 값 |
| | CA에서 인증서를 발행할 때 마다 할당되는 유일한 번호
| | * 서명 : CA의 서명 값 |
| |-
| |
| | 알고리즘 식별자
| |
| | CA가 사용한 서명 알고리즘의 식별자
| |
| |-
| |
| | 발행자
| |
| | 인증서를 발행한 CA의 이름
| |
| |-
| |
| | 유효 개시 시간
| |
| | 인증서가 유효한 최초 시간
| |
| |-
| |
| | 유효 만기 시간
| |
| | 인증서가 유효한 마지막 시간
| |
| |-
| |
| | 주체
| |
| | DN(Distinguished Name). 사람뿐만 아니라 서버도 해당
| |
| |-
| |
| | 주체 공개키
| |
| | 암호용 또는 서명용 공개키, 키가 사용될 알고리즘의 종류, 키 길이 등 정보로 구성
| |
| |-
| |
| | 알고리즘
| |
| | 공개키 알고리즘의 OID
| |
| |-
| |
| | 공개키
| |
| | 주체의 공개키 값
| |
| |-
| |
| | 서명값
| |
| | CA의 서명 값
| |
| |}
| |
| == X.509 버전별 추가사항 ==
| |
| * '''버전 2에서 추가된 영역''' | |
| ** 인증 기관 고유 식별자 : 한 주체에 대해 둘 이상의 인증기관으로부터 인증서가 발급된 경우, 인증기관 구분
| |
| ** 주체 고유 식별자 : 주체를 식별하는 값, 예를 들어 같은 회사에 동명이인이 있는 경우 구분하기 위해 사용
| |
| * '''버전 3에서 추가된 영역'''
| |
| ** 확장 키 사용 : Key usage 항목으로 표시할 수 없는 세부적인 추가용도를 OID 형태로 표시. TLS 웹 서버 인증용, TLS 웹 클라이언트 인증용, 코드 서명용, 전자 우편용, IPSec 용 등을 지시
| |
| ** 인증기관 키 식별자 : 하나의 인증기관이 여러 개의 비밀키로 인증서를 발급한 경우, 서명 검증용 공개키를 식별하기 위해 사용. SHA-1해시 값인 KeyIdentifier, 발행기관 이름, 일련 번호로 구성
| |
| ** 주체 키 식별자 : 한 주체가 여러 키 쌍에 대해 발급받은 인증서를 가지고 있을 때, 인증서에 포함된 공개키를 구별하는데 사용
| |
| ** 키 용도 : 해당 공개키가 암호용인지 서명용인지를 해당 비트로 표시
| |
| ** 비밀키 사용기간 : 인증서의 유효기간과 서명용 비밀키의 사용시간이 다를 때 사용
| |
| ** 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일 때, 복호 전용 공개키 임을 지시
| |
| | |
| == 인증서 내용 예시 ==
| |
| | |
| === PEM 형태 ===
| |
| 인증서는 일반적으로 [[PEM 포맷]]으로 전달된다. 자세한 내용은 '''[[인증서 포맷]]''' 참고<pre>
| |
| -----BEGIN CERTIFICATE-----
| |
| MIIBtjCCAVugAwIBAgITBmyf1XSXNmY/Owua2eiedgPySjAKBggqhkjOPQQDAjA5MQswCQYDVQQG
| |
| EwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSAzMB4XDTE1MDUy
| |
| NjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZ
| |
| MBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgMzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABCmXp8ZB
| |
| f8ANm+gBG1bG8lKlui2yEujSLtf6ycXYqm0fc4E7O5hrOXwzpcVOho6AF2hiRVd9RFgdszflZwjr
| |
| Zt6jQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSrttvXBp43
| |
| rDCGB5Fwx5zEGbF4wDAKBggqhkjOPQQDAgNJADBGAiEA4IWSoxe3jfkrBqWTrBqYaGFy+uGh0Psc
| |
| eGCmQ5nFuMQCIQCcAu/xlJyzlvnrxir4tiz+OpAUFteMYyRIHN8wfdVoOw==
| |
| -----END CERTIFICATE-----
| |
| </pre>[[Base64 인코딩|Base64]]로 인코딩된 바이너리이며, 디코딩 및 파싱을 하면 아래와 같이 나온다. 디코더([https://www.sslcert.co.kr/tools/certificate-crt-decoder 예시])는 온라인에서 쉽게 찾을 수 있다.
| |
| | |
| === 파싱 결과 ===
| |
| 참고로 이 인증서는 AWS에서 발행한 [[루트 인증서]]이며, 일반적인 서버 인증서는 이것보다 내용이 많다. (확장 필드들을 더 많이 쓴다.)
| |
| | |
| [[파일:AWS Root CA 인증서 내용.png|800x800픽셀]]
| |