Ba tầng, ba mối đe doạ khác nhau
"Dữ liệu của chúng ta được mã hoá khi lưu trữ" là câu trả lời cho một câu hỏi kiểm toán, và nó thường không trả lời câu hỏi thật: mã hoá đó chống được ai?
Ba tầng, và mỗi tầng chống đúng một mối đe doạ:
| Tầng | Chống được | KHÔNG chống được |
|---|---|---|
| Mã hoá đĩa (LUKS, EBS encryption) | Ai đó lấy được ổ đĩa vật lý, hoặc một snapshot bị copy | Mọi thứ đi qua cơn sở dữ liệu đang chạy |
| TDE / mã hoá ở DB | Ai đó copy được file dữ liệu hoặc bản backup | Một truy vấn SQL — kể cả truy vấn của kẻ tấn công |
| Mã hoá ở tầng ứng dụng | Cả DBA, cả người đọc backup, và cả SQL injection | Kẻ tấn công đã chạy được code trong ứng dụng |
Điểm quan trọng nhất và hay bị hiểu sai: mã hoá đĩa và TDE trong suốt với mọi truy vấn. Cơ sở dữ liệu giải mã khi đọc, nên một SELECT * FROM users trả về plaintext — dù đó là truy vấn của bạn hay của một kẻ tấn công đi qua SQL injection. Hai tầng đó chống mất thiết bị, không chống mất quyền truy cập.
Nghĩa là nếu mối đe doạ bạn lo là "một lỗ hổng trong ứng dụng làm rò rỉ số thẻ", thì mã hoá đĩa không đóng góp gì, và chỉ mã hoá ở tầng ứng dụng mới đóng góp.
Nhưng mã hoá ở tầng ứng dụng có ba cái giá thật, và chúng là lý do đừng mã hoá tất cả:
- Không tìm kiếm được.
WHERE email = @xkhông hoạt động trên cột đã mã hoá. Cần tìm thì phải lưu thêm một cột HMAC của giá trị (không phải hash thường, vì hash không khoá thì dò được bằng từ điển) để so khớp chính xác. So khớp một phần thì không làm được. - Không sắp xếp, không so sánh khoảng. Một cột
salaryđã mã hoá khôngORDER BYđược. - Quản khoá trở thành bài toán của bạn. Và đó là bài toán khó hơn mã hoá.
Nên câu hỏi thực dụng không phải "có mã hoá không" mà "cột nào, chống ai, và chấp nhận mất gì".
Bình luận
Bình luận cần tài khoản đã hoàn thành ít nhất một bài học. Điều kiện đó là thứ giữ cho luồng thảo luận này còn đáng đọc: mỗi ý kiến gắn với một người có thể bị hỏi lại, và reputation tích luỹ theo thời gian.
Bạn vẫn đọc được toàn bộ bình luận dưới đây mà không cần tài khoản. Đăng nhập xong bạn sẽ quay lại đúng chỗ này, không phải đầu trang.
Đang tải bình luận…