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