출처 : m.blog.naver.com/nttkak/20130245553 사이트에서 참고하였습니다.
CA가 인증서를 발급 할 때, 인증서에 들어가는 항목의 종류와 항목의 값들을 CA 나름대로 기입 한다면, 인증서를 사용하는 사용자마다 다른 형식의 인증서를 가지고 있을 것이고, 인증서의 내용을 이해하는데 문제가 생긴다.
따라서 인증서를 작성 함에 있어서 표준이 필요하다.
현재 가장 널리 사용되고 있는 공개키 인증서의 표준은 X.509 형식이다.
X.509 라는 것은 표준번호이며, 그래서 이 형식 대로 작성된 인증서를 X.509 라고 부르는 것이다.
[ X.509 인증서 항목 ]
X.509 인증서는 현재 (2020 년 9월 기준) 버전 3까지 발표된 상태이다.
버전 3 인증서와 이전의 X.509 인증서와 다른 점은 버전 3에는 Extension 이라는 섹션이 추가되었다.
이 Extension 섹션은 필수 항목이 아닌 추가적인 사항을 나타내는 항목들이다.
다음은 X.509 형식의 필수/추가 항목이다. ( Extension 은 중요한 것만 설명됨 )
항목명 | 필수/옵션 | 설명 |
필수 정보 | ||
Version | 필수 | 인증서의 버전으로 V3 가 들어간다. |
SerialNumber | 필수 | 인증서 고유의 일련번호 |
Signature | 필수 | 발급자의 서명 |
Issuer | 필수 | 발급자의 정보. DN( Distinguished Name) 형식 |
Validity | 필수 | 인증서의 유효기간. 시작 날자와 종료날자 |
Subject | 필수 | 주체의 정보. DN( Distinguished Name ) 형식 |
SubjectPublicKeyInfo | 필수 | 주체의 공개키 |
항목명 | 필수/옵션 | 설명 |
Extension | ||
SubjectAltName | 필수/옵션 | 주체의 다른 이름을 나타냄. DN 형식이 아니라 여러 종류의 값이 들어갈 수 있다. 주로 주체의 도메인 네임이 들어간다 |
PolicyMappings | 옵션 | 정책 정보를 다른 정책들과 연결 할 수 있는 정보를 제공 |
NameConstraints | 옵션 | |
PolicyConstraints | 옵션 | 인증서 경로의 제약 사항을 정함 |
IssuerAltName | 옵션 | 발급자의 다른 이름. DN 형식이 다른 값들이 들어갈 수 있다. 주로 발급자의 도메인 네임이 들어감 |
AuthorityKeyIdentifier | 옵션 | 발급자의 키를 나타낼 수 있는 키의 이름 |
SubjectKeyIdentifier | 옵션 | 주체의 키를 나타낼 수 있는 키 이름 |
BasicConstraints | 필수/옵션 | 제약 사항. 주로 이 인증서가 다른 인증서를 발급 할 수 있는 권한이 있는지 없는지를 나타낸다. |
CRLDistributionPoints | 옵션 | 이 인증서의 CRL을 얻을 수 있는 곳을 정한다. |
KeyUsage | 옵션 | 인증서에 기입된 공개키가 사용되는 보안 서비스 종류를 결정. 보안 서비스의 종류는 서명, 부인방지, 전자 서명, 키교환 등이 있다. |
위 표에서 언급된 DN의 항목들과 설명은 다음 표와 같다
항목 | 설명 | DN 항목 | Example |
CountryName | 국가코드 2자리 | C | KR |
StateOrProvinceName | 주 이름. (우리나라 경우 도 / 시 ) |
ST | Kyunggi |
LocalityName | 시 이름 또는 구 이름 | L | Pangyo |
OrganizationName | 소속 기관명 | O | Naver |
OrganizationalUnitName | 소속 부서명 | OU | Dev |
CommonName | 주체를 나타내는 이름 | CN | test.naver.com |
EmailAddress | 이메일 | emalAddress | test@naver.com |
[ X.509 인증서가 저장되는 여러 가지 형식들 ]
X.509 표준의 인증서 형식은 ASN.1 ( Abstract Syntax Notation One ) 이라는 명명규칙을 따름
ASN1. 은 C 언어 같은 프로그래밍 언어와 비슷하다.
많은 변수 형식이 있고, 많은 구조체 데이터 저장 형식이 있다. 인증서의 각 항목은 OID 라는 일련
번호로 나타낼 수 있으며 항목의 데이터는 ASN.1 타입의 데이터로 표현된다.
ASN.1 형식은 다음 기회에 설명하며, X.509 인증서의 각 항목의 내용은 ASN.1 의 형식에 맞게
저장된다는 것만 알아두자.
ASN.1 형식으로 되어 있는 X.509 인증서의 내용을 파일로 저장 할 때 주로 두가지 종류의 형식으로
저장한다.
첫 번째는 X.509 인증서 내용을 Base64 encoding 으로 인코딩 하여 저장하는 것이다.
두 번째는 X.509 인증서 내용을 binary 형태로 저장하는 것이다.
Base64 encoding 형식은 PEM 이고, binary 형식은 DER 이다.
'Development > Security (보안)' 카테고리의 다른 글
MTLS 란 무엇인가? 통신과정은 ? (0) | 2020.10.27 |
---|---|
SSL 통신원리 (0) | 2020.10.14 |
SSL 이란? (0) | 2020.09.22 |
JAVA 사설인증서 MTLS 통신 ( Server ) (0) | 2020.09.16 |
Java 사설인증서 MTLS 통신 ( Client ) (0) | 2020.09.15 |