SPF, DKIM và DMARC là gì? Giải thích dễ hiểu

SPF, DKIM và DMARC là gì? Giải thích dễ hiểu

SPF, DKIM và DMARC là gì? Giải thích dễ hiểu

Bạn gửi thư từ tên miền của mình, thư đi được, nhưng một nửa số người nhận chẳng bao giờ thấy nó trong hộp thư đến. Trước khi đổ lỗi cho nội dung hay tần suất gửi, hãy kiểm tra ba bản ghi DNS: SPF, DKIM và DMARC. Đó là lớp xác thực mà Gmail, Outlook và Yahoo dùng để quyết định thư của bạn có đáng tin hay không; từ năm 2024 các nhà cung cấp lớn còn bắt buộc phải có đủ cả ba. Dựng xong rồi thì việc tiếp theo là kiểm tra tính hợp lệ của danh sách địa chỉ, vì tỉ lệ bounce cao sẽ phá hỏng mọi thứ bạn vừa cấu hình.

SPF — máy chủ nào được phép gửi thư nhân danh bạn

SPF (Sender Policy Framework) là bản ghi TXT ở gốc tên miền, liệt kê những máy chủ được phép gửi thư mang địa chỉ @tenmiencuaban. Máy chủ nhận tra bản ghi đó rồi đối chiếu với IP đang kết nối. Bản ghi tối thiểu: v=spf1 include:_spf.google.com include:sendgrid.net ~all

Mỗi phần include: uỷ quyền cho một nhà cung cấp bạn thực sự dùng — nền tảng email doanh nghiệp, dịch vụ gửi hàng loạt, biểu mẫu liên hệ trên website. Phần cuối là chính sách: ~all nghĩa là "mọi nguồn khác đều đáng ngờ", còn -all nghĩa là "từ chối thẳng". Hãy bắt đầu bằng ~all, chỉ chuyển sang -all khi chắc đã liệt kê hết nguồn gửi.

DKIM — chữ ký mã hoá cho từng lá thư

SPF chỉ nói về máy chủ, không nói gì về nội dung. DKIM (DomainKeys Identified Mail) lấp đúng chỗ trống đó: máy chủ gửi ký từng lá thư bằng khoá riêng, còn khoá công khai tương ứng nằm trong DNS dưới dạng bản ghi TXT tại selector._domainkey.tenmiencuaban. Bên nhận lấy khoá đó kiểm chữ ký và biết chắc tiêu đề cùng nội dung không bị sửa trên đường đi.

"Selector" chỉ là cái nhãn do nhà cung cấp đặt (google, s1, k1), nhờ vậy một tên miền mang được nhiều khoá cùng lúc.

DMARC — chính sách và báo cáo gắn kết hai thứ trên

DMARC nằm tại _dmarc.tenmiencuaban và trả lời hai câu hỏi: nếu cả SPF lẫn DKIM đều không đạt thì làm gì, và gửi báo cáo về đâu. Bản ghi khởi đầu hợp lý là v=DMARC1; p=none; rua=mailto:dmarc@tenmiencuaban.com.

Ba mức chính sách: p=none chỉ quan sát, p=quarantine đẩy thư vào spam, p=reject từ chối hẳn. Chi tiết quan trọng và hay bị bỏ sót nhất là alignment: DMARC chỉ đạt khi tên miền trong dòng "From:" người đọc nhìn thấy khớp với tên miền đã vượt qua SPF hoặc DKIM. Vì thế một hệ thống có thể qua SPF mà vẫn trượt DMARC, nếu nó gửi bằng tên miền kỹ thuật của nhà cung cấp.

Những lỗi hay gặp nhất

  • Hai bản ghi SPF trên cùng một tên miền. Không hợp lệ: kết quả là permerror, coi như bạn chẳng có SPF nào. Phải gộp mọi include vào đúng một chuỗi v=spf1.
  • Vượt quá 10 lượt tra cứu DNS. Mỗi include, a, mx đều tốn một lượt; quá giới hạn là cả bản ghi hỏng. Hãy bỏ nhà cung cấp không còn dùng.
  • Để p=none mãi mãi. Nó không bảo vệ gì cả, chỉ là giai đoạn quan sát trước khi nâng lên quarantine rồi reject.
  • Quên alignment. Dịch vụ khảo sát hay CRM thường gửi hộ bằng tên miền của họ; không cấu hình tên miền và DKIM riêng thì DMARC vẫn trượt.
  • Không ai đọc báo cáo rua. Chính chúng cho thấy còn hệ thống nào đang gửi thư nhân danh tên miền của bạn.

Cách kiểm tra bản ghi của bạn

Nhanh nhất là tự gửi cho mình một lá thư rồi mở phần tiêu đề đầy đủ — trong Gmail là "Show original". Bạn cần thấy đủ ba dòng spf=pass, dkim=passdmarc=pass; thiếu dòng nào thì đó là chỗ cần sửa. Muốn thử mà không đụng tài khoản thật, hãy gửi vào một địa chỉ tạm trên hộp thư dùng một lần của 1mail.lt: thư đến trong vài giây và bạn xem được ngay.

Thứ tự đúng: xác thực, dọn danh sách, rồi mới gửi

Xác thực trả lời câu "lá thư này có đúng là của bạn không", chứ không trả lời câu "người nhận có muốn nhận không". Một tên miền đủ cả ba bản ghi nhưng gửi vào danh sách cũ đầy địa chỉ chết vẫn mất uy tín rất nhanh, bởi bounce cứng và bẫy spam là hai tín hiệu tiêu cực mạnh nhất mà bộ lọc nhìn vào. Cũng nên phân biệt loại lỗi trả về; bài bounce vĩnh viễn và bounce tạm thời giải thích cái nào phải gỡ ngay, cái nào chỉ cần thử lại sau.

Trình tự thực tế: dựng ba bản ghi, chạy p=none vài tuần để đọc báo cáo, lọc danh sách bằng công cụ xác minh email để bỏ địa chỉ sai cú pháp và hộp thư đã đóng, rồi mới tăng khối lượng gửi và nâng DMARC lên reject.

Câu hỏi thường gặp

Có nhất thiết phải dùng cả ba bản ghi không?

Có. SPF không bảo vệ nội dung, DKIM không nói ai được phép gửi, còn DMARC vô nghĩa nếu thiếu hai cái kia. Các hộp thư lớn đánh giá cả ba như một bộ.

Tên miền không gửi thư thì có cần cấu hình gì không?

Rất nên, vì một tên miền im lặng vẫn bị mạo danh. Đặt SPF v=spf1 -all và DMARC v=DMARC1; p=reject; để tuyên bố rằng không ai được phép gửi thư nhân danh nó.

Bao lâu thì được chuyển từ p=none sang p=reject?

Thường là bốn đến tám tuần. Điều kiện không phải thời gian mà là dữ liệu: báo cáo cho thấy mọi nguồn gửi hợp pháp đều đạt alignment.

Có đủ ba bản ghi rồi mà vẫn vào spam thì sao?

Xác thực chỉ là điều kiện cần. Phần còn lại là uy tín người gửi: tần suất ổn định, danh sách sạch, liên kết huỷ đăng ký rõ ràng và nội dung người nhận thật sự mở.

thẻ:
#SPF # DKIM # DMARC # xác thực email # khả năng gửi đến # chống giả mạo email