520 likes | 1.05k Views
AN OVERVIEW OF SSL AND TLS. Presented By: Atish Baul Module: CSYM020, Internet Security Course: MSc Internet Computing. Contents. Introduction SSL Architecture Analysis of an SSL Session Applications of SSL Implementation of SSL Winning Features References. What are SSL and TLS.
E N D
AN OVERVIEW OF SSL AND TLS Presented By: Atish Baul Module: CSYM020, Internet Security Course: MSc Internet Computing
Contents • Introduction • SSL Architecture • Analysis of an SSL Session • Applications of SSL • Implementation of SSL • Winning Features • References
What are SSL and TLS • Secure Socket Layer (SSL) and it's successor Transport Layer Security (TLS) are cryptographic protocols meant for secure data transmission across the internet. • Prevent eavesdropping, tampering and message forgery within the transport framework. • Provides endpoint authentication and communications privacy. • Used for web browsing, email, instant messaging, etc. Multitude of uses, as we shall see later. • Used for both • Client-to-server communication • Server to server communication
Manner of Usage • Typically, only the server is authenticated, client remains un-authenticated. • Sometimes both parties are authenticated. This is called "Mutual Authentication“.
History of SSL, TLS • Developed by Netscape as SSL 1.0 in 1996 for use with HTTP only, to secure communications between browser and client. • SSL has been endorsed by leading financial institutions (e.g. Visa, Master Card, etc) for commerce over the internet. • Still being updated and maintained by Netscape as SSL 2.0 and SSL 3.0, with endorsement from IETF and leading commercial bodies. • SSL 3.0 was used as basis for TLS 1.0 in 1999, an IETF standard protocol. • Specifications for TLS 1.1 were released in April 2006. It is a minor upgrade to TLS 1.0 • SSL continues to be used alongside TLS, due to widespread support and legacy implementation .
Pair of Twins • SSL and TLS - Twin brothers. • Both protocols are so similar we can refer to them as one name, e.g.. SSL/TLS only. • They are similar, but they are not interchangeable. • Important difference is that TLS 1.0 applies a Keyed-Hashing for Message Authentication Code (HMAC) algorithm, whereas SSL 3.0 applies the Message Authentication Code (MAC) algorithm for authenticating messages.
Prevalent Versions • SSL 1.0 has been deprecated. • SSL 2.0 (Mainly Legacy support). • SSL 3.0 (Current, being replaced by TLS for new projects). • TLS 1.0 (Current). • TLS 1.1 (Newly Introduced, not widely supported).
SSL/TLS Protocol Stack ISO Open Systems Interconnect model SSL runs beneath application layers. E.g. HTTP, FTP, SMTP etc SSL runs above transport protocols such as TCP.
SSL/TLS can be used with any application based over TCP. It’s applications are endless!
Three Basic Phases • Peer negotiation for algorithm support • The two communicating parties negotiate a suitable cryptographic algorithm which they both support. • The most secure algorithm supported by both parties is chosen. • Public Key Encryption based key exchange, and Certificate based authentication. • E.g. RSA, Diffie-Hellman, DSA, etc. • Symmetric cipher-based traffic encryption. • E.g. RC2, RC4, DES, 3DES, etc.
Simplistic Description • An SSL session is basically an exchange of records of different types. • Each record may be compressed, encrypted and signed with a Message Authentication Code (MAC). • Each record has a content_type field that specifies which protocol is being used. • Some SSL protocols and their Content_type • 20 : ChangeCipherSpec • 21 : Alert • 22 : Handshake Protocol. • 22 : Record Layer Protocol. • 23 : Application protocol.
Secure connection over - HTTPS • Securing HTTP connections , also referred to as HTTPS. • Identified by HTTPS:// prefix to the URL (within the address bar). • Is also indicated by padlock symbol at the status bar of a browser. • Implemented by installing an SSL certificate at the server.
Secure connection over - HTTPS • SSL is not just for the web, it is a suite of cryptographic protocols meant to be used in various ways. • Thus, HTTPS is different from just SSL. • Other ways SSL is commonly implemented in Client-Server mode: • File Transfer Protocol Secure (FTPS) • SSL over Database connections to SQL Server, Oracle, etc. • Secure email. • Peer-to-peer or Server-to-Server (mutual authentication ) uses: • Secure Web services • Semantic Web • Virtual Private Network • Session Initiation Protocol (SIP) applications such as Internet Telephony using VoIP.
Example – SSL over POP3/SMTP • Default Outlook express port configuration: • Outlook express configured to use SSL (With Gmail POP3/SMTP settings):
SSL also has a place within the proposed Semantic Web. The trust architecture is based around SSL/TLS.
SSL certificate on Server • On the server, a Certificate Signing Request (CSR) is generated. This creates two cryptographic keys: • Public Key : used to encrypt message to the server. This is sent to the Certificate Authority (CA) and gets downloaded by browser clients. It is then used to encrypt message to server. • Private Key : Stored on server, used to decrypt secure messages encrypted using the public key. • This CSR is then submitted to a relevant CA, along with relevant legal organisational details • E.g. Thawte, Verisign, GoDaddy. • CA verifies that details provided by organisation are correct, and issues a certificate file. • This file is copied and installed on the server, and it is ready to accept secure connections.
Enabling SSL within Web Server • SSL mechanisms need to be enabled within the web server. • E.g. Apache, Internet Information Server. • Apache web server has ‘modules’ that implement SSL: • OpenSSL • ModSSL • Apache-SSL
SSL on client (Browser) • A typical browser come pre-installed with a list of Certificate Authorities Mozilla Firefox
Support for SSL/TLS versions • Browsers support a variety of SSL/TLS versions: Mozilla Firefox
Certificate Details • Browser can download and display (when asked) complete certificate details of the server: Mozilla Firefox displaying Gmail’s SSL Certificate
Security Checks by Client • The browser will connect to relevant CA and verify a number of details, and perform separate checks. It will usually issue warnings explaining the severity of discrepancies, if any: Mozilla Firefox detects inconsistencies with Gmail.com’s SSL certificate.
Prime Features • Integrity • No one tampers with the contents during transport. E.g. Man-in-the-middle attacks. • Privacy • Prevent eavesdropping by encrypting messages. • Authentication • Verify remote party’s identity. • YOU ARE who you say YOU ARE. • Non-repudiation • Digital signature prove that a message was actually sent by a party.
No setup per session or machine! • Asymmetric Public-Private key structure alleviates need for special setup for each session. • Depends on Public Key Infrastructure (PKI) implemented via Certificate Authorities (CA). • Conventions followed by manufacturers to pre-set software and appliances with globally agreed data.
Certificates • Uses X.509 certificate • OpenPGP certificates have been proposed for inclusion.
Large key sizes • Previously limited to 40-bit symmetric keys by US govt restrictions • Now, 56-bit, 128-bit, 256-bit keys are commercially available, very easily. • 2048-bit and 4096-bit keys are also supported by some products. • SSL/TLS itself does not restrict key size, but products and technologies on place have their own restrictions.
Future-Proofing • Cryptographic Algorithms can be rendered obsolete. • Extensible and upgradeable structure ensures latest and strongest cryptographic algorithms are used always. • Current supports includes • RSA, Diffie-Hellman, DSA (for Public Key cryptography). • RC2, RC4, IDEA, DES, 3DES (for Symmetric Ciphers). • MD2, MD4, MD5, SHA (One Way hash functions). • …. And more will come.
References • Thawte (2006). Securing your Online Data Transfer with SSL - A guide to understanding SSL Certificates [online]. Available from: http://www.thawte.com/ssl-digital-certificates/free-guides-whitepapers/ [Accessed 2 April 2007] • IETF (2006). RFC 4346 The Transport Layer Security (TLS) Protocol Version 1.1. • Bussler, C. et al (2002) A conceptual architecture for Semantic Web Enabled Services. Special section on semantic web and data management. [Pages 24 – 29]. • Thawte (2006). Enrolment guide for thawte SSL Web Server Certificates and SGC Supercerts [online]. Available from: http://www.thawte.com/ssl-digital-certificates/free-guides-whitepapers/ [April 2, 2007] • Wikipedia (2007a). Transport Layer Security [online]. Available from: http://en.wikipedia.org/wiki/Transport_Layer_Security [April 02, 2007] • Wikipedia (2007b). Semantic Web [online]. Available from: http://en.wikipedia.org/wiki/Semantic_web [Jan 2, 2007] • Minai, A. (2007) Internet Security, Msc Internet Computing, CSYM020. University of Northampton, 2007.