450 likes | 641 Views
ch15 – 3. 전자우편 보안 - E-mail Security -. 목 차. PGP 2. S/MIME. 전자우편 개요. 용어정의 SMTP (Simple Mail Transport Protocol) : TCP/IP 기반 네트워크상에 있는 다양한 서버간의 메일 수송 프로토콜 . 단 SMTP 는 7bit 의 길이를 가진 텍스트 (US-ASCII) 의 전송만을 허용함 .
E N D
목 차 • PGP 2. S/MIME 2
전자우편 개요 • 용어정의 • SMTP (Simple Mail Transport Protocol) : TCP/IP기반 네트워크상에 있는 다양한 서버간의 메일 수송 프로토콜. 단 SMTP는 7bit의 길이를 가진 텍스트(US-ASCII)의 전송만을 허용함. • ESMTP (Extended SMTP) : 차세대 SMTP, “배달 확인”, “메시지 크기 제한”, “전송실패에 대한 재전송”등이 추가됨 • MIME (Multipurpose Internet Mail Extensions) : 영어 외 문자나 멀티미디어데이터들을 전자우편으로 보내기 위한 기술 • POP3 (Post Office Protocol v3) : 메일서버가 보관하고 있는 편지를 클라이언트로 가져올 수 있도록 해주는 프로토콜 • IMAP (Interactive Mail Access Protocol) : 원격지의 서버에 있는 메시지들을 마치 자신의 컴퓨터에 있는 편지처럼 액세스하기 위한 방법 • Mail Encoding/Decoding : 8비트를 7비트 영문ASCII코드로 표현하는 방법과 이를 다시 8비트로 바꾸는방법(전자: 인코딩, 후자: 디코딩) 3
전자우편 개요 • 메일시스템의 구성 4
전자우편 개요 • 전자우편의 보안 요구사항 • 기밀성(Confidentiality): 메시지 내용 누출 혹은 도청을 막음 • 무결성(Integrity) 또는 메시지 인증 (Message Authentication) : 전송된 메시지 내용이 변경여부를 확인 • 사용자 인증(User Authentication 또는 Identification) : 수신자 혹은 발신자가 확인 • 부인방지(Non-Repudiation): 메시지를 보냈다는 혹은 받았다는 사실 및 그 내용을 부인을 막음 5
1. PGP (Pretty Good Privacy) • 다양한 기종에서 무료로 사용 가능 • Windows, UNIX, Macintosh • 안전성이 검증된 알고리즘에 기반 • RSA, IDEA, MD5 • 기업 및 개인에 이르기까지 다양한 영역에 응용가능 • 미국 이외의 지역에서도 사용 가능 • RSA에 대한 특허 문제는 미국 내에서만 필요 6
1.1 용어 표기 KS: 관용암호에서 사용하는 세션키 KRa : 공개키 암호 방식에서 사용되는 사용자 A의 개인키 KUa : 공개키 암호 방식에서 사용되는 사용자 A의 공개키 ER : RSA를 이용한 공개키 암호화 DR : RSA알고리즘을 이용한 공개키 복호화 EI : IDEA를 이용한 암호화 DI : IDEA를 이용한 복호화 H : 해쉬 함수 || : 연접 Z : ZIP 알고리즘을 이용한 압축 R64 : 기수 64ASCII형식으로 변환 7
1.2 PGP 운영 방법 • PGP function & algorithm 8
ERKRa[H(M)] KUa DR KRa M l l Z Z-1 compare ? H ER M H 출처 A 목적지 B PGP Structure • 인증(Authentication) • 송신자는 메시지 생성 • SHA-1을 이용하여 160비트 해쉬 코드 생성 • 해쉬 값을 RSA로 암호화하여 결과값에 포함 • 수신자는 송신자의 공개키를 이용해 해쉬 코드 복호화 • 수신자는 메시지에 대한 해쉬 코드와 복호화된 코드를 비교, 만약 두 값이 같다면 메시지는 인증된 것이다. 9
ERKUb[Ks] KUb KRb ER Ks DR M M Z EI l l DI Z-1 PGP Structure • 기밀성(Confidentiality) • 송신자 • 메시지와 세션키로 사용될 128비트 난수 생성 • 메시지를 세션키 이용하여 암호화 • 세션키는 RSA로 수신자의 공개키를 이용해 암호화 되며, 메시지에 포함 • 수신자 • 자신의 개인키로 RSA를 이용해 세션키를 알아냄 • 세션키를 이용하여 메시지를 복호화 한다. 10
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 Structure • 비밀성과 인증 • 기밀성과 인증을 모두 보장하려면 인증을 위한 행동을 먼저 수행하고 그 결과에 기밀성을 위한 동작을 해주면 된다. 11
PGP Structure • 압축 • 메시지 압축은 ZIP 알고리즘을 사용 • 서명 후에 압축은 암호화문 해독을 어렵게 하고 저장공간을 절약 • E-mail 호환성 • Radix-64 conversion을 통하여 3개의 8bit를 4개의 ASCII문자로 변환시키므로 기존의 전자 우편 시스템과의 호환성 문제를 해결 • 단편화와 재조립 • 전자우편 프로그램은 대략 50Kbyte이하의 메시지를 한번에 전송 • PGP에서는 50,000byte이상의 메시지를 쪼개어 전송, 또한 분할된 메시지를 자동으로 결합 13
단편화와 재조립 14
1.3 암호화 및 키와 키링 • PGP에서 사용되는 암호화 키 • 세션키 • 하나의 메시지에 대하여 각 세션키 사용 • CAST-128과 IDEA: 128 비트 키 사용 • 3DES: 168비트 키 사용 • 공개키: 세션키 암호화에 이용(송•수신자는 서로의 공개키 복사본 관리 필요) • 개인키: 디지털 서명을 위한 메시지 암호화에 이용 • Pass phrase-based 키 • 키 송신자가 저장하는 개인키를 암호화하는데 이용 15
PGP메시지의 일반 요소 • 구분 • 세션키 부분 • 서명 부분 • 메시지 부분 • 서명 부분의 구성 요소 • 타임 스템프: 서명 시간 • 메시지 다이제스트: 160bit SHA-1 • 메시지 다이제스트의 맨 앞 두 옥텟: 복호화 키검사 • 송신자 공개키의 키 ID: 메시지 다이제스트에 사용된 공개키 식별 16
PGP 메시지의 일반 형식 수신자의 공개키 (KUb)의 키 ID Session Key Time Stamp 송신자의 공개키 (KUa)의 키 ID 메시지 다이제스트의 선행 두 옥텟 Message Digest File Name Time Stamp Data 세션키 구성요소 서명 R64 ZIP EIKs 메시지 17
Key Ring • Key Ring • 모든 키는 효과적이고 인 체계적인 저장, 관리 방법이 필요. • 자신의 공개/개인키 쌍과 다른 사람의 공개키들을 저장하기 위한 자료 구조를 제공 • 개인키 링, 공개키 링 • 개인키 링 • 사용자 ID나 키 ID로서 색인화 • 사용자의 시스템에만 저장 • 이를 이용하여 암호화 18
Key Ring (계속) • 공개키 링 • 상호 운영하기 위하여 타인의 공개키를 저장 함 • 사용자 ID나 키 ID로서 색인화 • attack으로부터 공개키를 보호하는 일이 가장 어려운 문제 • 공개키를 보호하는 접근법 • 물리적 전송 • 전화를 이용하여 확인 • 양쪽이 신뢰하는 개인으로부터 회득 • 신뢰되는 인증기관으로부터 회득 19
Key Ring (계속) • 신뢰등급의 사용 • 키 적법성 필드(key legitimacy field) • PGP가 공개키의 유효성 신뢰등급을 표현 • SIGTRUST 값을 합산하여 할당 • 서명 신뢰 필드(signature trust field) • PGP사용자가 공개키 서명자의 신뢰등급을 표현 • 대상 공개키의 ownertrust 값을 할당, 없으면 unknown user • 소유자 신뢰 필드(owner trust field) • 사용자가 공개키 소유자에 대한 신뢰등급을 표현 • Ultimate trust, 소유자 불명, 신뢰 불, 부분신뢰, 완전신뢰 21
H Passphrase 선택 IDB 선택 IDA 암호화된 개인키 키 ID 공개키 링 DC 공개키 KUb 개인키 링 개인키 KRa RNG 키 ID 세션키 Ks 출력 EP l l Radix-64 H EP l l Z M EC 암호화된[ 서명 + 메시지] PGP 메시지 송신 23
H Passphrase 선택 암호화된 개인키 선택 DC 개인키 KRb 공개키 링 공개키 KUa 개인키 링 수신자의 키 ID DP 송신자의 키 ID DP 암호화된 세션키 세션키 Ks Radix-64 암호화된 다이제스트 암호화된 [서명 +메시지] Compare? Z-1 DC 메시지 H PGP 메시지 수신 24
PGP install • PGP를 구할 수 있는 곳 • http://www.pgp.com/ • PGP Version • 현재 최신 version으로 PGP 8.0 25
2. S/MIME • S/MIME • Secure MIME(Multipurpose Internet Mail Extension) • 인터넷 전자메일 형식 표준(MIME)에 RFC 2045-2409에 정의된 RSA Data Security 기술을 기반으로 security를 향상시킨 것 • S/MIME .vs. PGP • S/MIME과 PGP는 모두 IETF standards track에 정의되어 있음 • 차이점 • S/MIME : 상업과 기관용 industry standard • PGP : 개인용 전자 메일 보안의 선택 사항 26
다목적 인터넷 메일 확장(MIME) • SMTP : • ASCII 문자로된RFC 822 형식의 메시지만 전송 가능 • MIME : • 한국어와 같이 2바이트로 구성되는 다중언어, 실행파일, 그림파일과 같은 이진파일도 SMTP로 전송될 수 있도록 ASCII코드로 변환하는 방식 • 이진데이터들을 6비트씩 분할한 후 이를 ASCII 문자로 변환하는 Base64 (또는 Radix 64)라고하는 코드변환 방식을 사용 • 전자우편 뿐만 아니라 HTTP에서도 사용됨 27
다목적 인터넷 메일 확장 (계속) • Base64 인코딩 28
다목적 인터넷 메일 확장 (계속) • Base64 인코딩 • 전송할 데이터가 “ABC”일 때, Base64 인코딩을 거치면 “ABC”를 6비트씩 분할한다. • ASCII 코드:{01000001 01000010 01000011} • 6비트씩 분할: {010000 010100 001001 000011} • 이 값의 10진 값은{16, 20, 09, 03}이다. • 이 값에 대응하는 base64 코드는 <Base64 인코딩표>를 참조하면 “Q U J D”이다. 29
다목적 인터넷 메일 확장 (계속) 2) MIME 내용 타입 31
다목적 인터넷 메일 확장 (계속) • 7개의 주 타입과 15개의 부 타입으로 구성됨 • 주 타입 : 데이터의 일반적인 유형을 선언 • 부 타입 : 주 타입 내에서의 특정 형식을 지정 • 주 타입의 의미 • Text • Multipart : 몸체가 다수의 독립적인 파트들을 포함하고 있을 때 지정 • Message : MIME에서 다수의 중요한 기능(단편화/재조립, 외부 데이터 등)을 제공함 • Image • Video • Audio • Application 32
S/MIME의 기능 • 일반적 기능성의 측면에서 PGP와 유사 • Secure / Multipurpose Internet Mail Extensions • 평문메시지에 암호방식을 적용하여 보안성을 제공하는 방법, 이 과정에서 이진값으로 암호화된 본문이나 서명부분은 모두 MIME으로 변환되어 전송됨. • S/MIME에서 암호 및 서명에 사용되는 알고리즘 • 해쉬알고리즘: SHA-1, MD5 • 서명알고리즘: DSS, RSA • 세션키분배방식: Diffie-Hellman, RSA • 대칭키암호(화) 알고리즘: 3DES, RC2/40비트 33
S/MIME 기능성 1) 기능 • Enveloped Data :임의의 타입 데이터의 암호화된 내용과 하나 이상의 다수의 수신자를 위한 암호화된 내용 암호화 키들로 구성됨 • Signed Data : 디지털 서명은 서명될 내용의 메시지 다이제스트로부터 만들어져 서명자의 개인키로 암호화됨. 서명과 내용은 base64 방식으로 부호화되며, 서명된 데이터 메시지는 S/MIME 기능을 가진 수신자만 볼 수 있음 • Clear-signed Data : 서명 데이터에서와 마찬가지로 내용의 디지털 서명이 만들어지나, 디지털 서명만이 base64를 이용하여 부호화됨. 결과적으로 S/MIME 기능이 없는 수신자도 메시지 내용은 볼 수 있으나 디지털 서명의 검증은 불가능함 • Signed and Enveloped Data : 암호화만하는 또는 서명만하는 개체가 중첩되는 경우, 암호화 메시지는 서명을, 서명 데이터는 암호화를 할 수 있음 34
S/MIME 기능성 2) 암호화 알고리즘 • 표 15.6 : S/MIME에서 사용하는 암호화 알고리즘의 요약 • 3개의 공개키 알고리즘을 사용 • DSS : 디지털 서명에 사용 • Diffie-Hellman : 세션키 암호화에 사용 • 3중 DES : 메시지 암호화 • 요구사항 수준 명시용 용어 • MUST : 명세의절대적 요구 사항임 • SHOULD : 특별한 경우 정당한 이유로써 무시할 수 있으나, 가급적 구현에서는 포함할 것을 권장 35
S/MIME 기능성 • 표 15.6 S/MIME에 사용된 알고리즘 36
S/MIME 메시지 1) MIME 실체 보안 • S/MIME은 서명, 암호화 또는 두 기능 모두로서 MIME 실체를 보호함 • MIME 실체란 하나의 전체 메시지를, 내용 타입이 multipart인 경우는 그 메시지의 하나 이상의 서브 파트를 의미함 • 모든 전송될 메시지는 규범적 양식으로 변환됨 • 그 후 전송 부호화가 적용됨 37
S/MIME 메시지 2) 봉인된 데이터 • EnvelopedData MIME 실체의 준비 과정 1. 특정 대칭키 알고리즘(RC2/40 or triple DES)을 위한 의사난수 세션키를 생성 2. 각 수신자에 대하여 수신자의 RSA 공개키로서 세션키 암호화 3. 각 수신자에 대하여 송신자의 공개키 인증서, 세션키 암호화에 사용된 알고리즘 식별자와 암호화된 세션키를 포함하는 RecipientInfo로 부르는 블록을 준비 4. 세션키로서 메시지를 암호화 • RecipientInfo 와 암호화된 메시지 Envelopeddata 로 구성됨 • 암호화 메시지의 복원 • 먼저 base64 부호화를 복원 • 수신자의 개인키로 세션키를 복원 • 세션키를 이용하여 메시지의 복원 38
S/MIME 메시지 3) 서명 데이터 • signedData MIME 실체의 준비 과정 1. 메시지 다이제스트 알고리즘 (SHA or MD5) 을 선택 2. 서명될 내용의 MD 또는 해쉬 함수를 계산 3. 서명자의 개인키로 MD를 암호화 4. 서명자의 공개키 인증서, MD 알고리즘 식별자와 MD 암호화 알고리즘의 식별자, 암호화된 MD를 포함하는 SignerInfo로 부르는 블록을 준비 • 서명의 복원 • 먼저 base64 부호화를 복원 • 서명자의 공개키로 MD를 복원 • 독립적으로 MD를 계산하여 MD와 비교함으로써 서명을 검증 39
S/MIME 메시지 4) 순수 서명 • 서명될 메시지의 변형 처리는 하지 않으므로 메시지는 평문 상태로 전송됨 • signed 서브 타입의 multipart 내용 타입을 이용하여 순수 서명이 얻어짐 • 첫 파트에서 MD를 가져와 둘째 파트에 있는 서명으로부터 MD를 복원하여 비교함으로써 서명을 검증함 40
S/MIME 메시지 5) 등록 요청 • 응용/pkcs10 S/MIME 실체가 인증 요청의 전송에 사용됨 • 인증 요청은 certificationRequestInfo 블록, 공개키 알고리즘 식별자, 송신자의 개인키로 암호화하여 만든 certificationRequestInfo 블록의 서명의 내용을 포함함 • certificationRequestInfo 블록은 인증서 주체의 이름과 공개키를 포함함 6) 인증전용 메시지 • 인증서만 혹은 CRL만의 메시지가 인증 요청의 응답으로 전송됨 • 처리 과정은 signedData에서와 유사함 41
S/MIME 인증서 처리 • S/MIME은 X.509의 공개키 인증서를 사용함 • 서명의 검증과 메시지의 암호화에 필요한 인증서의 유지관리 책임이 local(User Agent)에 있으며, 인증서의 서명은 인증기관이 수행함 1) 사용자 대행자 역할 • S/MIME 사용자는 몇 가지의 키 관리기능을 수행함 • 키 생성 : 관리 기능을 수행하는 사용자는 Diffie-Hellman과 DSS 키 쌍의 생성 기능을 MUST 가져야 하고, RSA 키 쌍의 생성 기능은 SHOULD 가져야 함 • 등록 : 사용자의 공개키는 X.509 공개키 인증서를 받기 위하여 인증기관과 함께 등록되어야 함 • 인증서 저정과 검색 : 들어오는 서명의 검증과 나가는 메시지의 암호화를 위한 인증서의 지역 목록의 접근 42
S/MIME 인증서 처리 2) VeriSign 인증서 • CA 서비스 제공 회사 : Nortel, VeriSign, GTE, U.S. Postal Service 등 • Verisign은 “VeriSign Digital ID”라는 상품명으로 X.509 인증서를 발행함 • Digital ID의 내용 • 타입과 이용에 따라 포함 정보가 달라짐 • 필수 항목 • 소유자의 공개키, 소유자의 이름 또는 별명, Digital ID의 만료일, • Digital ID의 일련 번호 • 사용자 제공 항목 • 주소, 전자우편주소, 기본등록정보(국가, 우편번호, 나이, 성별) 43
S/MIME 인증서 처리 • 표 15.8 VeriSign 공개키 인증서의 부류 44
향상된 보안 서비스 • 가지의 향상된 보안 서비스가 draft로 제안되었음 • Signed receipts : 메시지의 전달됨을 증명하기 위하여 “signed receipt”을 반환함. 발신자가 제3자에게 수신자의 메시지 수신 사실을 증명하도록 허용함. • Security labels : S/MIME에 의하여 보호되는 내용의 중요도에 관련한 보안 정보의 집합임. 접근통제(객체에 대한 접근의 허가 여부), 우선순위(secret, confidential, restricted 등), 역할 기반(which kind of people) 등을 위하여 사용됨 • Secure mailing lists : MLA(Mail List Agent)를 이용하여 단일 메시지의 다중 사용자 수신 처리 과정(수신자별 지정 암호화 등의 작업을 수행)을 처리함. MLA는 일종의 FEP임 45