전자우편 보안 e-mail security
DESCRIPTION
전자우편 보안 E-mail Security. 목 차. PGP S/MIME. 전자우편 개요. 용어정의 SMTP (Simple Mail Transport Protocol) : TCP/IP 기반 네트워크상에 있는 다양한 서버간의 메일 수송 프로토콜 . 단 SMTP 는 7bit 의 길이를 가진 텍스트 (US-ASCII) 의 전송만을 허용함 . ESMTP (Extended SMTP) : 차세대 SMTP, “ 배달 확인” , “ 메시지 크기 제한” , “ 전송실패에 대한 재전송”등이 추가됨 - PowerPoint PPT PresentationTRANSCRIPT
전자우편 보안E-mail Security
2
목 차
PGP
S/MIME
3
전자우편 개요
용어정의 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 비트로 바꾸는방법 ( 전자 : 인코딩 , 후자 : 디코딩 )
4
전자우편 개요
메일시스템의 구성
5
전자우편 개요
전자우편의 보안 요구사항 기밀성 (Confidentiality) : 메시지 내용 누출 혹은
도청을 막음 무결성 (Integrity) 또는 메시지 인증 (Message
Authentication) : 전송된 메시지 내용이 변경여부를 확인
사용자 인증 (User Authentication 또는 Identification) : 수신자 혹은 발신자가 확인
부인방지 (Non-Repudiation) : 메시지를 보냈다는 혹은 받았다는 사실 및 그 내용을 부인을 막음
6
1. PGP (Pretty Good Privacy)
다양한 기종에서 무료로 사용 가능
Windows, UNIX, Macintosh
안전성이 검증된 알고리즘에 기반
RSA, IDEA, MD5
기업 및 개인에 이르기까지 다양한 영역에 응용가능
미국 이외의 지역에서도 사용 가능
RSA 에 대한 특허 문제는 미국 내에서만 필요
7
1.1 용어 표기
KS : 관용암호에서 사용하는 세션키
KRa : 공개키 암호 방식에서 사용되는 사용자 A 의 개인키
KUa : 공개키 암호 방식에서 사용되는 사용자 A 의 공개키
ER : RSA 를 이용한 공개키 암호화DR : RSA 알고리즘을 이용한 공개키 복호화EI : IDEA 를 이용한 암호화DI : IDEA 를 이용한 복호화H : 해쉬 함수|| : 연접Z : ZIP 알고리즘을 이용한 압축R64 : 기수 64ASCII 형식으로 변환
8
1.2 PGP 운영 방법
PGP function & algorithm
기 능 사용 알고리즘전자서명 DSS/SHA or RSA/SHA
메시지 암호화CAST/IDEA/3 DES
/Diffie-Hellman/RSA
압축 ZIP
E-mail 호환 Radix-64 conversion
단편화 분할과 재결합
9
PGP Structure
인증 (Authentication)1. 송신자는 메시지 생성
2. SHA-1 을 이용하여 160 비트 해쉬 코드 생성
3. 해쉬 값을 RSA 로 암호화하여 결과값에 포함
4. 수신자는 송신자의 공개키를 이용해 해쉬 코드 복호화
5. 수신자는 메시지에 대한 해쉬 코드와 복호화된 코드를 비교 , 만약 두 값이 같다면 메시지는 인증된 것이다 .
MH ER
l l Z-1
DR
H
KRa
Z M
ERKRa[H(M)] KUa
compare ?
출처 A
목적지 B
10
PGP Structure
기밀성 (Confidentiality) 송신자
메시지와 세션키로 사용될 128 비트 난수 생성메시지를 세션키 이용하여 암호화세션키는 RSA 로 수신자의 공개키를 이용해 암호화 되며 ,
메시지에 포함 수신자
자신의 개인키로 RSA 를 이용해 세션키를 알아냄세션키를 이용하여 메시지를 복호화 한다 .
ERKUb[Ks]
MZ EI l l
ERDR
DI Z-1 M
Ks
KRb
KUb
11
PGP Structure
비밀성과 인증 기밀성과 인증을 모두 보장하려면 인증을 위한 행동을 먼저
수행하고 그 결과에 기밀성을 위한 동작을 해주면 된다 .
H ZER l l EI l l
ER
Z-1DIM
DR
H
M
DR
Compare?
KRaKs
KUbERKUb
[Ks]ERKRa
[H(M)] KUaKRb
12
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 메시지의 일반 형식
수신자의 공개키 수신자의 공개키 (KU(KUbb)) 의 키 의 키 IDID
Session KeySession Key
Time StampTime Stamp
송신자의 공개키 송신자의 공개키 (KU(KUaa)) 의 키 의 키 IDID
메시지 다이제스트의 메시지 다이제스트의 선행 두 옥텟선행 두 옥텟
Message DigestMessage Digest
File NameFile Name
Time StampTime Stamp
DataData
세션키구성요소
서명
메시지
R64
EIKsZIP
17
Key Ring
Key Ring 모든 키는 효과적이고 체계적인 저장 , 관리 방법이
필요 . 자신의 공개 / 개인키 쌍과 다른 사람의 공개키들을
저장하기 위한 자료 구조를 제공 개인키 링 , 공개키 링
개인키 링 사용자 ID 나 키 ID 로서 색인화 사용자의 시스템에만 저장 키를 이용하여 암호화
18
Key Ring
공개키 링
상호 운영하기 위하여 타인의 공개키를 저장 함
사용자 ID 나 키 ID 로서 색인화
attack 으로부터 공개키를 보호하는 일이 가장 어려운 문제
공개키를 보호하는 접근법
물리적 전송
전화를 이용하여 확인
양쪽이 신뢰하는 개인으로부터 회득
신뢰되는 인증기관으로부터 회득
19
Key Ring
20
Key Ring
신뢰등급의 사용 키 적법성 필드 (key legitimacy field)
PGP 가 공개키의 유효성 신뢰등급을 표현
SIGTRUST 값을 합산하여 할당
서명 신뢰 필드 (signature trust field)
PGP 사용자가 공개키 서명자의 신뢰등급을 표현
대상 공개키의 ownertrust 값을 할당 , 없으면 unknown user
소유자 신뢰 필드 (owner trust field)
사용자가 공개키 소유자에 대한 신뢰등급을 표현
Ultimate trust, 소유자 불명 , 신뢰 불 , 부분신뢰 , 완전신뢰
21
PGP Trust Model
You
a b c d e f ?
?
g h i j k l m n o
p q r
s
?
?
?
??
A
? = 모 르 는 서 명 자
B = A B 는 에 의 해 서 명 됨
= 키 의 소 유 자 는 서 명 키 에 대 해 Y ou 에 의 해 신 뢰 됨
= P G P 키 는 에 의 해 합 법 하 다 고 생 각 한 다
= 키 의 소 유 자 는 서 명 키 에 대 해 Y ou 에 의 해 부 분 신 뢰 됨
22
PGP 메시지 송신
M
H
DC
H EP l l Z
EC
RNGRNG
EP l l
IDA
Passphrase
개인키 링
공개키 링
선택
선택
IDB
암호화된 개인키
키 ID
세션키 Ks
공개키 KUb
키 ID
출력
암호화된 [ 서명 + 메시지 ]
Radix-64
개인키 KRa
23
PGP 메시지 수신
암호화된
[ 서명 + 메시지 ]
수신자의 키 ID
암호화된세션키
개인키 링
HPassphrase
DC
암호화된 개인키
DP
DC
메시지
송신자의 키 ID
암호화된다이제스트
Z-1
공개키 링
선택선택
DP
H
개인키 KRb
세션키 Ks
공개키 KUa
Radix-64
Compare?
24
PGP install
PGP 를 구할 수 있는 곳 http://www.pgp.com/
PGP Version 현재 최신 version 으로 PGP 9.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 : 상업과 기관용 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
30
다목적 인터넷 메일 확장
2) MIME 내용 타입
31
다목적 인터넷 메일 확장
7 개의 주 타입과 15 개의 부 타입으로 구성됨 주 타입 : 데이터의 일반적인 유형을 선언 부 타입 : 주 타입 내에서의 특정 형식을 지정
주 타입의 의미 Text Multipart : 몸체가 다수의 독립적인 파트들을
포함하고 있을 때 지정 Message : MIME 에서 다수의 중요한 기능 ( 단편화 /
재조립 , 외부 데이터 등 ) 을 제공함 Image Video Audio Application
32
S/MIME 동작과정
33
S/MIME 기능성
일반적 기능성의 측면에서 PGP 와 유사
Secure / Multipurpose Internet Mail Extensions 평문메시지에 암호방식을 적용하여 보안성을
제공하는 방법 이 과정에서 이진값으로 암호화된 본문이나 서명부
분은 모두 MIME 으로 변환되어 전송됨 .
S/MIME 에서 암호 및 서명에 사용되는 알고리즘 해쉬알고리즘 : SHA-1, MD5 서명알고리즘 : DSS, RSA 세션키분배방식 : Diffie-Hellman, RSA 대칭키암호 ( 화 ) 알고리즘 : 3DES, RC2/40 비트
34
S/MIME 기능성
1) 기능 Enveloped Data : 임의의 타입 데이터의 암호화된 내용과 하나
이상의 다수의 수신자를 위한 암호화된 내용 암호화 키들로 구성됨
Signed Data : 디지털 서명은 서명될 내용의 메시지 다이제스트로부터 만들어져 서명자의 개인키로 암호화됨 . 서명과 내용은 base64 방식으로 부호화되며 , 서명된 데이터 메시지는 S/MIME 기능을 가진 수신자만 볼 수 있음
Clear-signed Data : 서명 데이터에서와 마찬가지로 내용의 디지털 서명이 만들어지나 , 디지털 서명만이 base64 를 이용하여 부호화됨 . 결과적으로 S/MIME 기능이 없는 수신자도 메시지 내용은 볼 수 있으나 디지털 서명의 검증은 불가능함
Signed and Enveloped Data : 암호화만하는 또는 서명만하는 개체가 중첩되는 경우 , 암호화 메시지는 서명을 , 서명 데이터는 암호화를 할 수 있음
35
S/MIME 기능성
2) 암호화 알고리즘 표 15.6 : S/MIME 에서 사용하는 암호화 알고리즘의
요약 33 개의 공개키 알고리즘을 사용개의 공개키 알고리즘을 사용
– DSS : 디지털 서명에 사용– Diffie-Hellman : 세션키 암호화에 사용– 3중 DES : 메시지 암호화
요구사항 수준 명시용 용어 MMUST : 명세의절대적 요구 사항임 SHOULD : 특별한 경우 정당한 이유로써 무시할
수 있으나 , 가급적 구현에서는 포함할 것을 권장
36
S/MIME 기능성
표 15.6 S/MIME 에 사용된 알고리즘
37
S/MIME 메시지
1) MIME 실체 보안 S/MIME 은 서명 , 암호화 또는 두 기능 모두로서
MIME 실체를 보호함 MIME 실체란 하나의 전체 메시지를 , 내용 타입이
multipart 인 경우는 그 메시지의 하나 이상의 서브 파트를 의미함
모든 전송될 메시지는 규범적 양식으로 변환됨 그 후 전송 부호화가 적용됨
38
S/MIME 메시지
2) 봉인된 데이터 EnvelopedData MIME 실체의 준비 과정
1. 특정 대칭키 알고리즘 (RC2/40 or triple DES) 을 위한 의사난수 세션키를 생성
2. 각 수신자에 대하여 수신자의 RSA 공개키로서 세션키 암호화
3. 각 수신자에 대하여 송신자의 공개키 인증서 , 세션키 암호화에 사용된 알고리즘 식별자와 암호화된 세션키를 포함하는 RecipientInfo 로 부르는 블록을 준비
4. 세션키로서 메시지를 암호화 RecipientInfo 와 암호화된 메시지 Envelopeddata 로 구성됨 암호화 메시지의 복원
먼저 base64 부호화를 복원 수신자의 개인키로 세션키를 복원 세션키를 이용하여 메시지의 복원
39
S/MIME 메시지
3) 서명 데이터 signedData MIME 실체의 준비 과정
1. 메시지 다이제스트 알고리즘 (SHA or MD5) 을 선택2. 서명될 내용의 MD 또는 해쉬 함수를 계산3. 서명자의 개인키로 MD 를 암호화4. 서명자의 공개키 인증서 , MD 알고리즘 식별자와 MD
암호화 알고리즘의 식별자 , 암호화된 MD 를 포함하는 SignerInfo 로 부르는 블록을 준비
서명의 복원 먼저 base64 부호화를 복원 서명자의 공개키로 MD 를 복원 독립적으로 MD 를 계산하여 MD 와 비교함으로써 서명을
검증
40
S/MIME 메시지
4) 순수 서명 서명될 메시지의 변형 처리는 하지 않으므로
메시지는 평문 상태로 전송됨 signed 서브 타입의 multipart 내용 타입을 이용하여 순수 서명이 얻어짐
첫 파트에서 MD 를 가져와 둘째 파트에 있는 서명으로부터 MD 를 복원하여 비교함으로써 서명을 검증함
41
S/MIME 메시지
5) 등록 요청 응용 /pkcs10 S/MIME 실체가 인증 요청의 전송에
사용됨 인증 요청은 certificationRequestInfo 블록 , 공개키
알고리즘 식별자 , 송신자의 개인키로 암호화하여 만든 certificationRequestInfo 블록의 서명의 내용을 포함함
certificationRequestInfo 블록은 인증서 주체의 이름과 공개키를 포함함
6) 인증전용 메시지 인증서만 혹은 CRL 만의 메시지가 인증 요청의
응답으로 전송됨 처리 과정은 signedData 에서와 유사함
42
S/MIME 인증서 처리
S/MIME 은 X.509 의 공개키 인증서를 사용함
서명의 검증과 메시지의 암호화에 필요한 인증서의 유지관리 책임이 local(User Agent) 에 있으며 , 인증서의 서명은 인증기관이 수행함
1) 사용자 대행자 역할 S/MIME 사용자는 몇 가지의 키 관리기능을 수행함 키 생성 : 관리 기능을 수행하는 사용자는 Diffie-Hellman 과
DSS 키 쌍의 생성 기능을 MUST 가져야 하고 , RSA 키 쌍의 생성 기능은 SHOULD 가져야 함
등록 : 사용자의 공개키는 X.509 공개키 인증서를 받기 위하여 인증기관과 함께 등록되어야 함
인증서 저정과 검색 : 들어오는 서명의 검증과 나가는 메시지의 암호화를 위한 인증서의 지역 목록의 접근
43
S/MIME 인증서 처리
2) VeriSign 인증서 CA 서비스 제공 회사 : Nortel, VeriSign, GTE, U.S. Postal
Service 등 Verisign 은 “ VeriSign Digital ID” 라는 상품명으로 X.509
인증서를 발행함 Digital ID 의 내용
타입과 이용에 따라 포함 정보가 달라짐 필수 항목
– 소유자의 공개키 , 소유자의 이름 또는 별명 , Digital ID의 만료일 ,
– Digital ID 의 일련 번호 사용자 제공 항목
– 주소 , 전자우편주소 , 기본등록정보 ( 국가 , 우편번호 , 나이 , 성별 )
44
S/MIME 인증서 처리
표 15.8 VeriSign 공개키 인증서의 부류
45
가지의 향상된 보안 서비스가 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 임
향상된 보안 서비스