← RFC Reference

DMARC — Xác thực Tin nhắn dựa trên Tên miền, Báo cáo và Tuân thủ

Informational Email Authentication Published March 2026
ELI5: [SPF](spf) kiểm tra địa chỉ trả lại trên bao thư. [DKIM](dkim) kiểm tra con dấu sáp trên lá thư. Nhưng cả hai đều không xác nhận rằng tên trong đầu thư (địa chỉ `From:` mà người dùng nhìn thấy) có khớp với danh tính đã được xác minh. DMARC là quy tắc nói: "Tên trên đầu thư phải khớp với địa chỉ trả lại trên bao thư hoặc con dấu sáp — và nếu không khớp, đây là cách xử lý lá thư."

Tại Sao RFC Này Tồn Tại

SPF và DKIM mạnh mẽ, nhưng mỗi cái đều có một lỗ hổng quan trọng. SPF xác thực miền người gửi phong bì, điều mà người dùng không bao giờ thấy. DKIM xác thực bất kỳ miền nào mà người ký chọn, có thể là miền của ESP chứ không phải người gửi hiển thị. Cả hai riêng lẻ đều không ngăn chặn kẻ tấn công giả mạo tiêu đề From: mà người dùng thực sự đọc.

DMARC đóng lỗ hổng này bằng cách giới thiệu hai khái niệm:

  1. Căn chỉnh định danh: Ít nhất một trong SPF hoặc DKIM phải vừa vượt qua có miền được xác thực phù hợp với miền tiêu đề From:.
  2. Chính sách chủ sở hữu miền: Chủ sở hữu miền công bố bản ghi DNS khai báo những gì người nhận nên làm khi căn chỉnh thất bại: giám sát (p=none), cách ly (p=quarantine), hoặc từ chối (p=reject).

DMARC cũng định nghĩa cơ chế báo cáo tổng hợp, cho phép chủ sở hữu miền nhận báo cáo XML hàng ngày cho thấy miền của họ đang được sử dụng (và bị lạm dụng) như thế nào trên toàn internet.

Cách Nó Hoạt Động

Luồng Đánh Giá DMARC

  1. Một tin nhắn đến với From: user@example.com.
  2. Người nhận kiểm tra SPF với miền người gửi phong bì. Nếu SPF vượt qua và miền phong bì khớp với example.com (hoặc miền con, tùy thuộc vào chế độ căn chỉnh), SPF được "căn chỉnh."
  3. Người nhận kiểm tra DKIM. Nếu chữ ký hợp lệ có d=example.com (hoặc miền con), DKIM được "căn chỉnh."
  4. Nếu ít nhất một trong SPF hoặc DKIM vừa vượt qua vừa được căn chỉnh, DMARC vượt qua.
  5. Nếu DMARC thất bại, người nhận truy vấn _dmarc.example.com để lấy chính sách và áp dụng nó.

Bản Ghi DNS DMARC

_dmarc.example.com. IN TXT "v=DMARC1; p=reject; rua=mailto:dmarc-reports@example.com; ruf=mailto:dmarc-forensic@example.com; adkim=r; aspf=r; pct=100"

Căn Chỉnh Trong Thực Tế

# Tin nhắn đến:
# Phong bì: MAIL FROM:<bounce@mail.example.com>
# Tiêu đề: From: sales@example.com
# Chữ ký DKIM: d=example.com

# Kiểm tra SPF:
Miền SPF: mail.example.com (từ phong bì)
Miền From: example.com
Căn chỉnh SPF (nослабленное): mail.example.com <-> example.com = VƯỢT QUA (cùng miền tổ chức)

# Kiểm tra DKIM:
Miền DKIM d=: example.com
Miền From: example.com
Căn chỉnh DKIM: example.com <-> example.com = VƯỢT QUA (khớp chính xác)

Kết quả DMARC: VƯỢT QUA (cả SPF và DKIM đều được căn chỉnh)

Chi Tiết Kỹ Thuật Chính

Thẻ Chính Sách

Thẻ Giá Trị Mô Tả
v DMARC1 Phiên bản (bắt buộc, phải là đầu tiên)
p none, quarantine, reject Chính sách cho miền (bắt buộc)
sp none, quarantine, reject Chính sách cho miền con (mặc định là p)
rua mailto: URI(s) Nơi gửi báo cáo tổng hợp (cách nhau bằng dấu phẩy)
ruf mailto: URI(s) Nơi gửi báo cáo pháp y/thất bại
adkim r (nослабленное), s (nghiêm ngặt) Chế độ căn chỉnh DKIM. Nослабленное cho phép miền con.
aspf r (nослабленное), s (nghiêm ngặt) Chế độ căn chỉnh SPF. Nослабленное cho phép miền con.
pct 0–100 Phần trăm thư thất bại để áp dụng chính sách (cho triển khai dần dần)
fo 0, 1, d, s Các tùy chọn báo cáo thất bại

Chế Độ Căn Chỉnh

Căn chỉnh nослабленное (mặc định, adkim=r / aspf=r): Miền được xác thực và miền From: chia sẻ cùng miền tổ chức. Ví dụ, mail.example.com căn chỉnh với example.com.

Căn chỉnh nghiêm ngặt (adkim=s / aspf=s): Miền được xác thực phải khớp chính xác với miền From:. mail.example.com không căn chỉnh với example.com.

Báo Cáo Tổng Hợp (rua)

Các người nhận hỗ trợ DMARC gửi báo cáo tổng hợp hàng ngày ở định dạng XML tới địa chỉ rua. Những báo cáo này chứa:

Những báo cáo này là vô giá để phát hiện những người gửi trái phép, xác định những nguồn hợp pháp được định cấu hình không chính xác, và xây dựng sự tự tin trước khi siết chặt chính sách của bạn từ none thành reject.

Xác Minh Điểm Đến Bên Ngoài

Nếu địa chỉ rua hoặc ruf của bạn nằm ở miền khác (ví dụ: rua=mailto:reports@analytics.com), miền nhận phải công bố bản ghi DNS để cấp phép nó:

example.com._report._dmarc.analytics.com. IN TXT "v=DMARC1"

Không có bản ghi này, những người gửi báo cáo sẽ không gửi báo cáo tới địa chỉ bên ngoài, như một biện pháp bảo vệ chống lại việc sử dụng báo cáo DMARC như một vectơ từ chối dịch vụ.

Những Sai Lầm Phổ Biến

Tác Động Khả Năng Gửi

Related RFCs