1 목포해양대해양컴퓨터공학과 7.2 S/MIME 7 장. 전자메일보안
2 목포해양대해양컴퓨터공학과 개요및기능 S/MIME(Secure/Multipurpose Internet Mail Extension) RSA 데이터보안기술을이용해 MIME 인터넷전자메일형식표준을보안적으로강화시킨것 우선 MIME 에대한이해가필요 S/MIME 은 PGP 와매우유사 두가지다메시지를서명하고암호화하는기능을제공 기능 봉함된데이터 (Enveloped data): 서명된데이터 (Signed data): 명문 - 서명데이터 (Clear-signed data): 서명되고봉함된데이터 (Signed and enveloped data):
3 목포해양대해양컴퓨터공학과 사용하는암호 알고리즘 (Cryptographic Algorithm) MUST: 필수 SHOULD: 권장
4 목포해양대해양컴퓨터공학과 메시지와개체보호 (1) S/MIME 메시지 S/MIME 은여러가지새로운 MIME 내용유형을이용 모든새로운응용유형은 RSA 연구소에서제시 S/MIME 용으로만든공개키암호명세 (PKCS: public-key cryptography specifications) 라고하는지정된 PKCS 를사용 MIME 개체보호 S/MIME 은서명, 암호혹은두가지를모두이용해서 MIME 개체 (MIME entity) 를안전하게한다 MIME 개체는다음을의미 메시지전체 메시지의한개혹은여러서브파트 (subpart) MIME 내용유형이멀티파트인경우
5 목포해양대해양컴퓨터공학과 메시지와개체보호 (2) MIME 개체보호절차 MIME 개체준비 MIME 개체와보안에관계된데이터 ( 알고리즘식별자와서명 ) 를합하고 S/MIME으로처리하여 PKCS 객체라고알려진것을만들어낸다 PKCS 객체는메시지내용으로간주되고 MIME에의해포장 적절한 MIME 헤더붙이기 전송될메시지는정규형식으로변환 전송부호화실행 일반적으로 base64 로
6 목포해양대해양컴퓨터공학과 S/MIME 내용유형 (1) S/MIME 내용유형 봉함데이터 서명데이터 명문서명 등록요청 인증서용메시지
7 목포해양대해양컴퓨터공학과 S/MIME 내용유형 (2) 봉함데이터 봉함데이터 (envelopeddata) MIME 개체준비 1. 특정대칭암호알고리즘 (RC2/40 이나 3DES) 에서사용할의사랜덤 (pseudorandom) 세션키를생성 2. 각수신자를위해수신자의 RSA 공개키로세션키를암호화 3. 각수신자를위해수신자정보 (RecipientInfo) 라고알려진블록을준비 수신자의공개키인증서식별자 세션키암호에사용된알고리즘식별자 암호화된세션키 4. 세션키로메시지내용을암호화 5. 암호화된내용을수신자정보뒤에첨부 6. 수신자정보는 base64 로부호화
8 목포해양대해양컴퓨터공학과 S/MIME 내용유형 (3) 봉함데이터메시지예 : Content-Type: application/pkcs7-mime; smime-type=enveloped-data; name=smime.p7m Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=smime.p7m rfvbnj756tbbghyhhhuujhjhjh77n8hhgt9hg4vqpfyf467ghigfhfyt6 7n8HHGghyHhHUujhJh4VQpfyF467GhIGfHfYGTrfvbnjT6jH7756tbB9H f8hhgtrfvhjhjh776tbb9hg4vqbnj7567ghigfhfyt6ghyhhhuujpfyf4 0GhIGfHfQbnj756YT64V
9 목포해양대해양컴퓨터공학과 S/MIME 내용유형 (4) 봉함데이터복호화 수신자는우선 base64 부호화처리 수신자의개인키로세션키를회수 세션키를이용해서메시지내용을복구
S/MIME 내용유형 (5) 서명데이터 서명데이터 (signeddata) MIME 개체준비 1. 메시지다이제스트알고리즘을선택 (SHA 혹은 MD5). 2. 서명될내용의메시지다이제스트나해시함수값을계산 3. 서명자의개인키를이용해서메시지다이제스트를암호화 4. 서명자정보 (SignerInfo) 라고알려진블록을준비 서명자의공개키인증서 메시지다이제스트알고리즘식별자 메시지다이제스트암호화에사용한알고리즘식별자 암호화된메시지다이제스트 10
S/MIME 내용유형 (6) 서명데이터예 Content-Type: application/pkcs7-mime; smime-type=signed-data; name=smime.p7m Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=smime.p7m 567GhIGfHfYT6ghyHhHUujpfyF4f8HHGTrfvhJhjH776tbB9HG4VQbnj7 77n8HHGT9HG4VQpfyF467GhIGfHfyT6rfvbnj756tbBghyHhHUujhJhjH HUujhJh4VQpfyF467GhIGfHfYGTrfvbnjT6jH7756tbB9H7n8HHGghyHh 6YT64V0GhIGfHfQbnj75 11
S/MIME 내용유형 (7) 서명된메시지복호화와서명확인 수신자는우선 base64 부호화를처리 서명자의공개키를이용해메시지다이제스트를복호화 서명확인을위해독립적으로메시지다이제스트를계산하고그것을복호화한메시지다이제스트와비교 12
S/MIME 내용유형 (8) 명문서명 명문서명 (clear signing) 은서명된서브유형을갖는멀티파트내용유형을사용하여얻을수있다 서명될메시지를변환하지않는다 MIME 기능은있지만 S/MIME 기능이없는수신자도수신메시지를읽어볼수있다 13
S/MIME 내용유형 (9) 멀티파트 / 서명메시지구성 첫째파트 모든 MIME 유형가능 송신자로부터전송되는도중에변경되지않아야함 7비트유형이아니면 base64나인용인쇄로부호화 서명데이터처리와동일하게처리 메시지내용필드가비어있는서명데이터형식의개체생성 이객체는별도서명 Base64 로부호화 두번째파트 MIME 내용유형의응용과서브유형 pkcs7-signature 14
S/MIME 내용유형 (10) 멀티파트 / 서명메시지구성 ( 계속 ) Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha1; boundary=boundary42 두파트명문서명을나타냄 --boundary42 Content-Type: text/plain 사용된메시지다이제스트유형을나타냄 This is a clear-signed message. --boundary42 Content-Type: application/pkcs7-signature; name=smime.p7s Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=smime.p7s ghyhhhuujhjhjh77n8hhgtrfvbnj756tbb9hg4vqpfyf467ghigfhfyt6 4VQpfyF467GhIGfHfYT6jH77n8HHGghyHhHUujhJh756tbB9HGTrvvbnj n8hhgtrfvhjhjh776tbb9hg4vqbnj7567ghigfhfyt6ghyhhhuujpfyf4 7GhIGfHfYT64VQbnj756 --boundary42-- 15
S/MIME 내용유형 (11) 서명확인방법 수신자는첫번째파트의메시지다이제스트를택해그것을두번째파트의서명으로부터회수한메시지다이제스트와비교하여서명을확인한다 16
S/MIME 내용유형 (12) 등록요청 응용프로그램이나사용자가공개키인증서를인증기관에요청 application/pkcs10 S/MIME 개체를이용해서인증서요청을전송 인증서요청에포함되는사항 인증서요청정보 (certificationrequestinfo) 블록 인증서주체 ( 인증될공개키의소유자 ) 의이름 사용자의공개키비트열 공개키암호알고리즘식별자 송신자의개인키로서명된인증서요청정보블록의서명 17
S/MIME 내용유형 (13) 인증서용메시지 등록요청의응답 오직인증서만포함된메시지 오직인증서취소목록 (CRL: certificate revocation list) 만을가지고있는메시지 응답메시지는초기상태 (degenerate) 의 smime-type 매개변수를가진 application/pkcs7-mime type/subtype 이다 이단계에서서명데이터메시지를만드는것과동일한방법으로처리 18
S/MIME 내용유형 (14) S/MIME 인증서처리 S/MIME 은 X.509 버전 3 규정을준수하여공개키인증서활용 키관리시스템 X.509 원래의인증서계층구조와 PGP 의웹형태신뢰구조를혼합한형태 S/MIME 관리자와사용자는각클라이언트에게신뢰할수있는키목록과인증서취소목록을제공하여클라이언트를구성 19
S/MIME 내용유형 (15) 사용자에이전트역할 S/MIME 사용자가수행할키관리기능 키생성 (Key generation): 등록 (Registration): 인증서저장과검색 (Certificate storage and retrieval): 베리사인인증서 베리사인은 S/MIME 와다양한다른응용프로그램과호환되도록하는 CA 서비스를제공 베리사인은제품이름베리사인 Digital ID 와함께 X.509 인증서를발행 20
S/MIME 내용유형 (16) 디지털 ID에포함되는내용 소유자의공개키 소유자의이름혹은별칭 (alias) 디지털 ID의만료일자 디지털 ID의순서번호 디지털 ID를발행한인증기관의이름 디지털 ID를발행한인증기관의디지털서명 추가로사용자가제공하는정보 주소 전자메일주소 기본적등록정보 ( 국가, 우편번호, 나이그리고성별 ) 21
S/MIME 내용유형 (17) 베리사인공개키인증서보안레벨 클래스 1 과클래스 2 는온라인으로처리 처리절차 클래스 1 PIN 과디지털 ID 를찾는정보를신청자가보낸전자메일주소로보내사용자의전자메일주소를확인 클래스 2 클래스 1 디지털 ID 와연관된것을검사 고객데이터베이스와자동화된비교를통해신청서의정보를확인 최종적으로사용자에게디지털 ID 가사용자의이름으로발행되었다는사실을알려주는확인정보를신청자가보내온우편주소로보낸다 클래스 3 엄격한수준의신원확인을요구 개인은자신의신분을공증한신용장을제공하여신청하거나본인이직접찾아가서신청해야만한다. 22
S/MIME 내용유형 (18) VeriSign 공개키인증서클래스 23
S/MIME 내용유형 (19) VeriSign 공개키인증서클래스 ( 계속 ) 24
강화된보안서비스 서명된수령증 (Signed receipts): 보안레이블 (Security labels): 안전한우편목록 (Secure mailing lists): 25