SSL/TLS và HTTPS: Hướng Dẫn Toàn Diện Về Bảo Mật Web
Trong thời đại số hóa, bảo mật thông tin trên internet là vấn đề quan trọng hàng đầu. SSL/TLS và HTTPS là những công nghệ nền tảng đảm bảo dữ liệu được truyền tải an toàn giữa người dùng và server. Bài viết này sẽ giúp bạn hiểu sâu về các khái niệm này từ nguyên lý đến thực hành.
1. Khái Niệm Cơ Bản
SSL và TLS là gì?
SSL (Secure Sockets Layer) và TLS (Transport Layer Security) là các giao thức mã hóa đảm bảo giao tiếp an toàn qua mạng internet.
- SSL: Phiên bản gốc, được phát triển bởi Netscape vào những năm 1990
- TLS: Phiên bản cải tiến và an toàn hơn, thay thế SSL
[!NOTE] Mặc dù SSL đã không còn được sử dụng, thuật ngữ "SSL" vẫn thường được dùng để chỉ cả SSL lẫn TLS trong thực tế.
HTTPS là gì?
HTTPS (Hypertext Transfer Protocol Secure) là phiên bản bảo mật của HTTP, sử dụng TLS để mã hóa dữ liệu.
HTTP → Dữ liệu truyền dạng plaintext (không mã hóa)
HTTPS → Dữ liệu được mã hóa bởi TLS
Ba Trụ Cột Bảo Mật
| Trụ cột | Mô tả | Ví dụ |
|---|---|---|
| Mã hóa (Encryption) | Dữ liệu không thể đọc được nếu bị chặn | Mật khẩu không bị lộ khi đăng nhập |
| Xác thực (Authentication) | Xác minh danh tính server | Đảm bảo đúng website ngân hàng |
| Toàn vẹn (Integrity) | Dữ liệu không bị thay đổi trong quá trình truyền | Số tiền giao dịch không bị sửa |
2. Lịch Sử Phát Triển
Timeline SSL/TLS
So Sánh Các Phiên Bản
| Phiên bản | Năm | Trạng thái | Ghi chú |
|---|---|---|---|
| SSL 2.0 | 1995 | ❌ Deprecated | Nhiều lỗ hổng, tấn công MitM |
| SSL 3.0 | 1996 | ❌ Deprecated | Lỗ hổng POODLE |
| TLS 1.0 | 1999 | ⚠️ Lỗi thời | Lỗ hổng BEAST, không nên dùng |
| TLS 1.1 | 2006 | ⚠️ Lỗi thời | Browser đã loại bỏ hỗ trợ |
| TLS 1.2 | 2008 | ✅ An toàn | Phổ biến nhất hiện nay |
| TLS 1.3 | 2018 | ✅ Khuyến nghị | Nhanh nhất, an toàn nhất |
[!IMPORTANT] Tính đến 2024, TLS 1.2 và TLS 1.3 là hai phiên bản duy nhất nên được sử dụng. Các trình duyệt chính đã loại bỏ hỗ trợ TLS 1.0 và 1.1.
3. TLS Handshake - Quá Trình Bắt Tay
TLS Handshake là quá trình thiết lập kết nối an toàn giữa client và server. Đây là bước quan trọng nhất trong việc đảm bảo bảo mật.
Sơ Đồ Handshake
Chi Tiết Từng Bước
Bước 1: Client Hello
Client gửi yêu cầu kết nối với thông tin:
- Phiên bản TLS hỗ trợ (TLS 1.2, TLS 1.3)
- Danh sách cipher suites
- Client Random: chuỗi bytes ngẫu nhiên
Bước 2: Server Hello
Server phản hồi với:
- Phiên bản TLS được chọn
- Cipher suite được chọn
- Server Random: chuỗi bytes ngẫu nhiên
- SSL Certificate: chứa public key