1. 공인인증서 개요
공인인증서(公認認證書) 는 전자 서명의 검증에 필요한 공개 키(전자서명법에는 전자서명검증정보로 표기)에 소유자 정보를 추가하여 만든 일종의 전자 신분증(증명서)이다. 공개 키 증명서, 디지털 증명서, 전자 증명서 등으로도 불린다. 공인인증서는 개인 키(전자서명법에는 전자서명생성정보로 표기)와 한 쌍으로 존재한다.
전형적인 공개 키 기반 구조 (PKI) 방식에서 서명은 인증 기관의 소유가 된다. 신뢰의 웹 방식에서 서명은 자신이 직접 서명하거나 다른 사람이 서명할 수 있다. 어떠한 경우든 인증서의 서명은 정보와 공인 키를 함께 증명하는 인증 서명자의 증명이다.
공인인증서는 OpenSSL의 ssl-ca나 수세 리눅스의 gensslcert와 같은 도구를 포함한 유닉스 기반 서버용으로 작성되었다. 비대면 온라인 방식의 전자상거래에서 상대방과의 계약서 작성, 신원확인 등에 전자서명이 필요하며 동시에 공인인증서로 해당 전자서명을 생성한 자의 신원을 확인하게 된다.[위13]
국내의 공개키 기반 구조(PKI) 구성 구조도는 다음과 같다.[cod08]

2. 인증서 정보
공인인증기관을 통해 발급된 개인 인증에 대한 정보가 들어있으며, 인증서 파일에 포함된 내용은 다음과 같다.
인증서 정보 |
버전 |
일련번호 |
서명 알고리즘 |
서명 해시 알고리즘 |
발급자 |
유효기간(시작) |
유효 기간(끝) |
주체 |
공개 키 |
기관 키 식별자 |
주체 키 식별자 |
주체 대체 이름 |
CRL 배포 지점 |
기관 정보 액세스 |
키 사용 |
인증서 정책 |
지문 알고리즘 |
지문 |
국내에서는 X.509 v3를 공인인증서 버전으로 사용 중이며, 버전 정보 바이너리 값을 물리 메모리에서 인증서 파일(확장명 .der)을 추출하는 시그니처로 사용 할 수 있다.
각 인증서 정보 항목에 대한 설명은 다음과 같다.[블13]
• 버전 : 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의 서명 값
<버전 2에서 추가된 영역>
인증 기관 고유 식별자 : 한 주체에 대해 둘 이상의 인증기관으로부
터 인증서가 발급된 경우, 인증기관 구분
주체 고유 식별자 : 주체를 식별하는 값, 예를 들어 같은 회사에 동명
이인이 있는 경우 구분하기 위해 사용
<버전 3에서 추가된 영역>
인증기관 키 식별자 : 하나의 인증기관이 여러 개의 비밀키로 인증서
를 발급한 경우, 서명 검증용 공개키를 식별하기 위해 사용. SHA-1
해시 값인 KeyIdentifier, 발행기관 이름, 일련 번호로 구성
주체 키 식별자 : 한 주체가 여러 키 쌍에 대해 발급받은 인증서를 가
지고 있을 때, 인증서에 포함된 공개키를 구별하는데 사용
키 용도 : 해당 공개키가 암호용인지 서명용인지를 해당 비트로 표시
• 비밀키 사용기간 : 인증서의 유효기간과 서명용 비밀키의 사용시간
이 다를 때 사용
• 확장 키 사용 : Key usage 항목으로 표시할 수 없는 세부적인 추
가용도를 OID 형태로 표시. TLS 웹 서버 인증용, TLS 웹 클라이언
트 인증용, 코드 서명용, 전자 우편용, IPSec 용 등을 지시
• CRL 배포 지점 : 폐기한 인증서의 리스트가 저장되어있는 곳의
URL
• 주체 대체 이름 : DNS 이름, IP 주소, 메일 주소, 커버로스 이름 등
주체 이름에 대한 또 다른 이름
• 발행자 대체 이름 : CA의 또 다른 이름
• 기본 제한 : {CA 플래그, pathLenConstraint로 구성}
• 기관 정보 액세스 : 인증기관이 제공하는 인증서 관련 서비스에 접근
할 수 있는 URL이나 프로토콜 관련 정보
• 주체 정보 액세스 : 인증서 주체가 제공할 수 있는 정보와 서비스에
접근하는 방법 제공, 주로 CA의 루트 인증서에 사용
국내 공인 인증기관은 총 6곳으로 다음과 같다.[블13]
3. 개인키 정보
인증서 정보가 공개키를 이용하여 서명되어 있으므로, 개인키를 통해 서명 정보를 확인 할 수 있다.
공개 키 암호 방식은 비밀 키 암호보다 계산이 복잡한 단점이 있기 때문에, 효율을 위해 비밀 키 암호(혹은 대칭 암호)와 함께 사용된다. 메시지를 임의로 만들어진 비밀 키를 이용해 암호화한 다음 이 비밀 키를 다시 수신자의 공개 키로 암호화하여 메시지와 함께 전송하는 것이다. 이렇게 하면 공개 키 암호 기술로는 짧은 비밀 키만을 암호화하고 보다 효율적인 비밀 키 암호 기술로 전체 메시지를 암호화하므로 양쪽의 장점을 취할 수 있다.[위13b]
Appendix. 참고 문헌
[위13a] 위키백과 “공인인증서”, http://ko.wikipedia.org/wiki/%EA%B3%B5%EC%9D%B8%EC%9D%B8%EC%A6%9D%EC%84%9C, 2013.
[cod08] Codeengn “PKI”, http://codeengn.com/archive/Cryptology/PKI%20(Public%20Key%20Infrastructure)%20%5Bo1116%5D.pdf, 2008.
[블13] 1평짜리 다락방 블로그 “공개키 기반구조”, http://refe.tistory.com/attachment/ik7.pdf, 2013.
[위13b] 위키백과 “공개 키 암호 방식”, http://ko.wikipedia.org/wiki/%EA%B0%9C%EC%9D%B8%ED%82%A4, 2013.
'Information Security > Cryptology' 카테고리의 다른 글
비트코인과 블록체인 (2) - 사용자 관리와 인증 및 블록체인 기술 (0) | 2023.03.19 |
---|---|
비트코인과 블록체인 (1) - 비트코인과 채굴 방법 (0) | 2023.03.19 |
MD5 암호화 프로그램분석 (0) | 2022.06.03 |