TLS/SSL Reference
Free reference guide: TLS/SSL Reference
About TLS/SSL Reference
The TLS/SSL Reference is a searchable cheat sheet covering the Transport Layer Security protocol versions, cipher suites, key exchange algorithms, and handshake mechanics used to secure internet communications. It documents all four TLS versions — TLS 1.0 and 1.1 (both deprecated in 2021 due to vulnerabilities like POODLE and BEAST), TLS 1.2 (the current baseline supporting AEAD ciphers and SHA-256+), and TLS 1.3 (the latest version with a streamlined 1-RTT handshake and removal of all insecure legacy ciphers).
The reference details the three TLS 1.3 cipher suites: TLS_AES_128_GCM_SHA256 (the most widely deployed), TLS_AES_256_GCM_SHA384 (for high-security requirements), and TLS_CHACHA20_POLY1305_SHA256 (optimized for mobile devices without AES hardware acceleration). Key exchange coverage includes ECDHE with P-256 and X25519 curves (default in TLS 1.3 with forward secrecy), DHE (forward secrecy but slower), and RSA key exchange (removed in TLS 1.3 because it lacks forward secrecy).
The handshake section walks through Client Hello (supported versions, cipher list, SNI hostname, and TLS 1.3 key_share extension), Server Hello (selected cipher and key_share), Certificate verification via X.509 chain, and TLS 1.3 0-RTT early data for session resumption with its replay attack tradeoffs. TLS extensions are covered including ALPN for protocol negotiation (h2/http1.1) and SNI for virtual hosting on shared IPs, with a note on ECH (Encrypted Client Hello) as the privacy solution for plaintext SNI. All content is served client-side with no server processing.
Key Features
- Complete TLS version comparison: 1.0 (deprecated), 1.1 (deprecated), 1.2, and 1.3 with key differences
- All three TLS 1.3 cipher suites documented: AES-128-GCM, AES-256-GCM, and ChaCha20-Poly1305
- Key exchange algorithms compared: ECDHE (P-256, X25519), DHE, and RSA with forward secrecy analysis
- Step-by-step TLS handshake walkthrough: Client Hello, Server Hello, Certificate, and key exchange
- TLS 1.3 0-RTT early data explained with replay attack tradeoffs
- TLS extensions: SNI for virtual hosting, ALPN for protocol negotiation (HTTP/2, HTTP/1.1)
- Searchable and filterable by category: Versions, Ciphers, Key Exchange, Handshake, Extensions
- 100% client-side — no data is ever transmitted to a server or stored remotely
Frequently Asked Questions
What is the difference between TLS 1.2 and TLS 1.3?
TLS 1.3 (2018) provides several major improvements over TLS 1.2 (2008). The handshake is reduced from 2 round trips to 1 round trip, and 0-RTT session resumption is supported. All insecure algorithms are removed — no RSA key exchange, no CBC mode, no RC4, no SHA-1, no static DH. Only AEAD ciphers (AES-GCM, ChaCha20-Poly1305) and ephemeral key exchange (ECDHE) are permitted, guaranteeing forward secrecy for all connections.
Why were TLS 1.0 and 1.1 deprecated?
TLS 1.0 and 1.1 were deprecated in 2021 (RFC 8996) because they are vulnerable to well-known attacks including POODLE (which exploits CBC padding in SSL 3.0/TLS 1.0), BEAST (which targets CBC mode initialization vectors in TLS 1.0), and they lack support for modern AEAD ciphers. All major browsers removed support for these versions. TLS 1.2 with AEAD ciphers is now the minimum acceptable version.
Which TLS 1.3 cipher suite should I use?
TLS_AES_128_GCM_SHA256 is the most widely deployed and is the recommended default. TLS_AES_256_GCM_SHA384 offers a larger key size for environments requiring 256-bit encryption (e.g., government compliance). TLS_CHACHA20_POLY1305_SHA256 is recommended for mobile clients and ARM devices that lack AES hardware acceleration (AES-NI), as ChaCha20 achieves better performance in software-only implementations.
What is forward secrecy and why does it matter?
Forward secrecy (also called perfect forward secrecy) means that even if the server's long-term private key is compromised, past recorded traffic cannot be decrypted. This is achieved by using ephemeral key exchange (ECDHE or DHE) where a unique session key is generated for each connection and discarded after use. RSA key exchange lacks this property — if the RSA private key is later leaked, all previously captured traffic can be decrypted. TLS 1.3 mandates forward secrecy by only allowing ephemeral key exchange.
What is SNI and why is it sent in plaintext?
SNI (Server Name Indication) is a TLS extension that includes the target hostname in the Client Hello message, allowing a server at a single IP address to present the correct certificate for the requested domain. Because the Client Hello is sent before encryption is established, the SNI hostname is visible to network observers. Encrypted Client Hello (ECH) is the solution — it encrypts the SNI using a public key published in DNS, preventing passive observation of which site the client is connecting to.
How does TLS 1.3 0-RTT work?
0-RTT (zero round-trip time) allows a client that has previously connected to a server to send encrypted application data in its very first message during session resumption, using a Pre-Shared Key (PSK) from the previous session. This eliminates the handshake latency entirely for returning connections. The tradeoff is that 0-RTT data is vulnerable to replay attacks — an attacker who captures the 0-RTT message can resend it to the server. Servers must implement application-layer replay protection for any non-idempotent operations.
What is ALPN used for?
ALPN (Application-Layer Protocol Negotiation) is a TLS extension that lets the client and server agree on which application protocol to use (such as h2 for HTTP/2 or http/1.1 for HTTP/1.1) during the TLS handshake itself, before any application data is sent. This avoids an extra round trip that would be needed if protocol negotiation happened after the TLS connection was established. ALPN is required for HTTP/2 — browsers will only use HTTP/2 over TLS connections that successfully negotiate h2 via ALPN.
Is this reference useful for security audits and compliance?
Yes. The reference provides the technical details needed to evaluate TLS configurations against standards like PCI DSS (which requires TLS 1.2 or higher), NIST SP 800-52 (which recommends TLS 1.3 and specific cipher suites), and general security best practices. You can quickly look up which cipher suites are considered secure, which key exchange algorithms provide forward secrecy, and which TLS versions are deprecated — all critical information for security audits and compliance assessments.