전자우편 보안 e-mail security

45
전전전전 전전 E-mail Security

Upload: bradley-walter

Post on 02-Jan-2016

65 views

Category:

Documents


0 download

DESCRIPTION

전자우편 보안 E-mail Security. 목 차. PGP S/MIME. 전자우편 개요. 용어정의 SMTP (Simple Mail Transport Protocol) : TCP/IP 기반 네트워크상에 있는 다양한 서버간의 메일 수송 프로토콜 . 단 SMTP 는 7bit 의 길이를 가진 텍스트 (US-ASCII) 의 전송만을 허용함 . ESMTP (Extended SMTP) : 차세대 SMTP, “ 배달 확인” , “ 메시지 크기 제한” , “ 전송실패에 대한 재전송”등이 추가됨 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 전자우편 보안 E-mail Security

전자우편 보안E-mail Security

Page 2: 전자우편 보안 E-mail Security

2

목 차

PGP

S/MIME

Page 3: 전자우편 보안 E-mail Security

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 비트로 바꾸는방법 ( 전자 : 인코딩 , 후자 : 디코딩 )

Page 4: 전자우편 보안 E-mail Security

4

전자우편 개요

메일시스템의 구성

Page 5: 전자우편 보안 E-mail Security

5

전자우편 개요

전자우편의 보안 요구사항 기밀성 (Confidentiality) : 메시지 내용 누출 혹은

도청을 막음 무결성 (Integrity) 또는 메시지 인증 (Message

Authentication) : 전송된 메시지 내용이 변경여부를 확인

사용자 인증 (User Authentication 또는 Identification) : 수신자 혹은 발신자가 확인

부인방지 (Non-Repudiation) : 메시지를 보냈다는 혹은 받았다는 사실 및 그 내용을 부인을 막음

Page 6: 전자우편 보안 E-mail Security

6

1. PGP (Pretty Good Privacy)

다양한 기종에서 무료로 사용 가능

Windows, UNIX, Macintosh

안전성이 검증된 알고리즘에 기반

RSA, IDEA, MD5

기업 및 개인에 이르기까지 다양한 영역에 응용가능

미국 이외의 지역에서도 사용 가능

RSA 에 대한 특허 문제는 미국 내에서만 필요

Page 7: 전자우편 보안 E-mail Security

7

1.1 용어 표기

KS : 관용암호에서 사용하는 세션키

KRa : 공개키 암호 방식에서 사용되는 사용자 A 의 개인키

KUa : 공개키 암호 방식에서 사용되는 사용자 A 의 공개키

ER : RSA 를 이용한 공개키 암호화DR : RSA 알고리즘을 이용한 공개키 복호화EI : IDEA 를 이용한 암호화DI : IDEA 를 이용한 복호화H : 해쉬 함수|| : 연접Z : ZIP 알고리즘을 이용한 압축R64 : 기수 64ASCII 형식으로 변환

Page 8: 전자우편 보안 E-mail Security

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

단편화 분할과 재결합

Page 9: 전자우편 보안 E-mail Security

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

Page 10: 전자우편 보안 E-mail Security

10

PGP Structure

기밀성 (Confidentiality) 송신자

메시지와 세션키로 사용될 128 비트 난수 생성메시지를 세션키 이용하여 암호화세션키는 RSA 로 수신자의 공개키를 이용해 암호화 되며 ,

메시지에 포함 수신자

자신의 개인키로 RSA 를 이용해 세션키를 알아냄세션키를 이용하여 메시지를 복호화 한다 .

ERKUb[Ks]

MZ EI l l

ERDR

DI Z-1 M

Ks

KRb

KUb

Page 11: 전자우편 보안 E-mail Security

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

Page 12: 전자우편 보안 E-mail Security

12

PGP Structure

압축 메시지 압축은 ZIP 알고리즘을 사용 서명 후에 압축은 암호화문 해독을 어렵게 하고 저장공간을 절약

E-mail 호환성 Radix-64 conversion 을 통하여 3 개의 8bit 를 4 개의 ASCII 문자로 변환시키므로 기존의 전자 우편

시스템과의 호환성 문제를 해결

단편화와 재조립 전자우편 프로그램은 대략 50Kbyte 이하의 메시지를 한번에 전송 PGP 에서는 50,000byte 이상의 메시지를 쪼개어 전송 , 또한 분할된 메시지를 자동으로 결합

Page 13: 전자우편 보안 E-mail Security

13

단편화와 재조립

Page 14: 전자우편 보안 E-mail Security

14

1.3 암호화 및 키와 키링

PGP 에서 사용되는 암호화 키 세션키

하나의 메시지에 대하여 각 세션키 사용CAST-128 과 IDEA: 128 비트 키 사용3DES: 168 비트 키 사용

공개키 : 세션키 암호화에 이용 ( 송•수신자는 서로의 공개키 복사본 관리 필요 )

개인키 : 디지털 서명을 위한 메시지 암호화에 이용

Pass phrase-based 키키 송신자가 저장하는 개인키를 암호화하는데 이용

Page 15: 전자우편 보안 E-mail Security

15

PGP 메시지의 일반 요소

구분 세션키 부분 서명 부분 메시지 부분

서명 부분의 구성 요소 타임 스템프 : 서명 시간 메시지 다이제스트 : 160bit SHA-1 메시지 다이제스트의 맨 앞 두 옥텟 : 복호화 키검사 송신자 공개키의 키 ID: 메시지 다이제스트에

사용된 공개키 식별

Page 16: 전자우편 보안 E-mail Security

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

Page 17: 전자우편 보안 E-mail Security

17

Key Ring

Key Ring 모든 키는 효과적이고 체계적인 저장 , 관리 방법이

필요 . 자신의 공개 / 개인키 쌍과 다른 사람의 공개키들을

저장하기 위한 자료 구조를 제공 개인키 링 , 공개키 링

개인키 링 사용자 ID 나 키 ID 로서 색인화 사용자의 시스템에만 저장 키를 이용하여 암호화

Page 18: 전자우편 보안 E-mail Security

18

Key Ring

공개키 링

상호 운영하기 위하여 타인의 공개키를 저장 함

사용자 ID 나 키 ID 로서 색인화

attack 으로부터 공개키를 보호하는 일이 가장 어려운 문제

공개키를 보호하는 접근법

물리적 전송

전화를 이용하여 확인

양쪽이 신뢰하는 개인으로부터 회득

신뢰되는 인증기관으로부터 회득

Page 19: 전자우편 보안 E-mail Security

19

Key Ring

Page 20: 전자우편 보안 E-mail Security

20

Key Ring

신뢰등급의 사용 키 적법성 필드 (key legitimacy field)

PGP 가 공개키의 유효성 신뢰등급을 표현

SIGTRUST 값을 합산하여 할당

서명 신뢰 필드 (signature trust field)

PGP 사용자가 공개키 서명자의 신뢰등급을 표현

대상 공개키의 ownertrust 값을 할당 , 없으면 unknown user

소유자 신뢰 필드 (owner trust field)

사용자가 공개키 소유자에 대한 신뢰등급을 표현

Ultimate trust, 소유자 불명 , 신뢰 불 , 부분신뢰 , 완전신뢰

Page 21: 전자우편 보안 E-mail Security

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 에 의 해 부 분 신 뢰 됨

Page 22: 전자우편 보안 E-mail Security

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

Page 23: 전자우편 보안 E-mail Security

23

PGP 메시지 수신

암호화된

[ 서명 + 메시지 ]

수신자의 키 ID

암호화된세션키

개인키 링

HPassphrase

DC

암호화된 개인키

DP

DC

메시지

송신자의 키 ID

암호화된다이제스트

Z-1

공개키 링

선택선택

DP

H

개인키 KRb

세션키 Ks

공개키 KUa

Radix-64

Compare?

Page 24: 전자우편 보안 E-mail Security

24

PGP install

PGP 를 구할 수 있는 곳 http://www.pgp.com/

PGP Version 현재 최신 version 으로 PGP 9.0

Page 25: 전자우편 보안 E-mail Security

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 : 개인용 전자 메일 보안의 선택 사항

Page 26: 전자우편 보안 E-mail Security

26

다목적 인터넷 메일 확장 (MIME)

SMTP : ASCII 문자로 된 RFC 822 형식의 메시지만 전송

가능

MIME : 한국어와 같이 2 바이트로 구성되는 다중언어 ,

실행파일 , 그림파일과 같은 이진파일도 SMTP 로전송될 수 있도록 ASCII 코드로 변환하는 방식

이진데이터들을 6 비트씩 분할한 후 이를 ASCII 문자로 변환하는 Base64 ( 또는 Radix 64) 라고하는코드변환 방식을 사용

전자우편 뿐만 아니라 HTTP 에서도 사용됨

Page 27: 전자우편 보안 E-mail Security

27

다목적 인터넷 메일 확장

Base64 인코딩

Page 28: 전자우편 보안 E-mail Security

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” 이다 .

Page 29: 전자우편 보안 E-mail Security

29

Page 30: 전자우편 보안 E-mail Security

30

다목적 인터넷 메일 확장

2) MIME 내용 타입

Page 31: 전자우편 보안 E-mail Security

31

다목적 인터넷 메일 확장

7 개의 주 타입과 15 개의 부 타입으로 구성됨 주 타입 : 데이터의 일반적인 유형을 선언 부 타입 : 주 타입 내에서의 특정 형식을 지정

주 타입의 의미 Text Multipart : 몸체가 다수의 독립적인 파트들을

포함하고 있을 때 지정 Message : MIME 에서 다수의 중요한 기능 ( 단편화 /

재조립 , 외부 데이터 등 ) 을 제공함 Image Video Audio Application

Page 32: 전자우편 보안 E-mail Security

32

S/MIME 동작과정

Page 33: 전자우편 보안 E-mail Security

33

S/MIME 기능성

일반적 기능성의 측면에서 PGP 와 유사

Secure / Multipurpose Internet Mail Extensions 평문메시지에 암호방식을 적용하여 보안성을

제공하는 방법 이 과정에서 이진값으로 암호화된 본문이나 서명부

분은 모두 MIME 으로 변환되어 전송됨 .

S/MIME 에서 암호 및 서명에 사용되는 알고리즘 해쉬알고리즘 : SHA-1, MD5 서명알고리즘 : DSS, RSA 세션키분배방식 : Diffie-Hellman, RSA 대칭키암호 ( 화 ) 알고리즘 : 3DES, RC2/40 비트

Page 34: 전자우편 보안 E-mail Security

34

S/MIME 기능성

1) 기능 Enveloped Data : 임의의 타입 데이터의 암호화된 내용과 하나

이상의 다수의 수신자를 위한 암호화된 내용 암호화 키들로 구성됨

Signed Data : 디지털 서명은 서명될 내용의 메시지 다이제스트로부터 만들어져 서명자의 개인키로 암호화됨 . 서명과 내용은 base64 방식으로 부호화되며 , 서명된 데이터 메시지는 S/MIME 기능을 가진 수신자만 볼 수 있음

Clear-signed Data : 서명 데이터에서와 마찬가지로 내용의 디지털 서명이 만들어지나 , 디지털 서명만이 base64 를 이용하여 부호화됨 . 결과적으로 S/MIME 기능이 없는 수신자도 메시지 내용은 볼 수 있으나 디지털 서명의 검증은 불가능함

Signed and Enveloped Data : 암호화만하는 또는 서명만하는 개체가 중첩되는 경우 , 암호화 메시지는 서명을 , 서명 데이터는 암호화를 할 수 있음

Page 35: 전자우편 보안 E-mail Security

35

S/MIME 기능성

2) 암호화 알고리즘 표 15.6 : S/MIME 에서 사용하는 암호화 알고리즘의

요약 33 개의 공개키 알고리즘을 사용개의 공개키 알고리즘을 사용

– DSS : 디지털 서명에 사용– Diffie-Hellman : 세션키 암호화에 사용– 3중 DES : 메시지 암호화

요구사항 수준 명시용 용어 MMUST : 명세의절대적 요구 사항임 SHOULD : 특별한 경우 정당한 이유로써 무시할

수 있으나 , 가급적 구현에서는 포함할 것을 권장

Page 36: 전자우편 보안 E-mail Security

36

S/MIME 기능성

표 15.6 S/MIME 에 사용된 알고리즘

Page 37: 전자우편 보안 E-mail Security

37

S/MIME 메시지

1) MIME 실체 보안 S/MIME 은 서명 , 암호화 또는 두 기능 모두로서

MIME 실체를 보호함 MIME 실체란 하나의 전체 메시지를 , 내용 타입이

multipart 인 경우는 그 메시지의 하나 이상의 서브 파트를 의미함

모든 전송될 메시지는 규범적 양식으로 변환됨 그 후 전송 부호화가 적용됨

Page 38: 전자우편 보안 E-mail Security

38

S/MIME 메시지

2) 봉인된 데이터 EnvelopedData MIME 실체의 준비 과정

1. 특정 대칭키 알고리즘 (RC2/40 or triple DES) 을 위한 의사난수 세션키를 생성

2. 각 수신자에 대하여 수신자의 RSA 공개키로서 세션키 암호화

3. 각 수신자에 대하여 송신자의 공개키 인증서 , 세션키 암호화에 사용된 알고리즘 식별자와 암호화된 세션키를 포함하는 RecipientInfo 로 부르는 블록을 준비

4. 세션키로서 메시지를 암호화 RecipientInfo 와 암호화된 메시지 Envelopeddata 로 구성됨 암호화 메시지의 복원

먼저 base64 부호화를 복원 수신자의 개인키로 세션키를 복원 세션키를 이용하여 메시지의 복원

Page 39: 전자우편 보안 E-mail Security

39

S/MIME 메시지

3) 서명 데이터 signedData MIME 실체의 준비 과정

1. 메시지 다이제스트 알고리즘 (SHA or MD5) 을 선택2. 서명될 내용의 MD 또는 해쉬 함수를 계산3. 서명자의 개인키로 MD 를 암호화4. 서명자의 공개키 인증서 , MD 알고리즘 식별자와 MD

암호화 알고리즘의 식별자 , 암호화된 MD 를 포함하는 SignerInfo 로 부르는 블록을 준비

서명의 복원 먼저 base64 부호화를 복원 서명자의 공개키로 MD 를 복원 독립적으로 MD 를 계산하여 MD 와 비교함으로써 서명을

검증

Page 40: 전자우편 보안 E-mail Security

40

S/MIME 메시지

4) 순수 서명 서명될 메시지의 변형 처리는 하지 않으므로

메시지는 평문 상태로 전송됨 signed 서브 타입의 multipart 내용 타입을 이용하여 순수 서명이 얻어짐

첫 파트에서 MD 를 가져와 둘째 파트에 있는 서명으로부터 MD 를 복원하여 비교함으로써 서명을 검증함

Page 41: 전자우편 보안 E-mail Security

41

S/MIME 메시지

5) 등록 요청 응용 /pkcs10 S/MIME 실체가 인증 요청의 전송에

사용됨 인증 요청은 certificationRequestInfo 블록 , 공개키

알고리즘 식별자 , 송신자의 개인키로 암호화하여 만든 certificationRequestInfo 블록의 서명의 내용을 포함함

certificationRequestInfo 블록은 인증서 주체의 이름과 공개키를 포함함

6) 인증전용 메시지 인증서만 혹은 CRL 만의 메시지가 인증 요청의

응답으로 전송됨 처리 과정은 signedData 에서와 유사함

Page 42: 전자우편 보안 E-mail Security

42

S/MIME 인증서 처리

S/MIME 은 X.509 의 공개키 인증서를 사용함

서명의 검증과 메시지의 암호화에 필요한 인증서의 유지관리 책임이 local(User Agent) 에 있으며 , 인증서의 서명은 인증기관이 수행함

1) 사용자 대행자 역할 S/MIME 사용자는 몇 가지의 키 관리기능을 수행함 키 생성 : 관리 기능을 수행하는 사용자는 Diffie-Hellman 과

DSS 키 쌍의 생성 기능을 MUST 가져야 하고 , RSA 키 쌍의 생성 기능은 SHOULD 가져야 함

등록 : 사용자의 공개키는 X.509 공개키 인증서를 받기 위하여 인증기관과 함께 등록되어야 함

인증서 저정과 검색 : 들어오는 서명의 검증과 나가는 메시지의 암호화를 위한 인증서의 지역 목록의 접근

Page 43: 전자우편 보안 E-mail Security

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 의 일련 번호 사용자 제공 항목

– 주소 , 전자우편주소 , 기본등록정보 ( 국가 , 우편번호 , 나이 , 성별 )

Page 44: 전자우편 보안 E-mail Security

44

S/MIME 인증서 처리

표 15.8 VeriSign 공개키 인증서의 부류

Page 45: 전자우편 보안 E-mail Security

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 임

향상된 보안 서비스