280 likes | 696 Views
SSL (Secure Socket Layer). 중부대학교 정보보호학과 이병천 교수. 웹 보안 구현방법. 네트워크 계층에서의 구현방법 특징 IP 계층에 보안 기능을 둠 IP Sec 응용계층의 모든 응용서비스에 보안성 제공 VPN(Virtual Private Network) 에 적합. Application. Transport. IP Sec. Physical. 웹 보안 구현방법. 트랜스포트계층에서의 구현방법 특징
E N D
SSL (Secure Socket Layer) 중부대학교 정보보호학과 이병천 교수
웹 보안 구현방법 • 네트워크 계층에서의 구현방법 특징 IP 계층에 보안 기능을 둠 IP Sec 응용계층의 모든 응용서비스에 보안성 제공 VPN(Virtual Private Network)에 적합 Application Transport IP Sec Physical
웹 보안 구현방법 • 트랜스포트계층에서의 구현방법 특징 Transport 계층 위에 SSL에 의한 구현 응용계층의 모든 응용서비스에 보안성 제공 종단간(End-to-End) 보안성 제공 잘 정의된 보안 프로토콜 부인방지 기능이 없음(전자서명 서비스를 제공 못함) Application SSL Transport Network Physical
웹 보안 구현방법 • 응용계층에서의 구현방법 : SET, PGP, S/MIME 특징 응용계층의 응용서비스 프로토콜 내에서 보안성 구현 특정 응용서비스에 한정된 보안 요구사항을 수용 부인방지 기능 등 다양한 보안 서비스 제공(전자서명 서비스 제공) PGP SET S/MIME Application Transport Network Physical
Secure Socket Layer • SSL 개요 특징 Secure Socket Layer : de facto Standard (산업계 표준) 2 개의 Layer로 구성 1994년 Netscape사가 웹 보안 프로토콜로 제안 현재 SSL 버전 3 이 발표 1999년 IETF 에서 TLS Working Group 에서 TLS 로 발표 응용계층과 TCP 계층사이에 위치 HTTP SSL Higher Layer SSL Lower layer TCP
Secure Socket Layer • SSL 기능 특징 클라이언트 및 서버간 안전한 채널(Secure Channel) 형성 종단간(End-to-End) 보안 서비스 제공 클라이언트 및 서버 인증(Authentication) : we know who each other are 공개키 알고리즘(RSA, DSS, Diffie-Hellman) X. 509 공개키 인증서 기밀성 제공 : only you and I can see it Handshake Protocol 에 의한 비밀키(세션키) 공유 DES, RC2, RC4, 3-DES 등 무결성 제공 : no one else can change it Hashed MAC(Message Authentication Code) SHA-1(160비트), MD5(128비트)
Handshake Protocol Change Cipher Spec Alert protocol Secure Socket Layer • SSL 구조 SSL Higher Layer(제어 프로토콜) Handshake Protocol Change Cipher Spec Protocol Alert Protocol SSL Lower Layer(레코드 프로토콜) Record Protocol HTTP Record Layer TCP
Secure Socket Layer • SSL Handshake Protocol 특징 클라이언트 및 서버간 데이터를 통신하기 위한 Session 설정 클라이언트 및 서버간 Session 설정을 위하여 많은 메시지를 주고 받음 클라이언트와 서버 서로의 인증(Authentication)과정 Record Protocol 에 선행하여 수행 클라이언트와 서버 간 암호화 통신을 위한 파라메터 생성 Protocol Version (SSL) Session ID 암호화 알고리즘 , 해쉬 알고리즘 상호인증(Option, X.509) 공개키 암호알고리즘에 의한 pre-master-secret 공유
SSL 처리절차 • SSL Handshake Protocol 부분이 사용자 인증을 위해 사용됨 전송 내용 설명 Client 전송 Server 전송 Connection 설정 요청을 알림 Client Hello Server 준비 완료 상태를 알림 Server Hello Server authenticate Server 의 Certificate를 전송함 Server Certificate Session Key 를 위한 Premaster 값을 암호 할 때 이용될 키교환용 Public Key 전송 Server Key Exchange Client Certificate Request Client의 Certificate를 요청함. Server Hello done Server의 전송 작업 완료를 알림 • Client Certificate Client authenticate • Client의 Certificate를 전송함. Session Key를 위한 Premaster 값을 Server 의 키교환용 Public Key로 암호화하여 전송함. Client Key Exchange • Certificate Verify • Client Certificate 유효성 검증 Data암호화에 사용될 알고리즘 정보 전달 Change Cipher Spec Data암호화에 사용될 알고리즘 정보 전달 Change Cipher Spec Application Data를 암호화 하여 전송함. Application DATA Application DATA
Secure Socket Layer • SSL Change Cipher Spec Protocol 특징 Record Layer 에서 데이터 암호화 때 클라이언트와 서버간 서로 약속한 암호화 알고리즘(Encryption)으로암호화 한다는 것을 상대방에게 통보 Change Cipher Spec 메시지를 받으면 자신의 pending read state를 Active read state로 바꿈(Cipher Spec 변경함) Write Read Write Read Act Act Pnd Act Pnd Pnd Pnd Act null null Enc DES DES null Enc null DES DES Mac null null MD5 null MD5 Mac null MD5 MD5 Key null XXX XXX null Key XXX null XXX null
Level Description Secure Socket Layer • SSL Alert Protocol 특징 클라이언트와 서버간 보안상 문제발생시 Error Message 전달 Level에는 “fatal”과 “warning”이 있음 클라이언트와 서버는 fatal level의 alert을 받으면 즉시 Connection 중단되고 Session ID도 무효 description level 0 close-notify 10 Unexpected_message 20 Bad_record_mac 30 Decompression_failure … … w F F F . .. 1 byte 1 byte
Secure Socket Layer • SSL Record Protocol 특징 클라이언트와 서버 사이에 데이터(블록 단위)를 주고 받는 역할 한번에 주고 받을 수 있는 최대 블록 크기는 2 (16,384 바이트) 기능 합의된 MAC(Message Authentication Code)를 이용한 무결성 제공 Handshake 과정에서 합의된 암호 알고리즘과 암호 키를 이용한 암호화 기능으로 기밀성(Confidentiality) 제공 합의된 압축알고리즘을 이용한 메시지 압축(Compression) 기능 제공 14
Change Cipher Spec Change Cipher Spec App. Data App. Data Handshake Alert Handshake Alert SSL Plaintext SSL Plaintext Reassembly Fragment Fragment Fragment Fragment Fragment … … decompression Compression Compressed Compressed Security Parameters MAC Verification MAC Calculation Compressed MAC Compressed MAC Decryption Encryption Ciphertext Ciphertext Header 제거 Ciphertext SSL Header Ciphertext Secure Socket Layer • SSL Record Protocol
TLS • TLS 란? • SSL 3.0을 표준화하기 위해 제안 • IETF TLS WG에서 표준화 • V1.0 이 발표 • SSL 3.0과 차이점 • Fortezza 알고리즘이 삭제 • RSA 알고리즘을 선택적으로 사용 (특허문제) • DSS와 D-H를 반드시 등재 • HMAC 이용 • HMAC_MD5, HMAC_SHA-1 • Master_secret의 계산식이 틀려짐 • PRF (pseudo-random function)
WTLS • WTLS 란? • WAP (Wireless Application Protocol)에서 사용되는 TLS • TLS와의 차이점 • 키 교환 프로토콜로 ECC 추가 • Record 단계에서 Fragmentation 및 Compression을 하지 않음 • 여러 가지 인증서 패턴 사용 • X.509 Cert, WTLS Cert, X968 Cert • 랜덤 수 크기의 차이 • Pre_master_secret와 Master_secret는 20 byte • Server, Client random는 16 byte • Key_block의 계산식이 틀려짐
키워드 포트번호 설명 https 443/tcp SSL 기반의 HTTP를 위한 포트 ssmtp 465/tcp SSL 기반의 SMTP를 위한 포트 snews 563/tcp SSL 기반의 NEWS를 위한 포트 ssl-ldap 636/tcp SSL 기반의 LDAP를 위한 포트 spop3 995/tcp SSL 기반의 POP3을 위한 포트 SSL에서 사용하는 포트
SSL 구현 라이브러리 • SSLeay • 호주의 Eric A. Young, Tim J. Hudson 개발 • 현재 RSA사에서 연구 개발 • RSA BSAFE SSL-C • http://www.ssleay.org/ • OpenSSL • 1998년 12월부터 공개됨 • SSLeay library에 기초함 • SSL v2/v3, TLS v1 • http://www.openssl.org/