You are viewing a free preview of this lesson.
Subscribe to unlock all 10 lessons in this course and every other course on LearningBro.
Transport Layer Security (TLS) is the cryptographic protocol that secures communication over the internet. HTTPS is simply HTTP running over TLS. Together, they protect the confidentiality, integrity, and authenticity of data exchanged between browsers and servers — and between any two networked systems.
| Version | Year | Status |
|---|---|---|
| SSL 2.0 | 1995 | Broken — deprecated |
| SSL 3.0 | 1996 | Broken (POODLE attack) — deprecated |
| TLS 1.0 | 1999 | Deprecated (2020) |
| TLS 1.1 | 2006 | Deprecated (2020) |
| TLS 1.2 | 2008 | Secure — still widely used |
| TLS 1.3 | 2018 | Current standard — recommended |
Note: "SSL" is still commonly used colloquially, but all modern connections use TLS. SSL is obsolete.
| Property | How TLS Achieves It |
|---|---|
| Confidentiality | Symmetric encryption (AES-GCM, ChaCha20-Poly1305) |
| Integrity | AEAD ciphersuites and HMAC |
| Authentication | Server certificates (X.509); optional client certificates |
| Forward secrecy | Ephemeral key exchange (ECDHE) |
TLS 1.2 requires two round trips before encrypted data can be exchanged:
Client Server
│ │
│──── ClientHello ────────────────────────▶│ Round 1
│ (TLS version, cipher suites, │
│ client random) │
│ │
│◀──── ServerHello ────────────────────────│
│ (chosen cipher suite, │
│ server random) │
│◀──── Certificate ───────────────────────│
│◀──── ServerKeyExchange (ECDHE params) ──│
│◀──── ServerHelloDone ───────────────────│
│ │
│──── ClientKeyExchange ──────────────────▶│ Round 2
│──── ChangeCipherSpec ───────────────────▶│
│──── Finished (encrypted) ───────────────▶│
│ │
│◀──── ChangeCipherSpec ──────────────────│
│◀──── Finished (encrypted) ──────────────│
│ │
│◀════ Encrypted Application Data ════════▶│
TLS 1.3 reduces the handshake to one round trip and removes legacy insecure options:
Client Server
│ │
│──── ClientHello ────────────────────────▶│ Round 1
│ (TLS 1.3, supported groups, │
│ key shares, signature algorithms) │
│ │
│◀──── ServerHello ────────────────────────│
│◀──── EncryptedExtensions ───────────────│
│◀──── Certificate ───────────────────────│
│◀──── CertificateVerify ─────────────────│
│◀──── Finished ──────────────────────────│
│ │
│──── Finished ───────────────────────────▶│
│ │
│◀════ Encrypted Application Data ════════▶│
| Feature | TLS 1.2 | TLS 1.3 |
|---|---|---|
| Handshake round trips | 2 | 1 (+ 0-RTT for resumption) |
| Key exchange | RSA, DHE, ECDHE | ECDHE only (forward secrecy mandatory) |
| Cipher suites | Many (including insecure options) | Only 5 AEAD cipher suites |
| Encryption of handshake | Partially encrypted | Mostly encrypted (from ServerHello onward) |
| RSA key transport | Supported | Removed (no forward secrecy) |
| Compression | Supported | Removed (CRIME attack) |
| Renegotiation | Supported | Removed (complexity and attacks) |
| Cipher Suite | Encryption | Hash |
|---|---|---|
| TLS_AES_256_GCM_SHA384 | AES-256-GCM | SHA-384 |
| TLS_AES_128_GCM_SHA256 | AES-128-GCM | SHA-256 |
| TLS_CHACHA20_POLY1305_SHA256 | ChaCha20-Poly1305 | SHA-256 |
| TLS_AES_128_CCM_SHA256 | AES-128-CCM | SHA-256 |
| TLS_AES_128_CCM_8_SHA256 | AES-128-CCM-8 | SHA-256 |
Subscribe to continue reading
Get full access to this lesson and all 10 lessons in this course.