IT443 – Network Security Administration Instructor: Bo Sheng

Slides:



Advertisements
Similar presentations
SSL/TLS Protocol Network Security Gene Itkis. Basic paradigmatic application: on-line purchase Client contacts Server (possibly for the first time) Spontaneity.
Advertisements

Computer Science CSC 474Dr. Peng Ning1 CSC 474 Information Systems Security Topic 4.5 Transport Layer Security.
Web security: SSL and TLS
1 Lecture 17: SSL/TLS history, architecture basic handshake session initiation/resumption key computation negotiating cipher suites application: SET.
CS470, A.SelcukSSL/TLS & SET1 CS 470 Introduction to Applied Cryptography Instructor: Ali Aydin Selcuk.
Lecture 6: Web security: SSL
TLS Introduction 14.2 TLS Record Protocol 14.3 TLS Handshake Protocol 14.4 Summary.
Cryptography and Network Security
Secure Socket Layer.
SSL CS772 Fall Secure Socket layer Design Goals: SSLv2) SSL should work well with the main web protocols such as HTTP. Confidentiality is the top.
17.1 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter 17 Security at the Transport Layer: SSL and TLS.
Socket Layer Security. In this Presentation: need for web security SSL/TLS transport layer security protocols HTTPS secure shell (SSH)
Working Connection Computer and Network Security - SSL, IPsec, Firewalls – (Chapter 17, 18, 19, and 23)
An Introduction to Secure Sockets Layer (SSL). Overview Types of encryption SSL History Design Goals Protocol Problems Competing Technologies.
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.
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.
11 Secure Sockets Layer (SSL) Protocol (SSL) Protocol Saturday, University of Palestine Applied and Urban Engineering College Information Security.
Secure Socket Layer (SSL)
CSCE 715: Network Systems Security Chin-Tser Huang University of South Carolina.
Cryptography and Network Security (CS435) Part Fourteen (Web Security)
Web Security : Secure Socket Layer Secure Electronic Transaction.
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
SARVAJANIK COLLEGE OF ENGINEERING & TECHNOLOGY. Secure Sockets Layer (SSL) Protocol Presented By Shivangi Modi Presented By Shivangi ModiCo-M(Shift-1)En.No
SMUCSE 5349/7349 SSL/TLS. SMUCSE 5349/7349 Layers of Security.
Secure Sockets Layer (SSL) Protocol by Steven Giovenco.
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.
@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.
Apr 1, 2003Mårten Trolin1 Previous lecture Certificates and key management Non-interactive protocols –PGP SSL/TLS –Introduction –Phases –Commands.
TLS/SSL Protocol Presented by: Vivek Nelamangala Includes slides presented by Miao Zhang on April Course: CISC856 - TCP/IP and Upper Layer Protocols.
Network security Presentation AFZAAL AHMAD ABDUL RAZAQ AHMAD SHAKIR MUHAMMD ADNAN WEB SECURITY, THREADS & SSL.
Executive Director and Endowed Chair
Network Security Gene Itkis
Cryptography and Network Security
Secure Sockets Layer (SSL)
CSCE 715: Network Systems Security
Visit for more Learning Resources
BINF 711 Amr El Mougy Sherif Ismail
Originally by Yu Yang and Lilly Wang Modified by T. A. Yang
CSE 4095 Transport Layer Security TLS, Part II
CSE 4095 Transport Layer Security TLS
Cryptography and Network Security
Cryptography and Network Security Chapter 16
Secure Web Application-SSL
Cryptography and Network Security
Web Security (TRANSPORT-LEVEL SECURITY)
SSL (Secure Socket Layer)
Chapter 7 WEB Security.
Web Security (TRANSPORT-LEVEL SECURITY)
Security at the Transport Layer: SSL and TLS
CSCE 815 Network Security Lecture 16
SSL Protocol Figures used in the presentation
The Secure Sockets Layer (SSL) Protocol
Cryptography and Network Security Chapter 16
Chapter 7 WEB Security.
Transport Layer Security (TLS)
Cryptography and Network Security
Presentation transcript:

IT443 – Network Security Administration Instructor: Bo Sheng SSL/TLS IT443 – Network Security Administration Instructor: Bo Sheng

What Layer? Appl. OS Application Application SSL TCP TCP IPSec IP IP LAN layer LAN layer

History SSLv2 proposed and deployed in Netscape 1.1 (1995) PCT (Private Communications Technology) by Microsoft SSLv3: most commonly used (1995) was developed with public review TLS proposed by the IETF based on SSLv3 but not compatible (1996) Uses patent free DH and DSS instead of RSA which patent didn’t expire yet

SSL vs. IPsec SSL: Avoids modifying “TCP stack” and requires minimum changes to the application Mostly used to authenticate servers IPsec Transparent to the application and requires modification of the network stack Authenticates network nodes and establishes a secure channel between nodes Application still needs to authenticate the users

… SSL Architecture Relies on TCP for reliable communication HTTP and other applications SSL Handshake Protocol SSL Change Cipher Protocol SSL Alert Protocol SSL API SSL Record Protocol TCP IP … Relies on TCP for reliable communication

SSL Architecture Handshake protocol: establishment of a session key Change Cipher protocol: start using the previously-negotiated encryption / message authentication Alert protocol: notification (warnings or fatal exceptions) Record protocol: protected (encrypted, authenticated) communication between client and server

Connections and Sessions SSL Session an association between peers created through a handshake, negotiates security parameters, can be long-lasting SSL Connection a type of service (i.e., an application) between a client and a server transient Multiple connections can be part of a single session

Basic Protocols Goal: application independent security Messages Originally for HTTP, but now used for many applications Each application has an assigned TCP port, e.g., https (HTTP over SSL) uses port 443 Messages A -> B: I want to talk, ciphers I support, RA B -> A: certificates, cipher I choose, RB A -> B: {S}B+, {keyed hash of handshake msgs} B -> A: {keyed hash of handshake msgs} A <-> B: data encrypted and integrity checked with keys derived from K Keyed hashes use K = f(S, RA, RB)

Basic Protocols How do you make sure that keyed hash in message 3 is different from B’s response? Include a constant CLNT/client finished (in SSL/TLS) for A and SRVR/server finished for B Keyed hash is sent encrypted and integrity protected for no real reason Keys: derived by hashing K and RA and RB 3 keys in each direction: encryption, integrity and IV Write keys (to send: encrypt, integrity protect) Read keys (to receive: decrypt, integrity check)

Session Resumption Many secure connections can be derived from the session Cheap: how? Session initiation: modify message 2 B -> A: session_id, certificate, cipher, RB A and B remember: (session_id, master key) To resume a session: A presents the session_id in message 1 A -> B: session_id, ciphers I support, RA B -> A: session_id, cipher I choose, RB, {keyed hash of handshake msgs} A -> B: {keyed hash of handshake msgs} A <-> B: data encrypted and integrity checked with keys derived from K

Negotiating Cipher Suites A cipher suite is a complete package: (encryption algorithm, key length, integrity checksum algorithm, etc.) Cipher suites are predefined: Each assigned a unique value (contrast with IKE) SSLv2: 3 bytes, SSLv3: 2 bytes => up to 65000 combinations 30 defined, 256 reserved for private use: FFxx (risk of non-interoperability) Selection decision: In v3 A proposes, B chooses In v2 A proposes, B returns acceptable choices, and A chooses Suite names examples: SSL_RSA_EXPORT_WITH_DES40_CBC_SHA SSL2_RC4_128_WITH_MD5

SSL Record Protocol

Protocol Steps Fragment data stream into records Compress each record each with a maximum length of 214 (=16K) bytes Compress each record Create message authentication code for each record Encrypt each record

Protocol Steps Application Data Fragment Compress Add MAC Encrypt Add SSL Hdr

SSL Record Format Record Type SSL Version Payload Length Application Data (optionally compressed) Encrypted Optional MAC (16 or 20 bytes) There is, unfortunately, some version number silliness between v2 and v3; see text for (ugly) details

SSL Handshake Protocol

Phases of Protocol Establish security capabilities version of SSL to use cipher + parameters to use Authenticate server (optional), and perform key exchange Authenticate client (optional), and perform key exchange Finish up

All the Messages

I. Establish Security Capabilities Client Server Client_Hello* Server_Hello* Messages marked with * are mandatory

Client_Hello Message Transmitted in plaintext Contents highest SSL version understood by client RC: a 4-byte timestamp + 28-byte random number session ID: 0 for a new session, non-zero for a previous session list of supported cryptographic algorithms list of supported compression methods

Server_Hello Message Also transmitted in plaintext Contents minimum of (highest version supported by server, highest version supported by client) RS: 4-byte timestamp and 28-byte random number session ID a cryptographic choice selected from the client’s list a compression method selected from the client’s list

II. Server Auth. / Key Exchange Client Server Server_Certificate Server_Key_Exchange Client_Certificate_Request Server_Handshake_Done* The Server_Certificate message is optional, but almost always used in practice

Server_Certificate Message Contains a certificate with server’s public key, in X.509 format or, a chain of certificates if required The server certificate is necessary for any key exchange method except for anonymous Diffie-Hellman

Authenticating the Server source: sun.com Step #4: Domain name in certificate must match domain name of server (not part of SSL protocol, but clients should check this)

Client_Certificate_Request Msg. Normally not used, because in most applications only the server is authenticated client is authenticated at the application layer, if needed Two parameters certificate type accepted, e.g., RSA/signature only, DSS/signature only, … list of certificate authorities recognized (i.e., trusted third parties)

III. Client Auth. / Key Exchange Server Client_Certificate Client_Key_Exchange* Client_Certificate_Verify

Client_Certificate_Verify Msg Proves the client is the valid owner of a certificate (i.e., knows the corresponding private key) Only sent following any client certificate that has signing capability Was ist das?

IV. Finish Up Client Server Change_Cipher_Spec* Client_Finished* Change_Cipher_Spec* Server_Finished* Switch to the negotiated cipher for all remaining (application) messages

Change_Cipher_Spec Msg Confirms the change of the current state of the session to a newly-negotiated set of cryptographic parameters Finished Messages keyed hash of the previous handshake messages to prevent man-in-the-middle-attacks from succeeding

Alert Protocol Examples Type 1: Warning ex.: No_Certificate, Close_Notify Type 2: Fatal_Alert ex.: Unexpected_Message, Bad_MAC, etc. connection is immediately terminated

Summary SSL is the de facto authentication/encryption protocol standard for HTTP becoming popular for many other protocols as well Allows negotiation of cryptographic methods and parameters