410 likes | 609 Views
Chap 9. 전자우편 정보보호. 목 차. 1. PGP 2. PEM. 전자우편 보안 (E-mail Security). SMTP(Simple Mail Transfer Protocol) E-mail 전송 Plaintext Form(Only ASCII text data) binary file 은 전송하지 못함 암호화된 메시지 전송 Message Encryption(binary file) uuencode
E N D
목 차 1. PGP 2. PEM
전자우편 보안(E-mail Security) • SMTP(Simple Mail Transfer Protocol) • E-mail 전송 • Plaintext Form(Only ASCII text data) • binary file은 전송하지 못함 • 암호화된 메시지 전송 Message Encryption(binary file) uuencode encrypted text file uudecode decryption Message
E-mail security tool - PGP, PEM • Electronic mail • 현재 인터넷 사용자들이 가장 많이 사용하고 있는 인터넷 서비스중의 하나 • 보안상 매우 취약한 구조를 가지고 있음 • 엽서와 같은 구조 • 해결책 : 메세지의 암호화 • 인터넷상의 E-mail 보안 도구 : PGP, PEM • confidentiality, authentication, integrity, Nonrepudiation등의 기능을 제공 next on the continued
PGP & PEM PEM PGP 1. IETF Phil Zimmerman 2. Internet 표준안 응용 프로그램 3. 이론 중심 실세계 중심 4. 중앙집중화된 키 인증 분산화된 키 인증 5. 구현이 어렵다 구현이 용이함 6. 익명의 메세지를 허용치 않음 익명의 메세지를 허용함 7. 높은 보안성 일반 용도의 보안성 (군사용, 은행 시스템) 8. 많이 사용되지 않음 많이 사용
1. PGP • 다양한 기종에서 무료로 사용 가능 (필요한 경우 상용화하여 사용 가능 • Windows, UNIX, Macintosh • 공개적 검토를 통해 대단히 안전하다고 할 수 있는 알고리즘에 기반 • RSA, IDEA, MD5 • 기업 및 개인에 이르기까지 다양한 영역에 응용성 확보 • 미국 이외의 지역에서도 사용 가능 • RSA에 대한 특허 문제는 미국 내에서만 필요
용어 표기 • KS : 관용암호에서 사용하는 세션키 • KRa : 공개키 암호 방식에서 사용되는 사용자 A의 개인키 • KUa : 공개키 암호 방식에서 사용되는 사용자 A의 공개키 • ER : RSA를 이용한 공개키 암호화 • DR : RSA알고리즘을 이용한 공개키 복호화 • EI : IDEA를 이용한 암호화 • DI : IDEA를 이용한 복호화 • H : 해쉬 함수 • || : 연접 • Z : ZIP 알고리즘을 이용한 압축 • R64 : 기수 64ASCII형식으로 변환
PGP 운영 방법 • PGP function & algorithm 기 능 알고리즘 인 증 IDEA, RSA 디지털 서명 RSA, MD5 압축 ZIP E-mail 호환 Radix-64 conversion 단편화 분할과 재결합 • PGP에서는 관용 암호 방식으로 IDEA를 사용하는데 128bit의 키가 필요 • 공개키 암호 방식으로는 RSA, 해쉬 함수로는 MD5를 사용
PGP Structure • Authentication & Digital Signature • 송신자는 메시지 생성 • MD5를 이용하여 128비트 해쉬 코드 생성 • 해쉬 값을 RSA로 암호화하여 결과값에 포함 • 수신자는 송신자의 공개키를 이용해 해쉬 코드 복호화 • 수신자는 메시지에 대한 새로운 해쉬 코드와 복호화된 코드를 비교 • 만약 두 값이 같다면 메시지는 인증된 것이다.
ERKRa[H(M)] KUa DR KRa M l l Z Z-1 compare ? H ER M H 출처 A 목적지 B PGP Structure • Authentication & Digital Signature • 인증과 전자 서명을 위해서는 RSA와 해쉬함수 MD5가 사용
PGP Structure • Confidentiality • 세션키를 통한 메시지 보호를 위해 다음과 같이 수행 • 송신자 • 메시지와 세션키로 사용될 128비트 난수 생성 • 메시지는 세션키로 IDEA를 이용하여 암호화 • 세션키는 RSA로 수신자의 공개키를 이용해 암호화 되며, 메시지에 포함 • 수신자 • 자신의 개인키로 RSA를 이용해 세션키를 알아냄 • 세션키를 이용하여 메시지를 복호화 한다.
ERKUb[Ks] KUb KRb ER Ks DR M M Z EI l l DI Z-1 PGP Structure • Confidentiality • 메세지의 기밀성을 위해서는 RSA와 IDEA가 함께 쓰인다
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 • Confidentiality & Authentication • 기밀성과 인증을 모두 보장하려면 인증을 위한 행동을 먼저 수행하고 그 결과에 기밀성을 위한 동작을 해주면 된다.
PGP Structure • Compress • 메시지 압축을 위해서는 ZIP 알고리즘을 사용 • 서명을 수행한 후에 압축을 취함으로써 암호화된 결과를 가지고 평문을 추측하는 행동을 더욱 어렵게 하고 전자 우편 전송과 화일 저장에 대해서 기억 공간을 절약한다는 이점이 있다. • E-mail compatibility • Radix-64 conversion을 통하여 3개의 8bit를 4개의 ASCII문자로 변환시킴으로서 기존의 전자 우편 시스템과의 호환성 문제를 해결 • Segmentation & Reassembly • 전자 우편 프로그램은 대개 50,000byte이하의 메시지를 한번에 전송 • PGP에서는 50,000byte이상의 메시지를 쪼개어 전송, 또한 분할된 메시지를 자동으로 결합
암호화와 키 연결 관계 • PGP에서 사용되는 암호화 키 • 세션키(IDEA 이용) • 전송 메시지 암호화에 이용, 각 세션키는 한 번만 사용됨 • 공개키(RSA 이용) • 세션키 암호화에 이용(송•수신자는 서로의 공개키 복사본 관리 필요) • 개인키 (RSA 이용) • 디지털 서명을 위한 메시지 암호화에 이용 • passphrase-based 키(IDEA 이용0 • 키 송신자가 저장하는 개인키를 암호화하는데 이용
PGP메시지의 일반 요소 • 구분 • 세션키 부분 • 서명 부분 • 메시지 부분 • 서명 부분의 구성 요소 • 타임 스템프 • 메시지 다이제스트 • 메시지 다이제스트의 맨 앞 두 옥텟 • 송신자 공개키의 키 ID
PGP 메시지의 일반 형식 수신자의 공개키 (KUb)의 키 ID Session Key Time Stamp 송신자의 공개키 (KUa)의 키 ID 메시지 다이제스트의 선행 두 옥텟 Message Digest File Name Time Stamp Data 세션키 구성요소 서명 R64 ZIP EIKs 메시지
Key Ring • 모든 키는 사용자가 효과적으로 사용할 수 있도록 체계적인 방법으로 관리, 저장될 필요가 있다. • 사용자가 소유하는 공개/개인키 쌍과 다른 사람의 공개키들을 저장하기 위한 자료 구조를 제공 • 개인키 링, 공개키 링 • 개인키 링 • 사용자 ID나 키 ID로서 색인화 • 사용자의 시스템에만 저장, IDEA를 이용하여 암호화
Key Ring(계속) • 공개키 링 • 다른 사용자와 상호 운영하기 위해서는 다른 사용자의 공개키를 가지고 있어야 함 • 사용자 ID나 키 ID로서 색인화 • attack으로부터 공개키를 보호하는 일이 가장 어려운 문제 • 공개키를 보호하는 접근법 • 실제로 가져 옴 • 전화 통화로 확인 • 양쪽이 신뢰하는 개인으로부터 • 신뢰되는 인증기관으로부터
H Passphrase 선택 IDB 선택 IDA 암호화된 개인키 키 ID 공개키 링 DI 개인키 링 공개키 KUb RNG A 세션키 Ks 출력 ER l l Radix-64 H ER l l Z M EI 암호화된 서명 + 메세지 PGP Message Transaction(송신) next on the continued
H Passphrase 선택 암호화된 개인키 선택 DI 개인키 KRb 공개키 링 공개키 KUa 수신자의 키 ID 개인키 링 DR 송신자의 키 ID 암호화된 세션키 DR 세션키 Ks Radix-64 암호화된 다이제스트 암호화된 메세지 + 서명 Z-1 DI 서명 H PGP Message Transaction(수신) Compare?
PGP 관련 파일 설명 • PGP 관련 화일 • pubring.pgp • 자신의 공개키와 다른 사람의 공개키를 함께 저장하는 화일 • 이진 형태로 저장, 일반 명령으로 확인 불능 • secring.pgp • 사용자 자신의 비밀키만을 저장 • passphrase를 IDEA의 키로 사용하여 암호화 해 놓는다. • randseed.bin • 공개/비밀키를 생성하는데 필요한 두 개의 random prime number를 선택하는데 이용되는 seed 값과 IDEA의 생산에 쓰일 seed값을 보관
PGP 관련 내용 설명 • Passphrase • 패스워드 개념 • 길이에 제한이 없으며, MD5 hash function을 거치면서 128bit의 hash code가 생성 • 128 bit IDEA의 키로 사용하여 message를 암호화하거나, RSA에서 생성된 • 비밀키를 암호화하여 개인키 링(secring.pgp)에 저장 • Fingerprint • 공개키를 MD5를 사용하여 128bit의 형태로 나타내는 것 • 각 키에 대해 고유한 값을 가진다 • 키의 신원을 확인할 수 있는 도구로 이용
PGP install • PGP를 구할 수 있는 곳 • http:// www. ifi.uio.no/pgp/ • ftp://juno.kaist.ac.kr/pub/security/pgp/ • ftp://what.snu.ac.kr/pub/pgp/ • PGP Version • PGP 2.3a • PGP 2.6ui • MIT PGP 2.6.2 • PGP 2.6.3i • PGP 3.0 • 현재 최신 version으로 PGP 5.0
2. PEM(Privacy Enhanced Mail) • 전자 우편 응용에 대한 정보보호 관련 서비스를 제공하는 인터넷 표준 • 설계 특징 • 상호 동작성 • 응용층에서 구현 • 하위 프로토콜, 운영체제, 호스트와는 독립적 • 호환성 • 기존의 우편 시스템에 도입하더라도 별도의 변경 사항이 필요 없음 • 다중 우편 전송 기능 • 다양한 사용자 인터페이스 • pc 사용자에 지원 가능 • 우편 목록 지원 • 다양한 키 관리 방법 제공 • 수동, 중앙 집중형(대칭 암호 기반), 공개키 인증서 등 지원
2.1 개요 • PEM에서 지원되는 기능 • 노출 보호 • 발신자 인증 • 메시지 무결성 • 발신처 부인 봉쇄 (비대칭 키 관리 사용시) • 지원하지 않는 기능 • 엑세스 제어, 트래픽 흐름 기밀성, 경로 제어, 다중 사용자 관리, 수신 거절 봉쇄, 참조 메시지 연동, 메시지 중복 차단 및 재 전송 방지 기능,
2.2 암호 알고리즘과 키 • 알고리즘 분석 • 메시지 암호화(DES-CBC 이용) • 메시지 => 일회용 세션키로 DES-CBC를 이용해 암호화 • 세션키 => 수신자의 공개키로 RSA를 이용해 암호화 • 인증 및 디지털 서명(MD2 OR MD5를 이용한 RSA) • 메시지 해쉬 => MD2 OR MD5 이용 • 해쉬 결과는 송신자의 개인키로 RSA를 이용해 암호화 • 인증(MD2 OR MD5 : DES-ECB OR DES-EDE) • 메시지 해쉬 => MD2 OR MD5 이용 • 해쉬 결과는 대칭 키를 이용해 DES-ECB 나 DES-EDE를 이용해 암호화
알고리즘 분석(계속) • 대칭키 관리(DES-ECB OR DES-EDE 이용) • 세션키 : 대칭키를 이용하여 DES-ECB 나 DES-EDE를 이용해 암호화 • 비대칭키 관리(RSA & MD2) • 공개키 인증서 => MD2로 해쉬 • 해쉬 결과는 RSA를 이용하여 암호화 • 세션키 => 수신자의 공개키로 RSA를 이용하여 암호화
PEM에서의 키 사용 비대칭 키 관리 대칭 키 관리 암호화를 위해 사용된 데이터 암호화키(DEK) 암호화에 사용되는 상호 교환키(IK) 암호화에 사용되는 발행자 비대칭 키 메시지 텍스트, MIC의 서명된 표현 DEK 공개키 인증서 해쉬 코드 메시지 텍스트 DEK, MIC(메시지 무결성 코드)
2.3 운영에 대한 설명 • 메시지를 정형화된 형태로 변환 • SMTP전송 형식과 로컬 형식 사이의 대응에서 변환상의 문제 발생을 없애기 위해 실행 • MIC 계산시에는 기수-64변환 이용 • 메시지 무결성과 인증 정보 생성 • MIC에 의존 • 비대칭 암호 인증(RSA 이용) • 대칭 암호 인증 중 하나를 사용(DES-ECB OR DES-EDE이용)
메시지 암호화(선택 서비스) • IK가 대칭 또는 비대칭인지에 따라 다르게 처리 • 비대칭 • EKDEK(EKRa[H(M)] • 대칭 • DEK로 암호화 하는 일은 필요치 않음 • 프린트 할 수 있는 부호화된 형태로 변환(선택서비스) • 다양한 메일 처리 시스템과의 호환성을 유지를 위해 보장 • 메시지를 프린트 가능한 부호화된 형태로 변환
PEM 메시지 전송 평문 메시지 메시지를 정형 형식으로 변환 MIC생성: 인증 정보 추가 Y 암호화가 요구되는가? 메시지 암호화: 키 정보 포함 N Y 출력 가능한 부호화가 요구되는가? 기수 64로 변환 N 처리된 메시지
PEM 메시지 수신 처리된 메시지 Y 출력 가능한 부호화를 사용했는가? 기수 64로 변환 N Y 암호화가 사용되는가? 메시지 복호화: 세션키 이용 N MIC생성: 인증 정보 추가 메시지를 정형 형식으로 변환 평문 메시지
PEM 형식(비대칭) Begin privacy-enhanced message 처리 유형 내용 도메인 메시지 텍스트 암호 알고리즘 발행 기관 발신자 ID 필드 버전/유효기간 발신자 인증서 선택사항 발신자 필드 발신자 키 정보 발행자 인증서 MIC 정보 발행 기관 수신자 ID 필드 수신자 필드 버전/유효기간 암호화된 DEK 사용자 TEXT End privacy-enhanced message
PEM 형식(대칭) Begin privacy-enhanced message 처리 유형 내용 도메인 메시지 텍스트 암호 알고리즘 엔티티 ID 발신자 ID 필드 발행 기관 발신자 필드 버전/유효기간 선택사항 발신자 키 정보 엔티티 ID 수신자 ID 필드 발행 기관 선택사항 버전/유효기간 수신자 필드 암호화된 DEK 암호화된 MIC 사용자 TEXT End privacy-enhanced message