TLS 1.2 และ TLS 1.3 ต่างกันอย่างไร
TLS 1.2 และ TLS 1.3 ต่างกันอย่างไร
TLS (Transport Layer Security) คือโปรโตคอลที่เข้ารหัสช่องทางระหว่างไคลเอนต์กับเซิร์ฟเวอร์ เวอร์ชันที่ยังใช้งานจริงในปัจจุบันคือ TLS 1.2 ตาม RFC 5246 (สิงหาคม 2008) และ TLS 1.3 ตาม RFC 8446 (สิงหาคม 2018)
Handshake
TLS 1.2 ใช้ full handshake ประมาณ 2 round-trip ก่อนส่งข้อมูลแอปพลิเคชัน TLS 1.3 ลดเหลือ 1-RTT และรองรับ 0-RTT สำหรับ session resumption ซึ่งเร็วขึ้นแต่ต้องระวัง replay ตามที่ RFC 8446 ระบุไว้
TLS 1.3 ยังเข้ารหัสใบรับรองระหว่าง handshake ทำให้ผู้สังเกตการณ์บนเครือข่ายเห็น hostname จาก SNI ได้ แต่เห็นรายละเอียดใบรับรองน้อยลง
Cipher Suite และ Key Exchange
TLS 1.2 รองรับชุด cipher จำนวนมาก รวมถึง CBC, RC4 (เลิกใช้แล้ว) และ RSA key exchange ที่ไม่มี Perfect Forward Secrecy
TLS 1.3 ตัดชุดที่ไม่ปลอดภัยออก เหลือเฉพาะ AEAD ได้แก่ AES-GCM และ ChaCha20-Poly1305 และบังคับ (EC)DHE จึงได้ PFS ทุกครั้ง RSA key exchange ถูกถอดออกจากโปรโตคอล
สรุปความแตกต่าง
| คุณสมบัติ | TLS 1.2 | TLS 1.3 |
|---|---|---|
| มาตรฐาน | RFC 5246 (2008) | RFC 8446 (2018) |
| Handshake RTT | 2 | 1 (0-RTT ได้เมื่อ resume) |
| PFS | ไม่บังคับ | บังคับ |
| Cipher | หลายแบบ รวมแบบอ่อน | เฉพาะ AEAD |
| RSA Key Exchange | รองรับ | ไม่รองรับ |
คำแนะนำ
ควรเปิดทั้ง TLS 1.2 และ TLS 1.3 เพื่อรองรับไคลเอนต์หลากหลาย และปิด TLS 1.0/1.1 ตาม RFC 8996 ชุด cipher ของ TLS 1.2 ควรจำกัดตาม Mozilla SSL Configuration ระดับ Intermediate