SSL/TLS 군산대학교 전자정보공학부 보안 및 이동컴퓨팅 연구실.

Slides:



Advertisements
Similar presentations
ISA 662 SSL Prof. Ravi Sandhu. 2 © Ravi Sandhu SECURE SOCKETS LAYER (SSL) layered on top of TCP SSL versions 1.0, 2.0, 3.0, 3.1 Netscape protocol later.
Advertisements

SSL/TLS Protocol Network Security Gene Itkis. Basic paradigmatic application: on-line purchase Client contacts Server (possibly for the first time) Spontaneity.
Computer Science CSC 474Dr. Peng Ning1 CSC 474 Information Systems Security Topic 4.5 Transport Layer Security.
Cryptography and Network Security Chapter 16
Web security: SSL and TLS
Spring 2012: CS419 Computer Security Vinod Ganapathy SSL, etc.
1 Lecture 12 SSL/TLS (Secure Sockets Layer / Transport Layer Security) CIS CIS 5357 Network Security.
Lecture 6: Web security: SSL
TLS Introduction 14.2 TLS Record Protocol 14.3 TLS Handshake Protocol 14.4 Summary.
SMUCSE 5349/49 SSL/TLS. SMUCSE 5349/7349 Layers of Security.
Cryptography and Network Security
Secure Sockets. Overview of Lecture We covered an overview of authenticated key exchange protocols In this lecture we will –Look at issues related to.
Secure Socket Layer.
17.1 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter 17 Security at the Transport Layer: SSL and TLS.
Internet Security CSCE 813 Transport Layer Security
Socket Layer Security. In this Presentation: need for web security SSL/TLS transport layer security protocols HTTPS secure shell (SSH)
Web Security (SSL / TLS)
Working Connection Computer and Network Security - SSL, IPsec, Firewalls – (Chapter 17, 18, 19, and 23)
7-1 Chapter 7 – Web Security Use your mentality Wake up to reality —From the song, "I've Got You under My Skin“ by Cole Porter.
1 SSL/TLS 2 Web security Security requirements Secrecy to prevent eavesdroppers to learn sensitive information Entity authentication Message authentication.
Transport Layer Security (TLS) Protocol Introduction to networks and communications(CS555) Prof : Dr Kurt maly Student:Abhinav y.
December 2006Prof. Reuven Aviv, SSL1 Web Security with SSL Prof. Reuven Aviv Dept. of Computer Science Tel Hai Academic College.
Apr 2, 2002Mårten Trolin1 Previous lecture On the assignment Certificates and key management –Obtaining a certificate –Verifying a certificate –Certificate.
Cryptography and Network Security Chapter 17
0 SSL3.0 / TLS1.0 Secure Communication over Insecure Line.
CSCE 790: Computer Network Security Chin-Tser Huang University of South Carolina.
Chapter 8 Web Security.
Announcement Final exam: Wed, June 9, 9:30-11:18 Scope: materials after RSA (but you need to know RSA) Open books, open notes. Calculators allowed. 1.
Secure Socket Layer (SSL)
SSL / TLS in ITDS Arun Vishwanathan 23 rd Dec 2003.
Behzad Akbari Spring 2012 (These slides are based on lecture slides by Lawrie Brown)
CSCE 715: Network Systems Security Chin-Tser Huang University of South Carolina.
Network Security Essentials Chapter 5
Cryptography and Network Security (CS435) Part Fourteen (Web Security)
Web Security : Secure Socket Layer Secure Electronic Transaction.
Cryptography and Network Security (SSL)
December 2008Prof. Reuven Aviv, SSL1 Web Security with SSL Network Security Prof. Reuven Aviv King Mongkut’s University of Technology Faculty of information.
Web Security Network Systems Security
SSL (TLS) Part 2 Generating the Premaster and Master Secrets + Encryption.
SMUCSE 5349/7349 SSL/TLS. SMUCSE 5349/7349 Layers of Security.
Secure Sockets Layer (SSL) Protocol by Steven Giovenco.
Web Security Web now widely used by business, government, individuals but Internet & Web are vulnerable have a variety of threats – integrity – confidentiality.
1 SSL/TLS. 2 Web security Security requirements Secrecy to prevent eavesdroppers to learn sensitive information Entity authentication Message authentication.
CSCE 715: Network Systems Security Chin-Tser Huang University of South Carolina.
8-1 CSE 4707/5850 Network Security (2) SSL/TLS. 8-2 Think about Google or YouTube  Desired properties  Indeed the other side is Google or YouTube server.
@Yuan Xue CS 285 Network Security Secure Socket Layer Yuan Xue Fall 2013.
Cryptography CSS 329 Lecture 13:SSL.
Page 1 of 17 M. Ufuk Caglayan, CmpE 476 Spring 2000, SSL and SET Notes, March 29, 2000 CmpE 476 Spring 2000 Notes on SSL and SET Dr. M. Ufuk Caglayan Department.
TLS/SSL Protocol Presented by: Vivek Nelamangala Includes slides presented by Miao Zhang on April Course: CISC856 - TCP/IP and Upper Layer Protocols.
Cryptography and Network Security
CSCE 715: Network Systems Security
CSE 4095 Transport Layer Security TLS, Part II
Cryptography and Network Security
Cryptography and Network Security Chapter 16
Cryptography and Network Security
SSL (Secure Socket Layer)
Chapter 7 WEB Security.
Security at the Transport Layer: SSL and TLS
CSCE 815 Network Security Lecture 16
SSL Protocol Figures used in the presentation
Chapter 7 WEB Security.
Transport Layer Security (TLS)
Cryptography and Network Security
Presentation transcript:

SSL/TLS 군산대학교 전자정보공학부 보안 및 이동컴퓨팅 연구실

Agenda SSL (Secure Socket Layer) TLS (Transport Layer Security)

SSL / TLS SSL (Secure Socket Layer) TLS (Transport Layer Security) 배경 : 1993년 웹 서버와 브라우저간의 안전한 통신을 위해 Netscape 社에 의해 개발 특징 : 세션계층에서 적용되며, 응용계층의 FTP, TELNET, HTTP등의 프로토콜의 안전성 보장 서버 인증, 클라이언트 인증, 기밀성 보장 현황 및 전망 : 현재 많은 전자 쇼핑 몰 업체에서 채택, 운영 TLS (Transport Layer Security) 배경 : SSL 3.0 이 표준화된 이후 IETF는 1996년 6월부터 TLS 프로토콜에 대한 표준화 (SSLv3.1) Backward compatible with SSLv3 특징 : SSL 3.0을 기반으로 한 업그레이드 프로토콜 현황 및 전망 : 현재 TLS 1.0이 발표, 지속적 개발 예상

SSL in USE

SSL 의 기능 서버 인증 기능 클라이언트 인증 암호화된 SSL 연결 사용자는 서버의 신원을 확인 서버의 certificate 와 public ID가 정당 확인 클라이언트의 신뢰 된 인증 기관들의 목록에 서버의 인증 기관이 포함되었는지를 확인 (표준 공개키 암호화 기술을 사용) 클라이언트 인증 서버는 클라이언트의 신원을 확인 클라이언트의 certificate 와 public ID가 정당 확인 서버의 신뢰 된 인증기관 들의 목록에 클라이언트의 인증 기관이 포함되었는지를 확인 (표준 공개키 암호화 기술을 사용) 암호화된 SSL 연결 클라이언트와 서버 사이에 송/수신 되는 모든 정보는 암호화/복호화 + 무결성

SSL Architecture connection session Suitable type of service Peer-to-peer relationship session By handshake protocol

SSL의 구조 Management of SSL Real security service Handshake Protocol Parameters (Session key, cryptography algorithm, authentication) Change Cipher Spec Protocol Alert Protocol Real security service SSL Record Protocol Data encryption/decryption + Integrity

SSL 프로토콜 Handshake 프로토콜 Change Cipher Spec 프로토콜 Alert 프로토콜 Record 프로토콜 서버와 클라이언트간의 상호인증을 수행하고, 사용할 키 교환 방식, 대칭키 암호 방식, HMAC 방식, 압축방식 등의 보안속성을 협상 Change Cipher Spec 프로토콜 Handshake 프로토콜에 의해 협상된 압축, MAC, 암호화 방식 등이 이후부터 적용됨을 상대방에게 알림 Alert 프로토콜 세션의 종료 또는 오류 발생시 이를 상대방에게 알림 Record 프로토콜 상위계층 메시지들이 보안성이 유지되며 전송될 수 있도록 하기 위하여, 메시지 분할, 압축, 메시지 인증, 암호화 등의 작업을 수행

SSL Record protocol

SSL Record protocol Confidentiality Message integrity using symmetric encryption with a shared secret key defined by Handshake Protocol IDEA, RC2-40, DES-40, DES, 3DES, Fortezza, RC4-40, RC4-128 message is compressed before encryption Message integrity using a MAC with shared secret key similar to HMAC but with different padding

SSL Record protocol Fragmentation Compression MAC Encryption 2^14byte(16348byte) or less Compression Optional, lossless No compression in SSLv3,TLS MAC Encryption IDEA, RC2-40, DES-40, DES, 3DES, Fortezza, RC4-40, RC4-128

SSL Record protocol SSL record header Contents type(8bits) Major Version(8bits) Minor Version(8bits) Compressed Length(16bits)

Change Cipher Spec Protocol one of 3 SSL specific protocols which use the SSL Record protocol a single message causes pending state to become current hence updating the cipher suite in use

Alert Protocol convey SSL-related alert to peer entity 2 bytes : Fatal(5), alerts(7) HTTP Hand Shake Change Cipher Alert Record Layer TCP Prot:21 Version:3.0 Len:0 Len:2 Level Desc. hand shake 과정에서 end-to-end 간의 error 발생시 Warning : 1 Fatal : 2

Handshake Protocol 한 세션동안 이용되는 암호 매개변수 생성 한 세션에서 사용되는 비밀정보를 공유

Handshake Protocol Client Hello : 지원 가능한 {암호 방식, 키교환 방식, 서명 방식, 압축 방식}을 서버에게 알림. Server Hello : 수용 가능한 {암호 방식, 키교환 방식, 서명 방식, 압축 방식}을 응답. 이때 새로운 세션 ID를 할당. Server Certificate (optional) : 서버측 공개키가 수납된 인증서를 보냄. Server Key Exchange (optional) : 서버가 직전에 송신한 Server Certificate 메시지에 수납된 인증서의 내용만으로는 클라이언트가 premaster secret 값을 생성하기에 불충분한 경우에 추가로 송신. Certificate Request (optional) : 클라이언트의 인증서를 요구. Server Hello Done : 서버의 hello 절차가 완료되었음을 알림. Client Certificate (optional) : 클라이언트측 공개키가 수납된 인증서를 보냄. Client Key Exchange : RSA 방식인 경우 클라이언트가 설정한 premaster secret 값을 서버의 공개키로 암호화 값이 수납됨. Certificate Verify (optional) : 클라이언트 자신이 Client Certificate에 수납된 공개키에 대응되는 개인키를 가지고 있음을 서명 값으로 서버에게 증명. Change Cipher Spec : 지금 암호화 방식이 변경되었으며, 이후 전송되는 것들은 모두 지금까지 협상되었던 CipherSpec과 키 값에 의해 암호화 및 압축되어 전송됨을 상대방에게 알림. Finished : 이 메시지는 지금까지의 협상 과정에서 설정된 암호화 알고리즘에 의해 암호화되어 송신되는 첫번째 메시지로서, 수신측은 이 메시지를 복호화하여 지금까지 협상절차가 정당한지를 검사함

Handshake Protocol Phase 1. Establish Security Capabilities protocol version, session ID, cipher suite, compression method, initial RN Phase 2. Server Authentication and Key Exchange key exchange, request certificate Phase 3. Client Authentication and Key Exchange client sends key exchange, certificate verificaiton Phase 4. Finish change cipher suite, finish

1 2 3 4 5 6 7 8 9 10 11 12 13 ClientHello ServerHello 클 서 라 Certificate 8 ClientKeyExchange 9 CertificateVerify 10 ChangeCipherSpec 11 Finished 6 ServerHelloDone 13 2 ServerHello 3 4 ServerKeyExchange 5 CertificateRequest 12 클 라 이 언 트 서 버 Note: Optional or situation-dependent messages that are not always sent

Phase 1. Establish Security Capabilities Client_Hello Message ClientRandomValue (32bit+28bytes) Prot:22 Version:3.0 Length… …Length Type:1 ID len Session ID CipherSuite length CipherSuite 1 CipherSuite 2 … … CipherSuite n Cmp n Cmp len Cmp 1 ……… Value Cipher Suite 0,0 0,1 0,2 0,4 SSL_NULL_WITH_NULL_NULL SSL_RSA_WITH_NULL_MD5 SSL_RSA_WITH_NULL_SHA SSL_RSA_WITH_RC4_128_MD5 0,5 SSL_RSA_WITH_RC4_128_SHA 0,7 SSL_RSA_WITH_IDEA_CBC_SHA : 0,30 SSL_FORTEZZA_DMS_WITH_RC4_128_SHA

Cipher Suite (Netscape 7.1)

Phase 1. Establish Security Capabilities (cont’d) Server_Hello Message ClientRandomValue (32bit+28bytes) Prot:22 Version:3.0 Length… …Length Type:2 ID len Session ID(option) CipherSuite Cmp Client_Hello의 cipher suite list에서 한개를 선택한다

1 2 3 4 5 6 7 8 9 10 11 12 13 ClientHello ServerHello 클 서 라 Certificate 8 ClientKeyExchange 9 CertificateVerify 10 ChangeCipherSpec 11 Finished 6 ServerHelloDone 13 2 ServerHello 3 4 ServerKeyExchange 5 CertificateRequest 12 클 라 이 언 트 서 버 Note: Optional or situation-dependent messages that are not always sent

Phase 2. Server Authentication and Key Exchange Certificate Message Certificate n Certificate 1 Prot:22 Version:3.0 Length… …Length Type:11 Certificate Chain Length ……… Certificate n Length Certificate 1 Length CA

Phase 2. Server Authentication and Key Exchange (cont’d) ServerKeyExchange Message Signed MD5 hash (16 bytes) Prot:22 Version:3.0 Length… …Length Type:12 RSA mod length mod value RSA… RSA exp length RSA exp value C = Me(mod n) e 값 n 값

Phase 2. Server Authentication and Key Exchange (cont’d) CertificateRequest Message DN(Distinguished Name) of CA 1 Prot:22 Version:3.0 Length… …Length Type:13 CT length ... CT 2 CAs length CA 1 length CT 1 CT n ……… Server가 받아들일 수 있는 인증기관 List CT Value Certificate Type 1 2 3 4 RSA sign DSS sign RSA sign with fixed Diffie-Hellman DSS sign with fixed Diffie-Hellman 5 RSA sign with ephemeral 6 DSA sign with ephemeral 20 Fortezza DMS

1 2 3 4 5 6 7 8 9 10 11 12 13 ClientHello ServerHello 클 서 라 Certificate 8 ClientKeyExchange 9 CertificateVerify 10 ChangeCipherSpec 11 Finished 6 ServerHelloDone 13 2 ServerHello 3 4 ServerKeyExchange 5 CertificateRequest 12 클 라 이 언 트 서 버 Note: Optional or situation-dependent messages that are not always sent

Phase 3. Client Authentication and Key Exchange Certificate Message If the server has requested a certificate, The client sends a certificate message

Phase 3. Client Authentication and Key Exchange (cont’d) ClientKeyExchange Message Encrypted Premaster Secret Prot:22 Version:3.0 Length… …Length Type:16 Server의 공개키로 암호화 48 bytes random value

Master Secret Generation Procedure SHA ‘A’ Premaster Secret Client Random Server Random ‘CCC’ Hash MD5 Master Secret ( 48 bytes ) Master Secret Generation Procedure ‘BB’

Key Material generation procedure SHA ‘A’ Master Secret Server Random Client Random ‘BB’ ‘CCC’ Hash MD5 Key Material . . .

1 2 3 4 5 6 7 8 9 10 11 12 13 ClientHello ServerHello 클 서 라 Certificate 8 ClientKeyExchange 9 CertificateVerify 10 ChangeCipherSpec 11 Finished 6 ServerHelloDone 13 2 ServerHello 3 4 ServerKeyExchange 5 CertificateRequest 12 클 라 이 언 트 서 버 Note: Optional or situation-dependent messages that are not always sent

Phase 4. Finish ChangeCipherSpec Message Pending CipherSpec into the current one Record Layer에서 테이터 암호화 때 클라이언트와 서버간 서로 약속한 암호화 알고리즘 사용한다는 것을 통보

Message Authentication Code Phase 4. Finish (cont’d) Finished Message Handshake message MAC Encrypted MD5 hash (16 bytes) Prot:22 Version:3.0 Len:0 56 Type:20 36 SHA hash (20 bytes) MD5 Message Authentication Code

Transport Layer Security (TLS) IETF standard RFC 4346 similar to SSLv3 with minor differences in record format version number Major : 3, minor : 1 uses HMAC for MAC has additional alert codes some changes in supported ciphers With except of Fortezza changes in certificate negotiations changes in use of padding(1,9,17…., 249bytes)