Giao thức gửi thư điện tử ra đời khi Internet còn là một mạng nhỏ giữa những tổ chức tin nhau. Nó không có cơ chế nào kiểm tra người gửi có đúng là người họ khai hay không. Bất kỳ máy chủ nào cũng gửi được thư ghi “From: [email protected]”. SPF, DKIM và DMARC là ba lớp vá được thêm vào sau này để bịt lỗ hổng đó.
SPF — ai được phép gửi thư nhân danh tên miền
SPF là một bản ghi TXT trong DNS, liệt kê những máy chủ được phép gửi thư cho tên miền của bạn:
v=spf1 include:_spf.google.com include:icloud.com ~all
Máy chủ nhận thư sẽ tra bản ghi này và so với địa chỉ IP thực sự đang kết nối tới. Không khớp thì thư đáng ngờ.
Phần cuối quyết định mức độ nghiêm khắc:
-all— từ chối thẳng thư từ nguồn không có trong danh sách.~all— đánh dấu nghi ngờ nhưng vẫn nhận. Đây là lựa chọn an toàn khi mới triển khai.?all— không ý kiến gì, gần như vô dụng.
Hạn chế lớn nhất của SPF: nó kiểm tra địa chỉ ở tầng phong bì, không phải dòng “From” mà người nhận nhìn thấy. Và nó vỡ khi thư được chuyển tiếp, vì máy chủ chuyển tiếp không nằm trong danh sách của bạn.
Một giới hạn kỹ thuật hay bị bỏ qua: SPF chỉ cho phép tối đa 10 lượt tra cứu DNS. Gộp quá nhiều include: sẽ vượt ngưỡng và bản ghi hỏng lặng lẽ.
DKIM — chữ ký số cho từng lá thư
DKIM tiếp cận theo hướng khác. Máy chủ gửi ký lên nội dung thư bằng khoá riêng, gắn chữ ký vào phần header. Khoá công khai tương ứng đặt trong DNS.
Máy chủ nhận lấy khoá công khai từ DNS, kiểm tra chữ ký. Khớp nghĩa là thư đúng do tên miền đó phát ra và không bị sửa trên đường đi.
Ưu điểm so với SPF: chữ ký đi cùng lá thư, nên thư vẫn hợp lệ sau khi được chuyển tiếp qua nhiều chặng.
DMARC — dán hai mảnh lại và bảo phải làm gì
SPF và DKIM mỗi cái kiểm tra một khía cạnh, nhưng không cái nào nói cho máy chủ nhận biết phải xử lý ra sao khi kiểm tra thất bại. DMARC lấp chỗ đó:
v=DMARC1; p=none; rua=mailto:[email protected]; pct=100
p=none— chỉ theo dõi và gửi báo cáo, không chặn gì.p=quarantine— đẩy thư đáng ngờ vào hộp thư rác.p=reject— từ chối thẳng.
DMARC còn thêm một yêu cầu quan trọng gọi là alignment: tên miền mà SPF hoặc DKIM xác thực phải khớp với tên miền trong dòng “From” người nhận thấy. Chính điều này chặn được kiểu tấn công qua mặt SPF bằng cách dùng phong bì một tên miền còn hiển thị tên miền khác.
Thứ tự triển khai an toàn
Sai lầm phổ biến nhất là bật p=reject ngay từ đầu, rồi phát hiện thư của chính công ty mình bị chặn — hoá đơn tự động, thông báo từ CRM, bản tin gửi qua dịch vụ bên thứ ba đều biến mất mà không ai biết.
Thứ tự nên làm:
- Dựng SPF với
~all, liệt kê đủ mọi nguồn thực sự gửi thư nhân danh bạn. - Bật DKIM cho toàn bộ nguồn gửi đó.
- Đặt DMARC ở
p=nonekèm địa chỉ nhận báo cáo. Chờ ít nhất vài tuần. - Đọc báo cáo, tìm nguồn gửi hợp lệ đang trượt và sửa cấu hình cho chúng.
- Chỉ khi báo cáo đã sạch mới nâng dần lên
quarantine, rồireject.
Vì sao đáng bỏ công
Không có ba lớp này, bất kỳ ai cũng gửi được thư trông như từ tên miền công ty bạn. Đó là nền của phần lớn các vụ lừa chuyển tiền qua email. Cấu hình đúng không tốn tiền, chỉ tốn thời gian đọc báo cáo trong giai đoạn đầu.
Chiều ngược lại cũng quan trọng: tên miền có SPF, DKIM, DMARC đầy đủ được các nhà cung cấp hộp thư đánh giá cao hơn, thư ít rơi vào hộp rác hơn.

