SECURE SOCKETS LAYER (SSL)



Similar documents
SECURE SOCKETS LAYER (SSL) SECURE SOCKETS LAYER (SSL) SSL ARCHITECTURE SSL/TLS DIFFERENCES SSL ARCHITECTURE. INFS 766 Internet Security Protocols

Secure Socket Layer. Security Threat Classifications

CSC 474 Information Systems Security

CSC Network Security

SSL Secure Socket Layer

SSL Secure Socket Layer

Communication Systems SSL

Communication Systems 16 th lecture. Chair of Communication Systems Department of Applied Sciences University of Freiburg 2009

Outline. Transport Layer Security (TLS) Security Protocols (bmevihim132)

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.

Web Security Considerations

Overview of SSL. Outline. CSC/ECE 574 Computer and Network Security. Reminder: What Layer? Protocols. SSL Architecture

Communication Security for Applications

Security Protocols and Infrastructures. h_da, Winter Term 2011/2012

Information Security

Lecture 4: Transport Layer Security (secure Socket Layer)

Network Security Web Security and SSL/TLS. Angelos Keromytis Columbia University

Real-Time Communication Security: SSL/TLS. Guevara Noubir CSU610

Transport Level Security

The Secure Sockets Layer (SSL)

Managing and Securing Computer Networks. Guy Leduc. Chapter 4: Securing TCP. connections. connections. Chapter goals: security in practice:

Cryptography and Network Security Sicurezza delle reti e dei sistemi informatici SSL/TSL

SSL/TLS. What Layer? History. SSL vs. IPsec. SSL Architecture. SSL Architecture. IT443 Network Security Administration Instructor: Bo Sheng

How To Understand And Understand The Ssl Protocol ( And Its Security Features (Protocol)

Security Engineering Part III Network Security. Security Protocols (I): SSL/TLS

CS 356 Lecture 27 Internet Security Protocols. Spring 2013

Transport Layer Security (TLS)

Lecture 7: Transport Level Security SSL/TLS. Course Admin

Chapter 17. Transport-Level Security

Network Security Essentials Chapter 5

ISA 562 Information System Security

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

3.2: Transport Layer: SSL/TLS Secure Socket Layer (SSL) Transport Layer Security (TLS) Protocol

Chapter 7 Transport-Level Security

Interested in learning more about security? SSL/TLS: What's Under the Hood. Copyright SANS Institute Author Retains Full Rights

Network Security Part II: Standards

IxLoad TM : Data HTTP, SSL, and FTP

Chair for Network Architectures and Services Department of Informatics TU München Prof. Carle. Network Security. Chapter 5

HTTPS: Transport-Layer Security (TLS), aka Secure Sockets Layer (SSL)

Chapter 27 Secure Sockets Layer (SSL)

Secure Socket Layer (SSL) and Trnasport Layer Security (TLS)

Transport Layer Security Protocols

Chapter 51 Secure Sockets Layer (SSL)

Chapter 34 Secure Sockets Layer (SSL)

SSL/TLS/X.509. Aggelos Kiayias

WEB Security & SET. Outline. Web Security Considerations. Web Security Considerations. Secure Socket Layer (SSL) and Transport Layer Security (TLS)

Secure Socket Layer. Carlo U. Nicola, SGI FHNW With extracts from publications of : William Stallings.

ms-help://ms.technet.2005mar.1033/winnetsv/tnoffline/prodtechnol/winnetsv/plan/ssl...

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

Secure Socket Layer (TLS) Carlo U. Nicola, SGI FHNW With extracts from publications of : William Stallings.

Authenticity of Public Keys

Secure Sockets Layer

Web Security (SSL) Tecniche di Sicurezza dei Sistemi 1

Overview of CSS SSL. SSL Cryptography Overview CHAPTER

Network Security Protocols

Overview. SSL Cryptography Overview CHAPTER 1

Network Security. Chapter 12 Security Protocols of the Transport Layer

Protocol Rollback and Network Security

Security Protocols HTTPS/ DNSSEC TLS. Internet (IPSEC) Network (802.1x) Application (HTTP,DNS) Transport (TCP/UDP) Transport (TCP/UDP) Internet (IP)

Computer and Network Security

Lecture 10: Network Security Protocols

Secure Sockets Layer (SSL ) / Transport Layer Security (TLS) Network Security Products S31213

Three attacks in SSL protocol and their solutions

Software Engineering 4C03 Research Project. An Overview of Secure Transmission on the World Wide Web. Sean MacDonald

Lab Exercise SSL/TLS. Objective. Step 1: Open a Trace. Step 2: Inspect the Trace

Web Security. Mahalingam Ramkumar

TLS-RSA-PSK. Channel Binding using Transport Layer Security with Pre Shared Keys

SSL: Secure Socket Layer

Lab 7. Answer. Figure 1

INF3510 Information Security University of Oslo Spring Lecture 9 Communication Security. Audun Jøsang

SSL A discussion of the Secure Socket Layer

Binding Security Tokens to TLS Channels. A. Langley, Google Inc. D. Balfanz, Google Inc. A. Popov, Microsoft Corp.

Cryptography and Network Security IPSEC

Some solutions commonly used in order to guarantee a certain level of safety and security are:

Embedded SSL. Christophe Kiennert, Pascal Urien. Embedded SSL - Christophe Kiennert, Pascal Urien 1

Security Protocols/Standards

Network Security Protocols

Network Security [2] Plain text Encryption algorithm Public and private key pair Cipher text Decryption algorithm. See next slide

Learning Network Security with SSL The OpenSSL Way

TLS/SSL in distributed systems. Eugen Babinciuc

SSL and TLS. An Overview of A Secure Communications Protocol. Simon Horman aka Horms. horms@valinux.co.jp horms@verge.net.au horms@debian.

Security. Contents. S Wireless Personal, Local, Metropolitan, and Wide Area Networks 1

TLS and SRTP for Skype Connect. Technical Datasheet

Authentication applications Kerberos X.509 Authentication services E mail security IP security Web security

, SNMP, Securing the Web: SSL

SECURE SOCKET LAYER PROTOCOL SIMULATION IN JAVA. A Research Project NAGENDRA KARRI

, ) I Transport Layer Security

Network Security Standards. Key distribution Kerberos SSL/TLS

Overview SSL/TLS HTTPS SSH. TLS Protocol Architecture TLS Handshake Protocol TLS Record Protocol. SSH Protocol Architecture SSH Transport Protocol

Network Security - Secure upper layer protocols - Background. Security. Question from last lecture: What s a birthday attack? Dr.

Lab Exercise SSL/TLS. Objective. Requirements. Step 1: Capture a Trace

As enterprises conduct more and more

Today s Topics SSL/TLS. Certification Authorities VPN. Server Certificates Client Certificates. Trust Registration Authorities

The Beautiful Features of SSL And Why You Want to Use Them?

Institute of Computer Technology - Vienna University of Technology. L96 - SSL, PGP, Kerberos

Einführung in SSL mit Wireshark

Secure Communication Protocol for ATM Using TLS Handshake

Part III-b. Universität Klagenfurt - IWAS Multimedia Kommunikation (VK) M. Euchner; Mai Siemens AG 2001, ICN M NT

mod_ssl Cryptographic Techniques

Using etoken for SSL Web Authentication. SSL V3.0 Overview

Transcription:

INFS 766 Internet Security Protocols Lecture 5 SSL Prof. Ravi Sandhu SECURE SOCKETS LAYER (SSL) layered on top of TCP SSL versions 1.0, 2.0, 3.0, 3.1 Netscape protocol later refitted as IETF standard TLS (Transport Layer Security) TLS 1.0 very close to SSL 3.1 2

SECURE SOCKETS LAYER (SSL) application protocol independent does not specify how application protocols add security with SSL how to initiate SSL handshaking how to interpret certificates left to designers of upper layer protocols to figure out 3 SSL ARCHITECTURE SSL Handshake Protocol SSL Change Cipher Spec Protocol SSL Alert Protocol HTTP Other Application Protocols SSL Record Protocol TCP IP 4

SSL ARCHITECTURE Handshake protocol: complicated embodies key exchange & authentication 10 message types Record protocol: straightforward fragment, compress, MAC, encrypt Change Cipher Spec protocol: straightforward single 1 byte message with value 1 could be considered part of handshake protocol Alert protocol: straightforward 2 byte messages 1 byte alert level- fatal or warning; 1 byte alert code 5 SSL/TLS DIFFERENCES TLS uses HMAC, SSL uses a precursor TLS MAC covers compression version field in addition to what SSL MAC covers TLS defines additional alert codes other minor differences TLS has a mode to fall back to SSL 6

SSL SERVICES peer entity authentication data confidentiality data authentication and integrity compression/decompression generation/distribution of session keys integrated into protocol security parameter negotiation 7 SSL SESSIONS AND CONNECTIONS Every connection is associated with one session Session can be reused across multiple secure connections Handshake protocol establishes new session and connection together uses existing session for new connection 8

SSL SESSION SSL session negotiated by handshake protocol session ID chosen by server X.509 public-key certificate of peer possibly null compression algorithm cipher spec encryption algorithm message digest algorithm master secret 48 byte shared secret is resumable flag can be used to initiate new connections 9 SSL CONNECTION STATE connection end: client or server client and server random: 32 bytes each keys generated from master secret, client/server random client_write_mac_secret server_write_mac_secret client_write_key server_write_key client_write_iv server_write_iv compression state cipher state: initially IV, subsequently next feedback block sequence number: starts at 0, max 2 64-1 10

SSL CONNECTION STATE 4 parts to state current read state current write state pending read state pending write state handshake protocol initially current state is empty either pending state can be made current and reinitialized to empty 11 SSL RECORD 4 steps by sender (reversed by receiver) Fragmentation Compression MAC Encryption 12

SSL RECORD each SSL record contains content type: 8 bits, only 4 defined change_cipher_spec alert handshake application_data protocol version number: 8 bits major, 8 bits minor length: max 16K bytes (actually 2 14 +2048) data payload: optionally compressed and encrypted message authentication code (MAC) 13 SSL HANDSHAKE initially SSL session has null compression and cipher algorithms both are set by the handshake protocol at beginning of session handshake protocol may be repeated during the session 14

SSL HANDSHAKE Type: 1 byte 10 message types defined length: 3 bytes content 15 SSL HANDSHAKE Client Server ClientHello --------> ClientKeyExchange CertificateVerify* Finished --------> ServerHello ServerKeyExchange* CertificateRequest* <-------- ServerHelloDone <-------- Finished Application Data <-------> Application Data Fig. 1 - Message flow for a full handshake * Indicates optional or situation-dependent messages that are not always sent. 16

SSL HANDSHAKE Phase 1 Phase 2 Phase 3 Phase 4 Record Protocol Client ClientHello --------> ClientKeyExchange CertificateVerify* Finished --------> Server ServerHello ServerKeyExchange* CertificateRequest* <-------- ServerHelloDone <-------- Finished Application Data <-------> Application Data Fig. 1 - Message flow for a full handshake * Indicates optional or situation-dependent messages that are not always sent. 17 SSL HANDSHAKE Phase 1: Establish security capabilities Phase 2: Server authentication and key exchange Phase 3: Client authentication and key exchange Phase 4: Finish 18

SSL 1-WAY HANDSHAKE WITH RSA Phase 1 Phase 2 Phase 3 Phase 4 Record Protocol Client ClientHello --------> ClientKeyExchange CertificateVerify* Finished --------> Server ServerHello ServerKeyExchange* CertificateRequest* <-------- ServerHelloDone <-------- Finished Application Data <-------> Application Data Fig. 1 - Message flow for a full handshake * Indicates optional or situation-dependent messages that are not always sent. 19 SSL 2-WAY HANDSHAKE WITH RSA Phase 1 Phase 2 Phase 3 Phase 4 Record Protocol Client ClientHello --------> ClientKeyExchange CertificateVerify* Finished --------> Server ServerHello ServerKeyExchange* CertificateRequest* <-------- ServerHelloDone <-------- Finished Application Data <-------> Application Data Fig. 1 - Message flow for a full handshake * Indicates optional or situation-dependent messages that are not always sent. 20

SSL HANDSHAKE these 9 handshake messages must occur in order shown optional messages can be eliminated 10th message explained later hello_request message change_cipher_spec is a separate 1 message protocol functionally it is just like a message in the handshake protocol 21 SSL HANDSHAKE Client Server ClientHello --------> ServerHello <-------- Finished Finished --------> Application Data <-------> Application Data Fig. 2 - Message flow for an abbreviated handshake 22

SSL HANDSHAKE hello_request (not shown) can be sent anytime from server to client to request client to start handshake protocol to renegotiate session when convenient can be ignored by client if already negotiating a session don t want to renegotiate a session client may respond with a no_renegotiation alert 23 SSL HANDSHAKE Phase 1 Phase 2 Phase 3 Phase 4 Record Protocol Client ClientHello --------> ClientKeyExchange CertificateVerify* Finished --------> Server ServerHello ServerKeyExchange* CertificateRequest* <-------- ServerHelloDone <-------- Finished Application Data <-------> Application Data Fig. 1 - Message flow for a full handshake * Indicates optional or situation-dependent messages that are not always sent. 24

SSL HANDSHAKE: PHASE 1 ESTABLISH SECURITY CAPABILITIES client hello 4 byte timestamp, 28 byte random value session ID: non-zero for new connection on existing session zero for new connection on new session client version: highest version cipher_suite list: ordered list compression list: ordered list 25 SSL HANDSHAKE: PHASE 1 ESTABLISH SECURITY CAPABILITIES server hello 32 byte random value session ID: new or reuse version lower of client suggested and highest supported cipher_suite list: single choice compression list: single choice 26

SSL HANDSHAKE: PHASE 1 ESTABLISH SECURITY CAPABILITIES cipher suite key exchange method RSA: requires receiver s public-key certificates Fixed DH: requires both sides to have public-key certificates Ephemeral DH: signed ephemeral keys are exchanged, need signature keys and public-key certificates on both sides Anonymous DH: no authentication of DH keys, susceptible to man-in-the-middle attack Fortezza: Fortezza key exchange we will ignore Fortezza from here on 27 SSL HANDSHAKE: PHASE 1 ESTABLISH SECURITY CAPABILITIES cipher suite cipher spec CipherAlgorithm: RC4, RC2, DES, 3DES, DES40, IDEA, Fortezza MACAlgorithm: MD5 or SHA-1 CipherType: stream or block IsExportable: true or false HashSize: 0, 16 or 20 bytes Key Material: used to generate write keys IV Size: size of IV for CBC 28

SSL HANDSHAKE Phase 1 Phase 2 Phase 3 Phase 4 Record Protocol Client ClientHello --------> ClientKeyExchange CertificateVerify* Finished --------> Server ServerHello ServerKeyExchange* CertificateRequest* <-------- ServerHelloDone <-------- Finished Application Data <-------> Application Data Fig. 1 - Message flow for a full handshake * Indicates optional or situation-dependent messages that are not always sent. 29 SSL HANDSHAKE: PHASE 2 SERVER AUTHENTICATION & KEY EXCHANGE Certificate message server s X.509v3 certificate followed by optional chain of certificates required for RSA, Fixed DH, Ephemeral DH but not for Anonymous DH Server Key Exchange message not needed for RSA, Fixed DH needed for Anonymous DH, Ephemeral DH needed for RSA where server has signature-only key server sends temporary RSA public encryption key to client 30

SSL HANDSHAKE: PHASE 2 SERVER AUTHENTICATION & KEY EXCHANGE Server Key Exchange message signed by the server signature is on hash of ClientHello.random, ServerHello.random Server Key Exchange parameters Certificate Request message request a certificate from client specifies Certificate Type and Certificate Authorities certificate type specifies public-key algorithm and use Server Done message ends phase 2, always required 31 SSL HANDSHAKE Phase 1 Phase 2 Phase 3 Phase 4 Record Protocol Client ClientHello --------> ClientKeyExchange CertificateVerify* Finished --------> Server ServerHello ServerKeyExchange* CertificateRequest* <-------- ServerHelloDone <-------- Finished Application Data <-------> Application Data Fig. 1 - Message flow for a full handshake * Indicates optional or situation-dependent messages that are not always sent. 32

SSL HANDSHAKE: PHASE 3 CLIENT AUTHENTICATION & KEY EXCHANGE Certificate message send if server has requested certificate and client has appropriate certificate otherwise send no_certificate alert Client Key Exchange message content depends on type of key exchange (see next slide) Certificate Verify message can be optionally sent following a client certificate with signing capability signs hash of master secret (established by key exchange) and all handshake messages so far provides evidence of possessing private key corresponding to certificate 33 SSL HANDSHAKE: PHASE 3 CLIENT AUTHENTICATION & KEY EXCHANGE Client Key Exchange message RSA client generates 48-byte pre-master secret, encrypts with server s RSA public key (from server certificate or temporary key from Server Key Exchange message) Ephemeral or Anonymous DH client s public DH value Fixed DH null, public key previously sent in Certificate Message 34

SSL HANDSHAKE: POST PHASE 3 CRYPTOGRAPHIC COMPUTATION 48 byte pre master secret RSA DH generated by client sent encrypted to server both sides compute the same value each side uses its own private value and the other sides public value 35 SSL HANDSHAKE: POST PHASE 3 CRYPTOGRAPHIC COMPUTATION master_secret = PRF(pre_master_secret, "master secret", ClientHello.random + ServerHello.random) [0..47]; pre_master_secret: 48 bytes PRF is composed of a sequence and nesting of HMACs 36

SSL HANDSHAKE Phase 1 Phase 2 Phase 3 Phase 4 Record Protocol Client ClientHello --------> ClientKeyExchange CertificateVerify* Finished --------> Server ServerHello ServerKeyExchange* CertificateRequest* <-------- ServerHelloDone <-------- Finished Application Data <-------> Application Data Fig. 1 - Message flow for a full handshake * Indicates optional or situation-dependent messages that are not always sent. 37 SSL HANDSHAKE: PHASE 4 FINISH Change Cipher Spec message not considered part of handshake protocol but in some sense is part of it Finished message sent under new algorithms and keys content is hash of all previous messages and master secret 38

SSL HANDSHAKE: PHASE 4 FINISH Change Cipher Spec message 1 byte message protected by current state copies pending state to current state sender copies write pending state to write current state receiver copies read pending state to read current state immediately send finished message under new current state 39 SSL HANDSHAKE: PHASE 4 FINISH Finished message verify_data PRF(master_secret, finished_label, MD5(handshake_messages)+ SHA-1(handshake_messages)) [0..11]; finished_label For Finished messages sent by the client, the string "client finished". For Finished messages sent by the server, the string "server finished". handshake_messages All of the data from all handshake messages up to but not including this message. This is only data visible at the handshake layer and does not include record layer headers. 40

SSL ALERT 2 byte alert messages 1 byte level fatal or warning 1 byte alert code 41 SSL ALERT MESSAGES Warning or fatal close_notify(0), unexpected_message(10), bad_record_mac(20), decryption_failed(21), record_overflow(22), decompression_failure(30), handshake_failure(40), bad_certificate(42), unsupported_certificate(43), certificate_revoked(44), certificate_expired(45), certificate_unknown(46), illegal_parameter(47), unknown_ca(48), access_denied(49), decode_error(50), decrypt_error(51), export_restriction(60), protocol_version(70), insufficient_security(71), internal_error(80), user_canceled(90), no_renegotiation(100), 42

SSL ALERT MESSAGES always fatal unexpected_message bad_record_mac decompression_failure handshake_failure illegal_parameter 43 APPLICATIONS AND SSL use dedicated port numbers for every application that uses SSL de facto what is happening use normal application port and negotiate security options as part of application protocol negotiate use of SSL during normal TCP/IP connection establishment 44

APPLICATION PORTS OFFICIAL AND UNOFFICIAL https 443 ssmtp 465 snntp 563 sldap 636 spop3 995 ftp-data 889 ftps 990 imaps 991 telnets 992 ircs 993 45