TLS 1.3 (2018) cải tiến TLS 1.2: giảm từ 2-RTT xuống 1-RTT, bắt buộc forward secrecy (ECDHE), loại bỏ cipher cũ và mã hóa certificate — nhanh hơn và an toàn hơn đáng kể.
TLS 1.2 (2008): handshake 2-RTT, hỗ trợ nhiều cipher suite cũ (RC4, DES, export-grade), RSA key exchange cho phép decrypt retroactively nếu có private key (không có forward secrecy trừ khi dùng ECDHE).
TLS 1.3 (2018):
- 1-RTT handshake (giảm 1 round-trip so với TLS 1.2)
- 0-RTT cho resumed sessions (client gửi data ngay trong handshake, nhưng có replay attack risk)
- Forward secrecy bắt buộc: loại bỏ RSA key exchange, chỉ dùng ephemeral Diffie-Hellman (ECDHE) — session key thay đổi mỗi session, ngay cả khi server private key bị lộ sau này cũng không decrypt được session cũ
- Bỏ cipher cũ: loại bỏ MD5, SHA-1, RC4, DES, 3DES, RSA static
- Encrypted handshake: certificate được mã hóa (TLS 1.2 gửi certificate plaintext). TLS 1.3 nhanh hơn và an toàn hơn — Chrome, Firefox, Nginx đều default TLS 1.3. Disable TLS 1.0/1.1 trong production (PCI DSS requirement)
TLS 1.3 (2018) improves on TLS 1.2: reduces from 2-RTT to 1-RTT, mandates forward secrecy (ECDHE), removes legacy ciphers, and encrypts the certificate — significantly faster and more secure.
TLS 1.2 (2008): 2-RTT handshake; supports many legacy cipher suites (RC4, DES, export-grade); RSA key exchange allows retroactive decryption if the private key is ever compromised (no forward secrecy unless ECDHE is explicitly used).
TLS 1.3 (2018):
- 1-RTT handshake (saves one round-trip vs TLS 1.2)
- 0-RTT for resumed sessions (client sends data in the handshake itself, but this has replay attack risks)
- Mandatory forward secrecy: removes RSA key exchange, exclusively uses ephemeral Diffie-Hellman (ECDHE) — session keys change every session, so even if the server's private key is leaked later, past sessions cannot be decrypted
- Removal of legacy ciphers: MD5, SHA-1, RC4, DES, 3DES, and static RSA are all removed
- Encrypted handshake: the certificate is encrypted (TLS 1.2 sends the certificate in plaintext). TLS 1.3 is both faster and more secure — Chrome, Firefox, and Nginx all default to TLS 1.3. Disable TLS 1.0/1.1 in production (required by PCI DSS)