Ref: https://learn.cantrill.io/courses/2022818/lectures/45662102
SSL & TLS - Key Concepts
- π§ L6 encryption protocols for securing data transmission over the internet
- Secure Socket Layer (SSL) β original, developed by Netscape in mid-1990s
- Transport Layer Security (TLS) β newer, more secure version of SSL
- β SSL/TLS provides:
- Privacy β encrypted tunnel of communication between client and server
- Identity verification β clients verify server identity
- π‘ Full two-way verification possible, but generally only client needs to verify server
- Data integrity β protects against alteration of data in transit β reliable connection
- SSL/TLS used by many L7 protocols, e.g. HTTP, SMTPβ¦
- HTTP + SSL/TLS = HTTPS (HTTP Secure)
- π‘ Every time we use HTTPS, we establish an encrypted SSL/TLS tunnel
Transport Layer Security (TLS) - 3-Phase Architecture

π‘ A TCP connection has already been established before TLS process begins
i) TLS Cipher Suites
- π§ Cipher Suite = set of protocols used by TLS
- A Cipher Suite includes:
- Key exchange algorithm
- Bulk encryption algorithm
- Message Authentication Code (MAC)
- β Do NOT confuse with Media Access Control (MAC)!
- Client and server must agree on common cipher suite:
- Client sends βClient HELLOβ
- Includes list of supported cipher suites (as well as SSL/TLS version, session IDβ¦)
- Server answers with βServer HELLOβ
- Includes cipher suite choice and server certificate (with server's public key)
- β If server doesn't support any of client's cipher suites, connection simply fails!
- π‘ Cipher Suite has been agreed and client has server's public key, which can be used to encrypt data that only server can decryptβ¦ But before doing that client should verify that server is indeed who it claims to be!
ii) TLS Authentication
- π§ SSL/TLS Certificate = Digital document with server's public key and DNS name (& other stuff)
- Has been signed by an independent, 3rd-party Certificate Authority (CA)
- π‘ Clientsβ OS and/or web browsers inherently trust many of these public CAs (they have been hard-coded to trust them)
- Clients can verify the CA signed a SSL/TLS certificate (if client trusts the CA)
- Enabling SSL/TLS on a server:
- Generate a public-private key pair & certificate
- Send the cert in a Certificate Signing Request (CSR) to a public CA
- CA delivers back a signed certificate if all is well
- Signed certificate can now be used in client requests involving SSL/TLS