(c) Byoungcheon Lee, Joongbu Univ. 전자우편 보안 중부대학교 정보보호학과 이병천 교수 (c) Byoungcheon Lee, Joongbu Univ.
(c) Byoungcheon Lee, Joongbu Univ. 목 차 전자우편보안 개요 PGP (Pretty Good Privacy) PGP에서 제공하는 보안 서비스 PGP의 메시지의 구조 PGP 키 인증 PGP의 기능 및 동작 S/MIME S/MIME이 제공하는 보안 서비스 S/MIME 인증서 S/MIME의 동작 S/MIME 메시지의 생성 (c) Byoungcheon Lee, Joongbu Univ.
(c) Byoungcheon Lee, Joongbu Univ. 1. 전자우편 보안 개요 전자우편이란 현재 인터넷 사용자들이 가장 많이 사용하고 있는 인터넷 서비스중의 하나 송신자가 수신자에게 일방향으로 메시지 전달 보안상 매우 취약한 구조를 가지고 있음 프라이버시 문제 : 엽서와 같은 구조 인증 문제 : 남이 내 이름을 빌어 메일을 보낼 수 있음 전자우편의 보안요구사항 기밀성 인증성 (부인방지) : 신분인증, 메시지인증 무결성 (c) Byoungcheon Lee, Joongbu Univ.
(c) Byoungcheon Lee, Joongbu Univ. 보안 기법 암호화 : 기밀성 제공 대칭키 암호화 : 메시지 본문을 암호화 공개키 암호화 : 키를 암호화 전자서명 : 인증성 제공 해쉬함수 : 무결성 제공 메시지 압축 : 통신량 감소, 기밀성 향상 사용자 인증 : 상대방의 신분 인증 (신뢰 및 분쟁시 문제 해결) PKI 이용 : S/MIME 방식 다른 방법 이용 : PGP 방식 (c) Byoungcheon Lee, Joongbu Univ.
(c) Byoungcheon Lee, Joongbu Univ. 전자우편 어플리케이션 POP3 소프트웨어: Outlook, Eudora 등 웹메일 기존의 소프트웨어에 보안기능을 어떻게 적용할 것인가? (c) Byoungcheon Lee, Joongbu Univ.
(c) Byoungcheon Lee, Joongbu Univ. 2. PGP PGP (Pretty Good Privacy) 1991년 미국의 Phil Zimmermann에 의해서 개발된 대표적인 전자우편 보안 도구. 구현이 용이하고 일반적으로 사용된 알고리즘의 안전성이 높기 때문에 일반 대중에게 널리 사용. 정부나 특정 단체에서 만든 것이 아니라 개인이 만들어 무료로 배포. 암호화 알고리즘을 이용하여 기밀성, 인증, 무결성, 부인방지 등의 기능을 지원. http://www.pgpi.com (c) Byoungcheon Lee, Joongbu Univ.
(c) Byoungcheon Lee, Joongbu Univ. PGP 기능과 사용 암호 알고리즘 기 능 사용 암호 알고리즘 메시지 기밀성 IDEA,CAST,Triple-DES 전자서명 (무결성, 사용자 인증, 송신자 부인 봉쇄) RSA,DSS/Diffie-Hellman, SHA-1,MD5,RIPEMD-160 압축 ZIP 전자우편 호환성 Radix-64 conversion (c) Byoungcheon Lee, Joongbu Univ.
(c) Byoungcheon Lee, Joongbu Univ. PGP의 메시지의 구조 수신자의 공개키 (KUb)의 키 ID Session Key Time Stamp 송신자의 공개키 (KUa)의 키 ID 메시지 다이제스트의 선행 두 옥텟 Message Digest File Name Data 세션키 구성요소 서명 메시지 R64 EIKs ZIP KUb=사용자 b의 공개키 KUa=사용자 a의 공개키 Ks=세션키 ER=암호화기능 EI=IDEA복호화 기능 ZIP=PKZIP 압축 기능 R64=Radix-64변환 기능 (c) Byoungcheon Lee, Joongbu Univ.
(c) Byoungcheon Lee, Joongbu Univ. PGP의 메시지의 구조 메시지 Timestamp : 데이터가 만들어진 시각이 들어감. 서명 Timestamp : 서명이 만들어진 시각이 들어감. Message Digest의 선행 두 옥텟 : 암호화된 Message Digest를 모두 비교하면 시간이 오래 걸리므로 앞의 16비트만 비교하기 위해서 필요한 부분. Message Digest : 서명이 생성된 시각의 Timestamp와 데이터를 해쉬함수로 다이제스트 시킨 것을 나타낸다. 세션키 구성요소 Session Key 메시지를 암호화하고 복호화하는 용도에 사용. 이 세션키는 수신자의 공개키를 이용하여 암호화한다. 수신자의 공개키의 키 ID 공개키 KUa의 키 ID는 KUa mod 264 와 합동이다. (c) Byoungcheon Lee, Joongbu Univ.
(c) Byoungcheon Lee, Joongbu Univ. Key Ring 필요성 모든 키는 사용자가 효과적으로 사용할 수 있도록 체계적인 방법으로 관리, 저장될 필요가 있다. 사용자가 소유하는 공개/개인키 쌍과 다른 사람의 공개키들을 저장하기 위한 자료 구조를 제공 개인키 링, 공개키 링 개인키 링 사용자 ID나 키 ID로서 색인화 사용자의 시스템에만 저장, IDEA를 이용하여 암호화 (c) Byoungcheon Lee, Joongbu Univ.
(c) Byoungcheon Lee, Joongbu Univ. Key Ring 공개키 링 다른 사용자와 상호 운영하기 위해서는 다른 사용자의 공개키를 가지고 있어야 함 사용자 ID나 키 ID로서 색인화 attack으로부터 공개키를 보호하는 일이 가장 어려운 문제 공개키를 보호하는 접근법 실제로 가져 옴 전화 통화로 확인 양쪽이 신뢰하는 개인으로부터 신뢰되는 인증기관으로부터 (c) Byoungcheon Lee, Joongbu Univ.
(c) Byoungcheon Lee, Joongbu Univ. PGP 키 인증 문제점 사용자 A의 키라고 받은 키가 정말로 A의 키인지를 확인하는 것은 어렵다. PGP에서는 사용자들간의 신뢰도를 계산하여 키의 진위를 결정한다. 이러한 키의 인증 과정에서 필요한 값들은 Public key ring의 Owner_trust, Key_legitimacy, Signature, Signature_trust 이 있다. (c) Byoungcheon Lee, Joongbu Univ.
(c) Byoungcheon Lee, Joongbu Univ. PGP 키 인증 Key_legitimacy 사용자가 A의 키라고 되어 있는 키를 받았을 때 이 키가 어느 정도 A인지를 나타내는 필드이다. 값은 다른 필드의 값을 참고하여 PGP가 자동으로 계산한다. Undefined : 사용자가 알고 있는 사람의 서명이 없을 때 Untrusted : 사용자가 불신하고 있는 사람의 서명이 있을 때 Marginal trust : 사용자가 어느 정도 믿는 사람의 서명이 있을 때 Complete trust : 사용자가 완전히 믿는 사람의 서명이 있을 때 마지막을 제외한 값을 가지고 있는 키는 사용할 때 경고 메시지가 보여진다. (c) Byoungcheon Lee, Joongbu Univ.
(c) Byoungcheon Lee, Joongbu Univ. PGP 키 인증 Signature trust 키에 서명이 붙을 때 그 서명을 붙인 사람에 대한 신뢰도가 필요하다. 이러한 정보가 들어가 있다. PGP가 자동으로 계산한다. Undefined trust Untrusted to sign other keys Usually trusted to sign other keys Always trusted to sign other keys Ultimate trust (c) Byoungcheon Lee, Joongbu Univ.
(c) Byoungcheon Lee, Joongbu Univ. PGP 키 인증 Owner_trust 사용자가 A에 대해서 중재자로서의 평가를 하는 부분이다. 사용자가 직접 입력해 주는 부분 Undefined trust Untrusted to sign other keys Usually trusted to sign other keys Always trusted to sign other keys Ultimate trust (c) Byoungcheon Lee, Joongbu Univ.
(c) Byoungcheon Lee, Joongbu Univ. PGP의 기능 및 동작 기밀성 (암호화) IDEA, CAST, Triple-DES 등의 알고리즘이 사용된다. ERKUb[Ks] M Z EI l l ER DR DI Z-1 Ks KRb KUb 공개키 암호 연접 압축 대칭키 암호 송신자 A 수신자 B (c) Byoungcheon Lee, Joongbu Univ.
(c) Byoungcheon Lee, Joongbu Univ. PGP의 기능 및 동작 메시지 인증 (전자서명) RSA와 MD5가 사용된다. ERKRa[H(M)] KUa DR KRa M l l Z Z-1 compare ? H ER M 해쉬 서명 H 검증 송신자 A 수신자 B (c) Byoungcheon Lee, Joongbu Univ.
(c) Byoungcheon Lee, Joongbu Univ. PGP의 기능 및 동작 기밀성 및 인증 H Z ER l l EI Z-1 DI M DR Compare? KRa Ks KUb ERKUb[Ks] ERKRa[H(M)] KUa KRb 서명 암호화 복호화 서명검증 송신자 A 수신자 B (c) Byoungcheon Lee, Joongbu Univ.
(c) Byoungcheon Lee, Joongbu Univ. PGP의 기능 및 동작 압축 ZIP알고리즘을 사용하여 압축 전자 우편 호환성 PGP를 사용해 생성된 파일들은 연속적인 8비트의 흐름으로 이루어지지만 대개의 전자우편 시스템은 ASCII문자만을 인식한다. 그래서 Radix-64 conversion을 통하여 세 개의 8비트를 4개의 ASCII문자로 변환시킨다. 분할 및 재결합 대개의 전자 우편 프로그램은 최대 메시지의 길이를 제한하여 50,000바이트 이하의 메시지만 한번에 보낼 수 있다. 하지만 PGP는 큰 메시지를 자동으로 나누어 보낸다. 또한 분할된 메시지를 자동으로 결합해 준다. (c) Byoungcheon Lee, Joongbu Univ.
(c) Byoungcheon Lee, Joongbu Univ. 3. S/MIME 인터넷 전자 메일의 구성 헤더: 메시지 전송과 관련된 주요 정보 보디: 메시지 내용 MIME (Multipurpose Internet Mail Extension) 보디 부분을 어떻게 구성할 것인가에 대한 정의를 나타낸다. 텍스트 이외의 음성, 영상, 문서, 첨부화일 등을 메일 메시지 형태로 구성하는 방법에 대한 정의 MIME 객체 S/MIME (Secure MIME) 응용계층에서 보안을 제공하는 가장 대표적인 시스템 MIME 객체에 암호화와 전자서명 기능을 추가한 프로토콜. 전자우편에 국한하여 보안을 제공하지는 않는다. (c) Byoungcheon Lee, Joongbu Univ.
(c) Byoungcheon Lee, Joongbu Univ. S/MIME이 제공하는 보안 서비스 보안서비스 보안 메커니즘 암호 알고리즘 메시지 기밀성 암호화 Triple-DES 메시지 무결성 해쉬함수 SHA-1 사용자 인증 공개키 인증 x.509 v3인증서 부인방지 전자 서명 DSA (c) Byoungcheon Lee, Joongbu Univ.
(c) Byoungcheon Lee, Joongbu Univ. S/MIME 인증서 S/MIME 인증서 X.509 인증서에 포함된 공개키를 이용해 보안 메커니즘을 이용 공개키 인증서 발행 절차 사용자는 웹 브라우저를 이용해 인증서 발행 기관에 접속, 이때 자신의 비밀키와 공개키를 만든다. 자신의 공개키, 전자우편 주소와 같은 사용자 정보를 작성 및 전송 인증기관에서는 X.509 형태의 S/MIME 인증서를 발행. (c) Byoungcheon Lee, Joongbu Univ.
(c) Byoungcheon Lee, Joongbu Univ. S/MIME의 동작 S/MIME의 동작 사용자는 수신자에게 보낼 메시지를 작성 (MIME형태로). 전자서명, 암호화, 전자서명/암호화 3개 중 택한다. 그러면 S/MIME 어플리케이션은 MIME형태의 메시지를 S/MIME 메시지로 변환한 후 전송 수신자는 메일을 복호화, 전자서명 확인 등을 통하여 메일을 확인한다. (c) Byoungcheon Lee, Joongbu Univ.
(c) Byoungcheon Lee, Joongbu Univ. S/MIME의 동작 전자서명 메시지 생성 절차 원본 메일을 MIME형태로 변환. 해쉬 함수를 사용하여 20바이트의 해쉬값을 생성한다. 이것을 자신의 비밀키로 전자서명 한다. 이 데이터는 PKCS #7에 정의된 형태로 만들어진다. 이진 형태의 전자서명 데이터는 전송을 위해 사용되는 base-64 인코딩 처리를 한다. 생성된 전자서명 데이터는 Content-Type:application/x-pkcs7-signature을 이용해 MIME형태로 변환된다. 마지막으로 원본 메시지와 전자서명 데이터를 “Content-Type:multipart/signed”를 사용해 MIME 형태로 변환하여 합친다. (c) Byoungcheon Lee, Joongbu Univ.
(c) Byoungcheon Lee, Joongbu Univ. S/MIME의 동작 메시지 암호화 절차 원본 메시지를 MIME형태로 변환 송신자는 암호화에 사용될 비밀키 생성 비밀키는 수신자의 공개키로 암호화되어 의도하는 수신자 외에는 볼 수 없도록 한다. 생성된 비밀키와 RC2와 같은 알고리즘으로 암호화된다. 이 데이터에 대해 ASN.1에 따른 BER로 변환하고, base-64 인코딩 한다. 마지막으로 암호화가 수행된 데이터는 “Content-Type:application/x-pkcs7-mime”를 사용한 MIME형태로 변환한다. (c) Byoungcheon Lee, Joongbu Univ.
(c) Byoungcheon Lee, Joongbu Univ. S/MIME V2와 V3 비교 비교 항목 (알고리즘) S/MIME v2 S/MIME v3 해쉬 알고리즘 MD5 SHA-1 전자 서명 RSA DSA 공개키 암호 알고리즘 Diffie-Hellman 대칭키 암호 알고리즘 40bit RC2 Triple-DES (c) Byoungcheon Lee, Joongbu Univ.
전자우편 보안 시스템의 비교 안전한 전자우편 시스템 비고 PEM (Privacy Enhanced Mail) IETF Internet 표준안 중앙 집중화 된 키 인증, 구현이 어렵다 높은 보안성(군사용, 은행 시스템) 많이 사용되지 않음 PGP (Pretty Good Privacy) Phil Zimmerman 이 개발 분산화 된 키 인증 구현이 용이 일반 용도의 보안성 많이 사용 S/MIME RSA Data Security,Inc개발 전자우편 메시지 표준(MIME)기반 다양한 상용 툴 킷 x.509인증지원 PGP/MIME 전자우편 메시지 표준(MIME)기반 PGP암호 기법+전자우편 시스템 x.509인증서 지원 안됨 (c) Byoungcheon Lee, Joongbu Univ.
(c) Byoungcheon Lee, Joongbu Univ. Questions 인터넷 이용자들이 많이 사용하는 어플리케이션 중에서 전자우편과 같은 보안서비스가 필요한 것에는 어떤 것들이 있는가? 위에서 제시한 어플리케이션에서는 어떤 보안서비스가 필요한가? 위의 보안서비스를 제공할 수 있는 방법은 무엇인가? (c) Byoungcheon Lee, Joongbu Univ.