FresherKỹ thuậtXác thực & bảo mật
TLS bảo vệ điều gì, và không bảo vệ điều gì?
Thử trả lời trước
Đáp án mẫu
TLS bảo vệ dữ liệu khi truyền giữa client và server. Nó đưa ra ba đảm bảo: bí mật (traffic được mã hóa), toàn vẹn (phát hiện được việc bị sửa) và xác thực server (certificate chứng minh bạn đã kết nối đúng domain thật).
Trong lúc handshake, client kiểm tra certificate của server với các certificate authority đáng tin, rồi hai bên thống nhất session key. TLS 1.3 chỉ cần một round trip cho bước này và là phiên bản nên ưu tiên; TLS 1.0 và 1.1 đã lỗi thời. Với mutual TLS, client cũng trình certificate của mình.
TLS không bảo vệ:
- Dữ liệu lưu trữ trong database hoặc trên đĩa.
- Logic của ứng dụng. SQL injection hay lỗi kiểm tra quyền vẫn chạy bình thường qua HTTPS.
- Hai đầu kết nối. Malware trên client, hoặc server bị xâm nhập, vẫn thấy dữ liệu gốc.
- Metadata như tên server và kích thước traffic, người quan sát vẫn thấy một phần.
Điều cần nhớ: TLS bảo vệ đường truyền, không bảo vệ ứng dụng ở hai đầu.
Ý chính
- Ba đảm bảo: bí mật, toàn vẹn, danh tính server
- Certificate được kiểm tra với các CA đáng tin
- Ưu tiên TLS 1.3, bỏ TLS 1.0 và 1.1
- Không bảo vệ dữ liệu lưu trữ hay lỗi ứng dụng
Câu hỏi nối tiếp thường gặp
- TLS và mutual TLS khác nhau thế nào?
- HSTS bổ sung gì so với HTTPS?
Lỗi thường gặp
- Tin rằng có HTTPS là ứng dụng đã an toàn
- Tắt kiểm tra certificate trong code để hết báo lỗi