![Page 1: X.509 인증서와PKIcfs8.tistory.com/upload_control/download.blog?fhandle=... · 2015-01-22 · X.509인증서의형식 • 버전: X.509 인증서형식의버전으로, 현재v1-v3까지있음](https://reader035.vdocuments.net/reader035/viewer/2022070913/5fb48c49bd6b7a39041e6d30/html5/thumbnails/1.jpg)
X.509 인증서와 PKI
1
공개키 배포의 문제점공개키 배포의 문제점
2
![Page 2: X.509 인증서와PKIcfs8.tistory.com/upload_control/download.blog?fhandle=... · 2015-01-22 · X.509인증서의형식 • 버전: X.509 인증서형식의버전으로, 현재v1-v3까지있음](https://reader035.vdocuments.net/reader035/viewer/2022070913/5fb48c49bd6b7a39041e6d30/html5/thumbnails/2.jpg)
인증서의 구성인증서의 구성
Arami’s IDArami’s Public Key유효기간유효기간발급기관 Certificate Authority의 디지털 서명(CA의 비밀키로 서명됨)
3
표준 및 용도표준 및 용도
•표준표준– ITU-T X.509 v3
IETF PKIX– IETF PKIX
•용도–전자메일전자메일
–SSL전자지불–전자지불
–소프트웨어 코드서명– IPSec
4
![Page 3: X.509 인증서와PKIcfs8.tistory.com/upload_control/download.blog?fhandle=... · 2015-01-22 · X.509인증서의형식 • 버전: X.509 인증서형식의버전으로, 현재v1-v3까지있음](https://reader035.vdocuments.net/reader035/viewer/2022070913/5fb48c49bd6b7a39041e6d30/html5/thumbnails/3.jpg)
인증서의 종류
• 사용자 인증서
인증서의 종류
• 루트 인증서
5
인증서 기반의 공개키 암호화 전송절차(1)인증서 기반의 공개키 암호화 전송절차( )
6
![Page 4: X.509 인증서와PKIcfs8.tistory.com/upload_control/download.blog?fhandle=... · 2015-01-22 · X.509인증서의형식 • 버전: X.509 인증서형식의버전으로, 현재v1-v3까지있음](https://reader035.vdocuments.net/reader035/viewer/2022070913/5fb48c49bd6b7a39041e6d30/html5/thumbnails/4.jpg)
인증서 기반의 공개키 암호화 전송절차(2)인증서 기반의 공개키 암호화 전송절차(2)
7
X.509인증서의 형식X.509인증서의 형식
8
![Page 5: X.509 인증서와PKIcfs8.tistory.com/upload_control/download.blog?fhandle=... · 2015-01-22 · X.509인증서의형식 • 버전: X.509 인증서형식의버전으로, 현재v1-v3까지있음](https://reader035.vdocuments.net/reader035/viewer/2022070913/5fb48c49bd6b7a39041e6d30/html5/thumbnails/5.jpg)
X.509인증서의 형식X.509인증서의 형식
• 버전 : X.509 인증서 형식의 버전으로, 현재 v1-v3까지 있음• 일련번호 : CA에서 인증서를 발행할 때 마다 할당되는 유일한 번호• 알고리즘 식별자 : CA가 사용한 서명 알고리즘의 OID.
sha1withRSAEncryption의 OID는 1 2 840 113549 1 1 5sha1withRSAEncryption의 OID는 1.2.840.113549.1.1.5• 발행자 : 인증서를 발행한 CA의 이름• 유효 개시 기간(Validity from) : 인증서가 유효한 최초 시간• 유효 만기 시간(Validity to) : 인증서가 유효한 마지막 시간• 주체 : 인증서의 증명대상의 DN(Distinguished Name). 사람뿐만 아니라 서버도 해당만 아니라 서버도 해당
• 주체 공개키 정보 : 암호용 또는 서명용 공개키, 키가 사용될 알고리즘의 종류, 키 길이 등 정보로 구성
• 알고리즘 : 공개키 알고리즘의 OID• 공개키 : 주체의 공개키 값서명 CA의 서명 값• 서명 : CA의 서명 값
9
X.509인증서의 형식X.509인증서의 형식
<버전 2에서 추가된 영역>인증 기관 고유 식별자 : 한 주체에 대해 둘 이상의 인증기관으로부터 인증서가 발급된 경우, 인증기관 구분주체 고유 식별자 : 주체를 식별하는 값 예를 들어 같은 회사에 동명주체 고유 식별자 : 주체를 식별하는 값, 예를 들어 같은 회사에 동명이인이 있는 경우 구분하기 위해 사용
<버전 3에서 추가된 영역>인증기관 키 식별자 : 하나의 인증기관이 여러 개의 비밀키로 인증서를 발급한 경우, 서명 검증용 공개키를 식별하기 위해 사용. SHA-1 를 발급한 경우, 서명 검증용 공개키를 식별하기 위해 사용. SHA 1 해시 값인 KeyIdentifier, 발행기관 이름, 일련 번호로 구성주체 키 식별자 : 한 주체가 여러 키 쌍에 대해 발급받은 인증서를 가지고 있을 때 인증서에 포함된 공개키를 구별하는데 사용지고 있을 때, 인증서에 포함된 공개키를 구별하는데 사용키 용도 : 해당 공개키가 암호용인지 서명용인지를 해당 비트로 표시
10
![Page 6: X.509 인증서와PKIcfs8.tistory.com/upload_control/download.blog?fhandle=... · 2015-01-22 · X.509인증서의형식 • 버전: X.509 인증서형식의버전으로, 현재v1-v3까지있음](https://reader035.vdocuments.net/reader035/viewer/2022070913/5fb48c49bd6b7a39041e6d30/html5/thumbnails/6.jpg)
X.509인증서의 형식X.509인증서의 형식
• 비밀키 사용기간 : 인증서의 유효기간과 서명용 비밀키의 사용시간이 다를 때 사용이 다를 때 사용
• 확장 키 사용 : Key usage 항목으로 표시할 수 없는 세부적인 추가용도를 OID 형태로 표시. TLS 웹 서버 인증용, TLS 웹 클라이언가용 형태 시 웹 서버 증용, 웹 클라이트 인증용, 코드 서명용, 전자 우편용, IPSec 용 등을 지시
• CRL 배포 지점 : 폐기한 인증서의 리스트가 저장되어있는 곳의URLURL
• 주체 대체 이름 : DNS 이름, IP 주소, 메일 주소, 커버로스 이름 등주체 이름에 대한 또 다른 이름
• 발행자 대체 이름 : CA의 또 다른 이름• 기본 제한 : {CA 플래그, pathLenConstraint로 구성}기관 정보 액세스 인증기관이 제공하는 인증서 관련 서비스에 접근• 기관 정보 액세스 : 인증기관이 제공하는 인증서 관련 서비스에 접근할 수 있는 URL이나 프로토콜 관련 정보
• 주체 정보 액세스 : 인증서 주체가 제공할 수 있는 정보와 서비스에접근하는 방법 제공, 주로 CA의 루트 인증서에 사용
11
인증기관 키 식별자의 예인증기관 키 식별자의 예
해당 CA로 부터 입수한해당 CA로 부터 입수한루트인증서가 여러 개 일때,이들 중에서 신속하게이들 중에서 신속하게찾을 수 있도록 함
12
![Page 7: X.509 인증서와PKIcfs8.tistory.com/upload_control/download.blog?fhandle=... · 2015-01-22 · X.509인증서의형식 • 버전: X.509 인증서형식의버전으로, 현재v1-v3까지있음](https://reader035.vdocuments.net/reader035/viewer/2022070913/5fb48c49bd6b7a39041e6d30/html5/thumbnails/7.jpg)
키 용도키 용도
해당 공개키가 암호용인지 서명용인지 표시함
13
키 용도키 용도
• digitalSignature : keyCertSign, cRLSign을 제외한 서명용도의 공개키도의 공개키
• nonRepudiation : 부인방지를 위한 서명용 공개키• keyEncipherment : 공유 비밀키를 암호화할 때 사용하는 공개• keyEncipherment : 공유 비밀키를 암호화할 때 사용하는 공개키
• dataEncipherment : 데이터 암호용 공개키• keyAgreement : 키 분배 프로토콜에 사용할 공개키• keyCertSign : 루트 인증서의 서명용 공개키• cRLSign : CRL 서명용 공개키• cRLSign : CRL 서명용 공개키• encipheronly : keyAgreement 비트가 1일 때, 암호 전용 공개키 임을 지시
• dncipheronly : keyAgreement 비트가 1일 때, 복호 전용 공개키 임을 지시
14
![Page 8: X.509 인증서와PKIcfs8.tistory.com/upload_control/download.blog?fhandle=... · 2015-01-22 · X.509인증서의형식 • 버전: X.509 인증서형식의버전으로, 현재v1-v3까지있음](https://reader035.vdocuments.net/reader035/viewer/2022070913/5fb48c49bd6b7a39041e6d30/html5/thumbnails/8.jpg)
확장 키 사용의 예확장 키 사용의 예
공개키의 추가용도 표시기능(예: 코드서명용,IPSec용…)
15
CRL배포지점의 예CRL배포지점의 예
CRL(Certification Revocation List)
폐기되는 인증서의 보관장소 지시
16
![Page 9: X.509 인증서와PKIcfs8.tistory.com/upload_control/download.blog?fhandle=... · 2015-01-22 · X.509인증서의형식 • 버전: X.509 인증서형식의버전으로, 현재v1-v3까지있음](https://reader035.vdocuments.net/reader035/viewer/2022070913/5fb48c49bd6b7a39041e6d30/html5/thumbnails/9.jpg)
주체 대체 이름의 예주체 대체 이름의 예
17
기본 제한영역의 예기본 제한영역의 예
사용자 용사용자 용
CA flag : 인증서가 CA용인지 최종 사용자용인지 표시
18
pathLenConstraint : 이 인증서로부터 확대 가능한 인증 경로의 길이
![Page 10: X.509 인증서와PKIcfs8.tistory.com/upload_control/download.blog?fhandle=... · 2015-01-22 · X.509인증서의형식 • 버전: X.509 인증서형식의버전으로, 현재v1-v3까지있음](https://reader035.vdocuments.net/reader035/viewer/2022070913/5fb48c49bd6b7a39041e6d30/html5/thumbnails/10.jpg)
signKorea CA용 인증서의 기본제한영역 내용signKorea CA용 인증서의 기본제한영역 내용
Subject Type = CAflagj yp g
19
signKorea CA용 인증서의 인증경로signKorea CA용 인증서의 인증경로
20
![Page 11: X.509 인증서와PKIcfs8.tistory.com/upload_control/download.blog?fhandle=... · 2015-01-22 · X.509인증서의형식 • 버전: X.509 인증서형식의버전으로, 현재v1-v3까지있음](https://reader035.vdocuments.net/reader035/viewer/2022070913/5fb48c49bd6b7a39041e6d30/html5/thumbnails/11.jpg)
KISA인증서(최상위 인증기관)KISA인증서(최상위 인증기관)
21
KISA인증서의 기본제한영역 내용KISA인증서의 기본제한영역 내용
22
![Page 12: X.509 인증서와PKIcfs8.tistory.com/upload_control/download.blog?fhandle=... · 2015-01-22 · X.509인증서의형식 • 버전: X.509 인증서형식의버전으로, 현재v1-v3까지있음](https://reader035.vdocuments.net/reader035/viewer/2022070913/5fb48c49bd6b7a39041e6d30/html5/thumbnails/12.jpg)
기본 제한 영역의 예(최종 사용자용)기본 제한 영역의 예(최종 사용자용)
23
기관 정보 액세스 (Authority Information Access)기관 정 액세 ( y )
24
![Page 13: X.509 인증서와PKIcfs8.tistory.com/upload_control/download.blog?fhandle=... · 2015-01-22 · X.509인증서의형식 • 버전: X.509 인증서형식의버전으로, 현재v1-v3까지있음](https://reader035.vdocuments.net/reader035/viewer/2022070913/5fb48c49bd6b7a39041e6d30/html5/thumbnails/13.jpg)
인증서의 예인증서의 예
인증서 확인창 / 루트 인증서의 예인증서 확인창 / 루트 인증서의 예
25
개인 인증서의 예개인 인증서의 예
26
![Page 14: X.509 인증서와PKIcfs8.tistory.com/upload_control/download.blog?fhandle=... · 2015-01-22 · X.509인증서의형식 • 버전: X.509 인증서형식의버전으로, 현재v1-v3까지있음](https://reader035.vdocuments.net/reader035/viewer/2022070913/5fb48c49bd6b7a39041e6d30/html5/thumbnails/14.jpg)
개인 인증서의 예(계속)개인 인증서의 예(계속)
손도장: 서명을 포함한 인증서 전체에 대한 해시값
27
손도장의 활용손도장의 활용
CA_B CA_A
B A인증서 CA B서명B A인증서 CA_B서명
손도장값계산손도장값계산손도장값계산
확인요청 -> 일치되면 변조되지 않았음을 인증함
28
![Page 15: X.509 인증서와PKIcfs8.tistory.com/upload_control/download.blog?fhandle=... · 2015-01-22 · X.509인증서의형식 • 버전: X.509 인증서형식의버전으로, 현재v1-v3까지있음](https://reader035.vdocuments.net/reader035/viewer/2022070913/5fb48c49bd6b7a39041e6d30/html5/thumbnails/15.jpg)
국내 공인 인증기관국내 공인 인증기관
29
인증서 발급철차인증서 발급철차
• 등록• 사용자 인증 및 발급신청
– 등록기관(은행 등)에서 대면 확인 후 CA(yessign 등)에 신청
발급정보 제공• 발급정보 제공– CA가 발급정보(참조번호+인가코드)를 등록기관에 제공, 사용자에게 전달
• 발급요청– 사용자가 직접Web에서 등록(발급정보사용)사용자 PC에서 자동적으로 개인키+공개키 쌍 생성– 사용자 PC에서 자동적으로 개인키+공개키 쌍 생성
– 개인키 보관– 공개키 전송(인증서 발급요청 양식 활용)( )
• 인증서 확보• 인증서 활용
30
![Page 16: X.509 인증서와PKIcfs8.tistory.com/upload_control/download.blog?fhandle=... · 2015-01-22 · X.509인증서의형식 • 버전: X.509 인증서형식의버전으로, 현재v1-v3까지있음](https://reader035.vdocuments.net/reader035/viewer/2022070913/5fb48c49bd6b7a39041e6d30/html5/thumbnails/16.jpg)
X.509인증서의 폐기X.509인증서의 폐기
31
인증서의 활용 : 소프트웨어 배포 인증인증서의 활용 웨어 배 인증
32
![Page 17: X.509 인증서와PKIcfs8.tistory.com/upload_control/download.blog?fhandle=... · 2015-01-22 · X.509인증서의형식 • 버전: X.509 인증서형식의버전으로, 현재v1-v3까지있음](https://reader035.vdocuments.net/reader035/viewer/2022070913/5fb48c49bd6b7a39041e6d30/html5/thumbnails/17.jpg)
코드서명된 프로그램의 검증 절차코드서명된 프로그램의 검증 절차
33
인증서를 활용한 상호인증의 예인증서를 활용한 상호인증의 예
34
![Page 18: X.509 인증서와PKIcfs8.tistory.com/upload_control/download.blog?fhandle=... · 2015-01-22 · X.509인증서의형식 • 버전: X.509 인증서형식의버전으로, 현재v1-v3까지있음](https://reader035.vdocuments.net/reader035/viewer/2022070913/5fb48c49bd6b7a39041e6d30/html5/thumbnails/18.jpg)
인증서의 ASN.1 형식인증서의 ASN.1 형식
Certificate ::= SEQUENCE {tbsCertificate TBSCertificate, signatureAlgorithm AlgorithmIdentifiersignatureAlgorithm AlgorithmIdentifier,signatureValue BIT STRING
}-- To Be Signed CertificateTBSCertificate ::= SEQUENCE {
version [0] EXPLICIT Version DEFAULT v1,[ ] ,serialNumber CertificateSerialNumber,signature AlgorithmIdentifier, --signatureAlgorithm영역과 동일한 값임issuer Name,validity Validity,subject Name,subjectPublicKeyInfo SubjectPublicKeyInfo,issuerUniqueID [1] IMPLICIT UniqueIdentifier OPTIONAL, subjectUniqueID [2] IMPLICIT UniqueIdentifier OPTIONAL, extensions [3] EXPLICIT Extensions OPTIONAL
}i 0 2 3 2Version ::= INTEGER { v1(0), v2(1), v3(2) }
Validity ::= SEQUENCE {notBefore Time,notAfter Time
}SubjectPublicKeyInfo :: SEQUENCE {SubjectPublicKeyInfo ::= SEQUENCE {
algorithm AlgorithmIdentifier,subjectPublicKey BIT STRING
}Extension ::= SEQUENCE {
extnID OBJECT IDENTIFIERextnID OBJECT IDENTIFIER,critical BOOLEAN DEFAULT FALSE,extnValue OCTET STRING
}35
ASN.1ASN.1
• ASN.1(Abstract Syntax Notation One)– 구현에 관계없이 표준을 정의하는 언어– ITU-T 권고안 X.209 및 X.690에 정의되어 있음
"형식" 정의– "형식" 정의– "모듈" 정의 및 표시 방법– INTEGER 정의INTEGER 정의– BOOLEAN 정의– "구조체 형식" 정의– 특정 키워드(예: BEGIN, END, IMPORT, EXPORT,
EXTERNAL 등)의 의미특정 표준 인코딩 방법 프로그래밍 언어 또는 하드웨어 플랫폼– 특정 표준, 인코딩 방법, 프로그래밍 언어 또는 하드웨어 플랫폼에 관계없이 적용되며, 단순히 표준을 정의하는 언어
36
![Page 19: X.509 인증서와PKIcfs8.tistory.com/upload_control/download.blog?fhandle=... · 2015-01-22 · X.509인증서의형식 • 버전: X.509 인증서형식의버전으로, 현재v1-v3까지있음](https://reader035.vdocuments.net/reader035/viewer/2022070913/5fb48c49bd6b7a39041e6d30/html5/thumbnails/19.jpg)
인증서 파일의 16진 형식의 예인증서 파일의 16진 형식의 예
0000 : 30 82 03 de 30 82 03 47 a0 03 02 01 02 02 04 01 ; 0...0..G........
*.der파일
;0010 : 73 f9 71 30 0d 06 09 2a 86 48 86 f7 0d 01 01 05 ; s.q0.....H......0020 : 05 00 30 48 31 0b 30 09 06 03 55 04 06 13 02 6b ; ..0H1.0...U....k0030 : 72 31 10 30 0e 06 03 55 04 0a 13 07 79 65 73 73 ; r1.0...U....yess0040 : 69 67 6e 31 13 30 11 06 03 55 04 0b 13 0a 4c 69 ; ign1.0...U....Lig0050 : 63 65 6e 73 65 64 43 41 31 12 30 10 06 03 55 04 ; censedCA1.0...U.0060 : 03 13 09 79 65 73 73 69 67 6e 43 41 30 1e 17 0d ; ...yessignCA0...0070 : 30 34 30 31 33 30 31 35 30 30 30 30 5a 17 0d 30 ; 040130150000Z..00080 : 34 30 35 31 36 31 34 35 39 30 30 5a 30 65 31 0b ; 40516145900Z0e1.0090 : 30 09 06 03 55 04 06 13 02 6b 72 31 10 30 0e 06 ; 0...U....kr1.0..00a0 : 03 55 04 0a 13 07 79 65 73 73 69 67 6e 31 11 30 ; .U....yessign1.000b0 : 0f 06 03 55 04 0b 13 08 70 65 72 73 6f 6e 61 6c ; ...U....personal00c0 : 31 0c 30 0a 06 03 55 04 0b 13 03 4b 4d 42 31 23 ; 1.0...U....KMB1.00d0 : 30 21 06 03 55 04 03 0c 1a ec 9b 90 ec a2 85 ed ; 0...U...........00e0 : 95 84 28 29 30 30 30 34 2d 31 39 34 31 34 38 39 ; ....0004.194148900f0 : 39 30 34 30 81 9e 30 0d 06 09 2a 86 48 86 f7 0d ; 9040..0.....H...
37
인증서 내용의 분석인증서 내용의 분석
30 82 03 de{ // Seq (Certificate)30 82 03 47{ // Seq (TBSCertificate)30 82 03 47{ // Seq (TBSCertificate)//versiona0 03 02 01 02; version[0] = Integer 2 v3//serialNumber02 04 01 73 f9 71 ; serialNumber = 0x0173 f971//Signature30 0d { //Seq06 09 2a 86 48 86 f7 0d 01 01 05; OID = 1 2 840 113549 1 1 506 09 2a 86 48 86 f7 0d 01 01 05; OID = 1.2.840.113549.1.1.5 SignatureAlgorithm = (sha1withRSAEncryption)= sha1RSA
05 00 ; NULL}//Issuer30 48 { //Seq31 0b{ …SET30 09{ Seq30 09{ …….Seq06 03 55 04 06 ; OID = 2.5.4.6 = C //Country13 02 6b 72 ; PrintableString = ‘kr’
}}…
38
![Page 20: X.509 인증서와PKIcfs8.tistory.com/upload_control/download.blog?fhandle=... · 2015-01-22 · X.509인증서의형식 • 버전: X.509 인증서형식의버전으로, 현재v1-v3까지있음](https://reader035.vdocuments.net/reader035/viewer/2022070913/5fb48c49bd6b7a39041e6d30/html5/thumbnails/20.jpg)
인증서 관련 프로토콜인증서 관련 프로토콜
CRMF : Certificate Request Message FormatCMS : Certificate Message SyntaxCMP : Certificate Management ProtocolgCMC : Certificate Management Message over CMS
39
인증서 요청 메시지 형식인증서 요청 메시지 형식
• PKCS#10– 사용자가 새로운 인증서 발급을 요청하거나 인증서를 내려 받고자 할때 사용하는 요청 메시지 형식 정의
요청자의 distinguished name(DN) 공개키 등을 수납하고– 요청자의 distinguished name(DN), 공개키 등을 수납하고비밀키로 서명된 서명 영역을 포함
• Certificate Request Message Format(CRMF)– 인증서 요청 메시지 형식 규정
• 인증서가 수납된 응답 메시지의 형식인증서 발급 요청에 대해 C 는 CS /C S의– 인증서 발급 요청에 대해 CA는 PKCS#7/CMS의signedData 메시지 형식에 인증서를 수납하여 전송
40
![Page 21: X.509 인증서와PKIcfs8.tistory.com/upload_control/download.blog?fhandle=... · 2015-01-22 · X.509인증서의형식 • 버전: X.509 인증서형식의버전으로, 현재v1-v3까지있음](https://reader035.vdocuments.net/reader035/viewer/2022070913/5fb48c49bd6b7a39041e6d30/html5/thumbnails/21.jpg)
인증서 요청 및 응답 절차 프로토콜인증서 요청 및 응답 절차 프로토콜
• RFC2510 Certificate Management Protocols(CMP)– CA와 사용자 또는 CA와 CA사이에서 사용될 수 있는 인증서 발급 요청 응답 절차 및 이와 관련된 메시지들을 규정급 요청, 응답 절차 및 이와 관련된 메시지들을 규정
• RFC 2797 Certificate Management Messages • RFC 2797 Certificate Management Messages over CMS(CMC)– CMP와 마찬가지로 PKCS#10과 CRMF 인증서 요청 형식을모두 수용하며, 이에 대한 응답 절차 규정
41
PKCS#10 Certificate Request Syntax (CRS)q y ( )
CertificationRequest ::= SEQUENCE {certificationRequestInfo CertificationRequestInfocertificationRequestInfo CertificationRequestInfo,signatureAlgorithm SignatureAlgorithmIdentifier,signature Signature
}}
CertificationRequestInfo ::= SEQUENCE {version Versionversion Version,subject Name,subjectPublicKeyInfo SubjectPublicKeyInfo,attributes [0] IMPLICIT Attributes
전송 메시지 형식 : HTTP나 SMTP의 MIME 형식으로 인코딩되어 CA에
attributes [0] IMPLICIT Attributes } //PKCS#10 인증서 요청 형식의 ASN.1 형식
전송 메시지 형식 : HTTP나 SMTP의 MIME 형식 인 딩되어 CA에전송MIME 헤더 정보– Content-Type: application/pkcs10; name=smime.p10
C t t T f E di b 64– Content-Transfer-Encoding: base64– Content-Disposition: attachment; filename=smime.p10
42
![Page 22: X.509 인증서와PKIcfs8.tistory.com/upload_control/download.blog?fhandle=... · 2015-01-22 · X.509인증서의형식 • 버전: X.509 인증서형식의버전으로, 현재v1-v3까지있음](https://reader035.vdocuments.net/reader035/viewer/2022070913/5fb48c49bd6b7a39041e6d30/html5/thumbnails/22.jpg)
PKCS#10 인증서발급요청메시지의 활용PKCS#10 인증서발급요청메시지의 활용
43
PKCS#7과 CMSPKCS#7과 CMS
• CA가 인증서를 처리할 때, 어떻게 처리되었는지 명시하고, 필요한 경우 암호화 방식이나 키 정보 등을 수납하기위한 공통의 메시지 형식 필요
• PKCS#7전송할 내용에 대한 암호화 는 디지털 서명에 사용할 수 있는– 전송할 내용에 대한 암호화 또는 디지털 서명에 사용할 수 있는메시지 encapsulation 형식 정의
– RFC 2315를 개선하여 RFC 2630 CMS(Cryptographic RFC 2315를 개선하여 RFC 2630 CMS(Cryptographic Syntax Notation) 발표
– 최근 다시 개선된 RFC 3369, RFC 3370 발표
44
![Page 23: X.509 인증서와PKIcfs8.tistory.com/upload_control/download.blog?fhandle=... · 2015-01-22 · X.509인증서의형식 • 버전: X.509 인증서형식의버전으로, 현재v1-v3까지있음](https://reader035.vdocuments.net/reader035/viewer/2022070913/5fb48c49bd6b7a39041e6d30/html5/thumbnails/23.jpg)
PKCS#7과 CMSPKCS#7과 CMS
45
[ContentInfo의 기본구성과 content type의 종류]
Content 형식의 종류Content 형식의 종류
content– data : 평문 데이터 수납– signed-data : 본문과 이에 대한 서명값 수납
enveloped data : Content Encryption Key(CEK)로 암호화– enveloped-data : Content-Encryption Key(CEK)로 암호화된 데이터와 이 데이터를 암호화할 때 사용된 CEK를 RSA 공개키 방식으로 암호화하여 수납
– digested-data : 데이터와 메시지 다이제스트 값을 수납하여, 데이터 무결성 제공
– encrypted-data : 대칭키로 암호화된 데이터 수납. Enveoped-encrypted data : 대칭키로 암호화된 데이터 수납. Enveopeddata 형식과 달리, CEK가 수납되지 않기 때문에 이 키는 다른방법, 즉, 공유 패스워드 등에서 추출
th ti t d d t 평문 데이터와 이에 대한 무결성 용– authenticated-data :평문 데이터와 이에 대한 무결성 용MAC코드, 이 MAC코드 생성시 사용된 키의 암호화된 값을 수납. 즉, {data || MAC || encrypted authencation key}로 구성
46
![Page 24: X.509 인증서와PKIcfs8.tistory.com/upload_control/download.blog?fhandle=... · 2015-01-22 · X.509인증서의형식 • 버전: X.509 인증서형식의버전으로, 현재v1-v3까지있음](https://reader035.vdocuments.net/reader035/viewer/2022070913/5fb48c49bd6b7a39041e6d30/html5/thumbnails/24.jpg)
Signed-data형식의 구성Signed data형식의 구성
평문과 디지털서명으로 구성됨(서명용 인증서도 포함됨)(서명용 인증서도 포함됨)
47
SignedData형식SignedData형식
ContentInfo ::= SEQUENCE {contentType ContentType (signedData형식의 경우 OID 1 2 840 113549 1 7 2)contentType ContentType, (signedData형식의 경우 OID=1.2.840.113549.1.7.2)
content [0] EXPLICIT ANY DEFINED BY contentType }
SignedData ::= SEQUENCE {version CMSVersion -- 1digestAlgorithms DigestAlgorithmIdentifiers,g g g g ,encapContentInfo EncapsulatedContentInfo,-- 필요한 데이터 수납 공간
certificates [0] IMPLICIT CertificateSet OPTIONAL,-- 인증서crls [1] IMPLICIT CertificateRevocationLists OPTIONAL,--인증서취소목록[ ]signerInfos SignerInfos – 서명자 정보
}
EncapsulatedContentInfo ::= SEQUENCE {eContentType ContentType,eContent [0] EXPLICIT OCTET STRING OPTIONAL
}}
48
![Page 25: X.509 인증서와PKIcfs8.tistory.com/upload_control/download.blog?fhandle=... · 2015-01-22 · X.509인증서의형식 • 버전: X.509 인증서형식의버전으로, 현재v1-v3까지있음](https://reader035.vdocuments.net/reader035/viewer/2022070913/5fb48c49bd6b7a39041e6d30/html5/thumbnails/25.jpg)
Enveloped-data 형식Enveloped data 형식
암호화되는 contentInfo영역과암호화시 사용된 Key(CEK)정보 수납암호화시 사용된 Key(CEK)정보 수납
4가지의 CEK 암호화 방법49
Enveloped-data 형식Enveloped data 형식
1. 송신자는 content-encryption key(CEK)를 임의로 생성2. 다음 중 한가지로 CEK 암호화① Key TransRecepientInfo : CEK를 수신자 RSA 공개키로 암호화② Key AgreeRecepientInfo : D-H 방식에 의해 설정된 공유키로 CEK를 암y g p
호화
③ KEKRecepientInfo : 사전에 약속된 대칭키인 KEK로 CEK를 암호화④ PasswordRecepientInfo :공유 패스워드로부터 생성된 KEK로 CEK를 암
호화
3. 암호화된 CEK와 수신자 정보를 RecepientInfo로 설정4 전송할 content를 CEK로 암호화4. 전송할 content를 CEK로 암호화5. RecepientInfo 값과 암호화된 content 영역 등을
EnvelopdedData 형식에 수납하여 전송
50
![Page 26: X.509 인증서와PKIcfs8.tistory.com/upload_control/download.blog?fhandle=... · 2015-01-22 · X.509인증서의형식 • 버전: X.509 인증서형식의버전으로, 현재v1-v3까지있음](https://reader035.vdocuments.net/reader035/viewer/2022070913/5fb48c49bd6b7a39041e6d30/html5/thumbnails/26.jpg)
Digested-data형식Digested data형식
평문 + 해시값
51
Encrypted-data형식의 구성Encrypted data형식의 구성
암호문 수납용(단, CEK는 없음)
52
![Page 27: X.509 인증서와PKIcfs8.tistory.com/upload_control/download.blog?fhandle=... · 2015-01-22 · X.509인증서의형식 • 버전: X.509 인증서형식의버전으로, 현재v1-v3까지있음](https://reader035.vdocuments.net/reader035/viewer/2022070913/5fb48c49bd6b7a39041e6d30/html5/thumbnails/27.jpg)
Authenticated-data형식의 구성Authenticated data형식의 구성
HMAC 데이터 인증용
53
Certificate Management Messages over CMS(CMC)g g ( )
54
![Page 28: X.509 인증서와PKIcfs8.tistory.com/upload_control/download.blog?fhandle=... · 2015-01-22 · X.509인증서의형식 • 버전: X.509 인증서형식의버전으로, 현재v1-v3까지있음](https://reader035.vdocuments.net/reader035/viewer/2022070913/5fb48c49bd6b7a39041e6d30/html5/thumbnails/28.jpg)
Certificate Management Messages over CMS(CMC)g g ( )
55
CMC의 Nested 암호화 방법CMC의 Nested 암호화 방법
56
![Page 29: X.509 인증서와PKIcfs8.tistory.com/upload_control/download.blog?fhandle=... · 2015-01-22 · X.509인증서의형식 • 버전: X.509 인증서형식의버전으로, 현재v1-v3까지있음](https://reader035.vdocuments.net/reader035/viewer/2022070913/5fb48c49bd6b7a39041e6d30/html5/thumbnails/29.jpg)
On-line certificate status checkingOn line certificate status checking
※(OCSP RFC 2560)
57
※(OCSP, RFC 2560)
인증서의 import/export형식인증서의 import/export형식
58
![Page 30: X.509 인증서와PKIcfs8.tistory.com/upload_control/download.blog?fhandle=... · 2015-01-22 · X.509인증서의형식 • 버전: X.509 인증서형식의버전으로, 현재v1-v3까지있음](https://reader035.vdocuments.net/reader035/viewer/2022070913/5fb48c49bd6b7a39041e6d30/html5/thumbnails/30.jpg)
인증서의 import/export형식인증서의 import/export형식
• Personal Information Exchange(PKCS#12) – 인증서와 대응하는 비밀키를 다른 컴퓨터나 플래시 메모리에 옮길때 사용하는 방식으로, 인증서 파일의 확장자는 “*.pfx”나“* p12”.p12
• PKCS#7/CMS– 인증서를 다른 컴퓨터나 플래시 메모리에 옮길때 사용하는 방식인증서를 다른 컴퓨터나 플래시 메 리에 옮길때 사용하는 방식으로, 인증서 파일의 확장자는 “*.p7b”
• DER Encoded Binary X.509– DER 형식으로 인코딩된 인증ㅇ서 파일로 *.cer 확장자를 가짐
• Base 64 Encoded X.509인 서 용 인 딩한 형식– DER 인증서를 MIME 용 Base 64 인코딩한 형식으로 *.cer
확장자를 가짐
59
DER Encoded Binary X.509형식DER Encoded Binary X.509형식
DER로 인코딩 된 인증서 파일 생성 방법의 예생성파일명은 *.cer임.생성파일명은 .cer임.
60
![Page 31: X.509 인증서와PKIcfs8.tistory.com/upload_control/download.blog?fhandle=... · 2015-01-22 · X.509인증서의형식 • 버전: X.509 인증서형식의버전으로, 현재v1-v3까지있음](https://reader035.vdocuments.net/reader035/viewer/2022070913/5fb48c49bd6b7a39041e6d30/html5/thumbnails/31.jpg)
MIME (Base 64)으로 인증서를 인코딩하여 파일로 저장하는 방법
•Base 64로 인코딩되어 HTTP나 e-mail로 전송 가능
61
Signed-data PKCS#7형식으로 인증서를 저장하는 방법g 형식 인증서를 저장하는 방법
62
![Page 32: X.509 인증서와PKIcfs8.tistory.com/upload_control/download.blog?fhandle=... · 2015-01-22 · X.509인증서의형식 • 버전: X.509 인증서형식의버전으로, 현재v1-v3까지있음](https://reader035.vdocuments.net/reader035/viewer/2022070913/5fb48c49bd6b7a39041e6d30/html5/thumbnails/32.jpg)
인증서 불러오는 방법의 예인증서 불러오는 방법의 예
63
Public Key Infrastructure (PKI)Public Key Infrastructure (PKI)
64
![Page 33: X.509 인증서와PKIcfs8.tistory.com/upload_control/download.blog?fhandle=... · 2015-01-22 · X.509인증서의형식 • 버전: X.509 인증서형식의버전으로, 현재v1-v3까지있음](https://reader035.vdocuments.net/reader035/viewer/2022070913/5fb48c49bd6b7a39041e6d30/html5/thumbnails/33.jpg)
윈도우 2000의 인증서 서비스윈도우 2000의 인증서 서비스
•지원하는 CA의 종류지원하는 CA의 종류–엔터프라이즈 CA
• Active Directory필요• Active Directory필요•윈도우 도메인내에서 동작
St d l CA–Stand-alone CA• Active Directory 불필요•윈도우 도메인과 별개로 동작 가능
•인증서 보관소–Active Directory
65