Internet Security CSCE 813 Transport Layer Security

Slides:



Advertisements
Similar presentations
Web security: SSL and TLS
Advertisements

1 Lecture 12 SSL/TLS (Secure Sockets Layer / Transport Layer Security) CIS CIS 5357 Network Security.
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 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)
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.
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.
BASIC CRYPTOGRAPHY CONCEPT. Secure Socket Layer (SSL)  SSL was first used by Netscape.  To ensure security of data sent through HTTP, LDAP or POP3.
Cryptography and Network Security
Mar 19, 2002Mårten Trolin1 This lecture On the assignment Certificates and key management SSL/TLS –Introduction –Phases –Commands.
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.
11 Secure Sockets Layer (SSL) Protocol (SSL) Protocol Saturday, University of Palestine Applied and Urban Engineering College Information Security.
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)
Cosc 4765 SSL/TLS and VPN. SSL and TLS We can apply this generally, but also from a prospective of web services. Multi-layered: –S-http (secure http),
Introduction to Secure Sockets Layer (SSL) Protocol Based on:
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)
Web Security Network Systems Security
Tunneling and Securing TCP Services Nathan Green.
SARVAJANIK COLLEGE OF ENGINEERING & TECHNOLOGY. Secure Sockets Layer (SSL) Protocol Presented By Shivangi Modi Presented By Shivangi ModiCo-M(Shift-1)En.No
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.
1 SSL/TLS. 2 Web security Security requirements Secrecy to prevent eavesdroppers to learn sensitive information Entity authentication Message authentication.
Encryption protocols Monil Adhikari. What is SSL / TLS? Transport Layer Security protocol, ver 1.0 De facto standard for Internet security “The primary.
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.
Apr 1, 2003Mårten Trolin1 Previous lecture Certificates and key management Non-interactive protocols –PGP SSL/TLS –Introduction –Phases –Commands.
PRESENTATION ON SECURE SOCKET LAYER (SSL) BY: ARZOO THAKUR M.E. C.S.E (REGULAR) BATCH
TLS/SSL Protocol Presented by: Vivek Nelamangala Includes slides presented by Miao Zhang on April Course: CISC856 - TCP/IP and Upper Layer Protocols.
Executive Director and Endowed Chair
Cryptography and Network Security
CSCE 715: Network Systems Security
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
SSL (Secure Socket Layer)
Chapter 7 WEB Security.
CSCE 815 Network Security Lecture 16
SSL Protocol Figures used in the presentation
Chapter 7 WEB Security.
Cryptography and Network Security
Presentation transcript:

Internet Security CSCE 813 Transport Layer Security

TCP/IP Protocol Stack Application Layer Transport Layer Internetwork Layer Network Access Layer CSCE 813 - Farkas

Communication Between Layers Application Data Application layer Application layer Transport payload Transport layer Transport layer Network Payload Network layer Network layer Network layer Network layer Data Link layer Data Link layer Data Link layer Data Link layer Data Link Payload Host A Router Router Host B CSCE 813 - Farkas

Transport Layer Provides services to the application layer Services: Connection-oriented or connectionless transport Reliable or unreliable transport Security CSCE 813 - Farkas

Security Requirements Key management Confidentiality Repudiation Integrity/authentication Authorization CSCE 813 - Farkas

Transport Layer Security Advantages: Does not require enhancement to each application Disadvantages: Obtaining user context gets complicated Protocol specific --> need to be duplicated for each transport protocol Need to maintain context for connection (not currently implemented for UDP) CSCE 813 - Farkas

Transport Layer Security Protocols Connectionless and connection-oriented transport layer service: Security Protocol 4 (SP4) – NSA, NIST Transport Layer Security (TLSP) – ISO Connection-oriented transport layer service: Encrypted Session Manager (ESM) – AT&T Bell Labs. Secure Socket Layer (SSL) – Netscape Communications Transport Layer Security (TLS) – IETF TLS WG Most popular transport layer security protocols CSCE 813 - Farkas

SSL SSL versions: RFC2246, http://www.ietf.org/rfc/rfc2246.txt 1.0: serious security flaws – never released to public 2.0: some weaknesses – in Netscape Navigator 1.0-2.x 3.0: no serious security flaws – in Netscape Navigator 3.0 and higher, MS Explorer 3.0 and higher RFC2246, http://www.ietf.org/rfc/rfc2246.txt Open-source implementation at http://www.openssl.org/ CSCE 813 - Farkas

SSL 2.0 Vulnerabilities Short key length Weak MAC construction Message integrity vulnerability Ciphersuite rollback attack Short key length In export-weakened modes, SSL 2.0 unnecessarily weakens the authentication keys to 40 bits. Weak MAC construction Message integrity vulnerability SSL 2.0 feeds padding bytes into the MAC in block cipher modes, but leaves the padding-length unauthenticated, may allow active attackers to delete bytes from the end of messages Ciphersuite rollback attack An active attacker may edits the list of ciphersuite preferences in the hello messages to invisibly force both endpoints to use a weaker form of encryption “Least common denominator" security under active attack CSCE 813 - Farkas

SSL Intermediate security layer between the transport layer and the application layer Based on connection-oriented and reliable service (e.g., TCP) Able to provide security services for any TCP-based application protocol, e.g., HTTP,FTP, TELNET, POP3, etc. Application independent CSCE 813 - Farkas

SSL Architecture … IP SSL Record Protocol User Datagram P. Transport Control P. Handshake Chng. Ciph. Alert Appl. data … IMAPS FTPS HTTPS TELNETS Application Layer Intermediate Security Layer Transport Layer Internet Layer CSCE 813 - Farkas

SSL Services SSL provides SSL does not provide Client- server authentication (public-key cryptography) Data traffic confidentiality Message authentication and integrity check SSL does not provide Traffic analysis TCP implementation oriented attacks CSCE 813 - Farkas

SSL Usage Both client and server must know that the other is using SSL by either Using dedicated port numbers – separate port number for every application protocol using SSL May require two TCP connections if the client does not know what the server supports Using normal port number but negotiate security options as part of the application protocol Requires each application protocol to be modified Will be needed for future applications Using a TCP option to negotiate the use of a security protocol during TCP connection establishment Hasn’t been seriously discussed yet CSCE 813 - Farkas

SSL Connection: a transport that provides a service. Every connection is associated with a session Session: association between a client and a server. Created by the Handshake protocol. CSCE 813 - Farkas

SSL State Information SSL session is stateful  SSL protocol must initialize and maintain session state information on either side of the session SSL session can be used for several connections  connection state information CSCE 813 - Farkas

SSL Session State Information Elements Session ID: chosen by the server to identify an active or resumable session state Peer certificate: certificate for peer entity (X.509) Compression method: algorithm to compress data before encryption Cipher spec: specification of data encryption and Message Authentication Code (MAC) algorithms Master secret: 48-byte secret shared between client and server Is resumable: flag that indicates whether the session can be used to initiate new connections CSCE 813 - Farkas

SSL Connection State Information Elements Server and client random: 32 bytes sequences that are chosen by server and client for each connection Server write MAC secret: secret used for MAC on data written by server Client write MAC secret: secret used for MAC on data written by client Server write key: key used for data encryption by server and decryption by client Client write key: key used for encryption by client and decryption by server Initialization vector: for CBC block ciphers Sequence number: for both transmitted and received messages, maintained by each party CSCE 813 - Farkas

SSL Connection State Four parts to state Handshake: Current read state Current write state Pending read state Pending write state Handshake: Initial current state is empty Pending state can be made current or reinitialized to empty CSCE 813 - Farkas

SSL Protocol Components: SSL Record Protocol SSL sub-protocols Layered on top of a connection-oriented and reliable transport layer service Provides message origin authentication, data confidentiality, and data integrity SSL sub-protocols Layered on top of the SSL Record Protocol Provides support for SSL session and connection establishment CSCE 813 - Farkas

SSL Record Protocol Receives data from higher layer SSL sub-protocols Addresses Data fragmentation Compression Authentication Encryption CSCE 813 - Farkas

SSL Record Protocol Data fragment Fragmentation SSL Plain text Compression SSL Compressed Encryption SSL ciphertext CSCE 813 - Farkas

SSL Record Content Content type Protocol version number Defines higher layer protocol that must be used to process the payload data (8 bits, only 4 defined) Protocol version number Defines SSL version in use (8 bits major, 8 bits minor) Length: max 214 + 2048 Data payload Optionally compressed and encrypted Encryption and compression requirements are defined during SSL handshake MAC Appended for each each record for message origin authentication and data integrity verification CSCE 813 - Farkas

SSL Sub-protocols Alert Protocol Used to transmit alerts via SSL Record Protocol Alert message: (alert level, alert description) Handshake Protocol – Complex Used to mutually authenticate client and server and exchange session key Establish new session and connection together or Uses existing session for new connection CSCE 813 - Farkas

SSL Sub-protocols ChangeCipherSpec Protocol Used to change cipher specifications Can be changed at the end of the handshake or later Application Protocol Used to directly pass application data to the SSL Record Protocol CSCE 813 - Farkas

SSL Handshake Phase 1: establish security capabilities Phase 2: server authentication and key exchange Phase 3: client authentication and key exchange Phase 4: finish CSCE 813 - Farkas

SSL Handshake Phase 1 Phase 2 Phase 3 Phase 4 C  S: CLIENTHELLO S  C: SERVERHELLO [CERTIFICATE] [SERVERKEYEXCHANGE] [CERTIFICATEREQUEST] SERVERHELLODONE C  S: [CERTIFICATE] CLIENTKEYEXCHANGE [CERTIFICATEVERIFY] CHANGECIPHERSPEC FINISH S  C: CHANGECIPHERSPEC Security capabilities Phase 2 Optional server messages Phase 3 Client key exchange Phase 4 Change cipher suite CSCE 813 - Farkas

SSL Handshake CLIENTHELLO message is sent by the client C  S: CLIENTHELLO CLIENTHELLO message is sent by the client When the client wants to establish a TCP connection to the server, When a HELLOREQUEST message is received, or When client wants to renegotiate security parameters of an existing connection Message content: Number of highest SSL understood by the client Client’s random structure (32-bit timestamp and 28-byte pseudorandom number) Session ID client wishes to use (ID is empty for existing sessions) List of cipher suits the client supports List of compression methods the client supports CSCE 813 - Farkas

Cipher Suites SSL_NULL_WITH_NULL_NULL = { 0, 0 } INITIAL (NULL) CIPHER SUITE PUBLIC-KEY ALGORITHM SYMMETRIC HASH CIPHER SUITE CODES USED IN SSL MESSAGES SSL_NULL_WITH_NULL_NULL = { 0, 0 } SSL_RSA_WITH_NULL_MD5 = { 0, 1 } SSL_RSA_WITH_NULL_SHA = { 0, 2 } SSL_RSA_EXPORT_WITH_RC4_40_MD5 = { 0, 3 } SSL_RSA_WITH_RC4_128_MD5 = { 0, 4 } SSL_RSA_WITH_RC4_128_SHA = { 0, 5 } SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5 = { 0, 6 } SSL_RSA_WITH_IDEA_CBC_SHA = { 0, 7 } SSL_RSA_EXPORT_WITH_DES40_CBC_SHA = { 0, 8 } SSL_RSA_WITH_DES_CBC_SHA = { 0, 9 } SSL_RSA_WITH_3DES_EDE_CBC_SHA = { 0, 10 } CSCE 813 - Farkas

SSL Handshake Server processes CLIENTHELLO message S  C: SERVERHELLO [CERTIFICATE] [SERVERKEYEXCHANGE] [CERTIFICATEREQUEST] SERVERHELLODONE SSL Handshake Server processes CLIENTHELLO message Server Respond to client with SERVERHELLO message: Server version number: lower version of that suggested by the client and the highest supported by the server Server’s random structure: 32-bit timestamp and 28-byte pseudorandom number Session ID: corresponding to this connection Cipher suite: selected by the server for client’s list Compression method: selected by the server from client’s list CSCE 813 - Farkas

} SSL Handshake Optional messages: Phase 2– server authentication S  C: SERVERHELLO [CERTIFICATE] [SERVERKEYEXCHANGE] [CERTIFICATEREQUEST] SERVERHELLODONE } SSL Handshake Optional messages: Phase 2– server authentication CERTIFICATE: If the server is using certificate-based authentication May contain RSA public key  good for key exchange SERVERKEYEXCHANGE: If the client does not have certificate, has certificate that can only be used to verify digital signatures, or uses FORTEZZA token-based key exchange (not recommended) CERTIFICATEREQUEST: Server may request personal certificate to authenticate a client CSCE 813 - Farkas

SSL Handshake Client processing: Verifies site certification C  S: [CERTIFICATE] CLIENTKEYEXCHANGE [CERTIFICATEVERIFY] CHANGECIPHERSPEC FINISH SSL Handshake Client processing: Verifies site certification Valid site certification if the server’s name matches the host part of the URL the client wants to access Checks security parameters supplied by the SERVERHELLO CSCE 813 - Farkas

C  S: [CERTIFICATE] CLIENTKEYEXCHANGE [CERTIFICATEVERIFY] CHANGECIPHERSPEC FINISH SSL Handshake Client messages: Phase 3 – client authentication and key exchange CERTIFICATE If server requested a client authentication, client sends CLIENTKEYEXCHANGE Format depends on the key exchange algorithm selected by the server RSA: 48-byte premaster secret encrypted by the server’s public key Diffie-Hellman: public parameters between server and client in SERVERKEYEXCHANGE and CLIENTKEYEXCHANGE msgs. FORTEZZA: token-based key exchange based on public and private parameters Premaster key is transformed into a 48-byte master secret, stored in the session state CSCE 813 - Farkas

SSL Handshake Client messages: CERTIFICATEVERIFY CHANGECIPHERSPEC C  S: [CERTIFICATE] CLIENTKEYEXCHANGE [CERTIFICATEVERIFY] CHANGECIPHERSPEC FINISH SSL Handshake Client messages: CERTIFICATEVERIFY If client authentication is required Provides explicit verification of the use’s identity (personal certificate) CHANGECIPHERSPEC Completes key exchange and cipher specification FINISH Encrypted by the newly negotiated session key Verifies that the keys are properly installed in both sites CSCE 813 - Farkas

SSL Handshake Phase 4: finish S  C: CHANGECIPHERSPEC FINISH SSL Handshake Phase 4: finish Server finishes handshake by sending CHANGECIPHERSPEC and FINISH messages After SSL handshake completed a secure connection is established to send application data encapsulated in SSL Record Protocol CSCE 813 - Farkas

SSL Handshake to Resume Session C  S: CLIENTHELLO S  C: SERVERHELLO CHANGECIPHERSPEC FINISH C  S: CHANGECIPHERSPEC CSCE 813 - Farkas

SSL Protocol Provides secure TCP connection between client and server by Server authentication Optional client authentication Key exchange services Negotiation Data confidentiality and integrity Message authentication Compression/decompression CSCE 813 - Farkas

SSL Delay Slower than a TCP session (2-10 times) Causes: Handshake phase Client does public-key encryption Server does private-key encryption (still public-key cryptography) Usually clients have to wait on servers to finish Data Transfer phase Symmetric key encryption CSCE 813 - Farkas

Firewall Tunneling SSL/TSL: end-to-end security  difficult to interoperate with application gateways Firewalls: man-in-the-middle Application protocol being proxied Application protocol being tunneled CSCE 813 - Farkas

Proxied Protocol Proxy server is aware of the specifics of the protocol and understand protocol level processing Support: Protocol-level filtering Access control Accounting Logging Usually proxied protocols: telnet, ftp, http CSCE 813 - Farkas

Tunneled Protocol Proxy server: NOT aware of the specifics of the protocol  simply relaying the data between Client and Server Does NOT have access to data being transferred Knows: source and destination addresses (IP and port) and the requesting user (if authentication is supported) Cannot support: protocol –level filtering, access control, and logging at the same extend as the proxied version. Usually tunneled protocols: SSL-enhanced protocols CSCE 813 - Farkas

Summary Advantages of SSL/TSL: Disadvantages: Simplicity Wide deployment Disadvantages: Do not secure UDP Work poorly with applications gateways CSCE 813 - Farkas

Testing for SSL-TLS (OWASP-CM-001) Problem: legacy and new web servers are often able and configured to handle weak cryptographic options Causes: historic export restrictions of high grade cryptography CSCE 813 - Farkas

SSL testing criteria https://www. owasp. org/index Minimum checklist: SSLv2, due to known weaknesses in protocol design Export (EXP) level cipher suites in SSLv3 Cipher suites with symmetric encryption algorithm smaller than 128 bits X.509 certificates with RSA or DSA key smaller than 1024 bits X.509 certificates signed using MD5 hash, due to known collision attacks on this hash TLS Renegotiation vulnerability – patch available CSCE 813 - Farkas

Next Class: Application Layer Security