DMARC 是電子郵件安全的重要部分。DMARC 原則會儲存在 DNS TXT 記錄中。
閱讀本文後,您將能夠:
相關內容
訂閱 TheNET,這是 Cloudflare 每月對網際網路上最流行 見解的總結!
複製文章連結
基於網域的郵件驗證、報告和一致性 (DMARC) 是驗證電子郵件訊息的一種方法。DMARC 原則會告知接收電子郵件伺服器在檢查網域的寄件者原則架構 (SPF) 和網域金鑰識別郵件 (DKIM) 記錄(這些記錄是額外的電子郵件驗證方法。)後該怎麼做。
為了防止電子郵件詐騙,DMARC 和其他電子郵件驗證方法是必要的。每個電子郵件地址都有一個網域,也就是「@」符號後面的地址部分。惡意方和垃圾郵件發信者有時會嘗試從他們未經授權使用的網域傳送電子郵件,例如有人在信件上寫錯誤的回郵地址。他們可能會這樣做的原因之一是為了欺騙使用者(例如在網路釣魚攻擊中)。
DMARC、DKIM 和 SPF 結合起來,對電子郵件寄件者進行背景檢查,以確保他們確實是所聲稱的人。
例如,假設垃圾郵件發信者從地址「trustworthy@example.com」傳送了一封電子郵件,而他們本身無權從「example.com」網域傳送電子郵件。垃圾郵件發信者會透過將電子郵件中的「寄件者」標頭替換為「trustworthy@example.com」來做到這一點——他們不會從實際的 example.com 電子郵件伺服器傳送電子郵件。接收此電子郵件的電子郵件伺服器可以使用 DMARC、SPF 和 DKIM 來發現這是未經授權的電子郵件,然後他們可以將該電子郵件標記為垃圾郵件或拒絕傳遞。
DMARC 原則決定在對一封電子郵件進行 SPF 和 DKIM 記錄檢查後發生的情況。一封電子郵件要么通過 SPF 和 DKIM,要么不通過。DMARC 原則決定了當電子郵件未通過檢查時,會被標記為垃圾郵件、被封鎖,還是被傳遞給預定的收件者。(如果沒有 DMARC 記錄,電子郵件伺服器仍然可以將電子郵件標記為垃圾郵件,但 DMARC 對何時這樣做提供了更明確的指示)。
example.com 的網域原則可以是:
「如果電子郵件未通過 DKIM 和 SPF 測試,請將其標記為垃圾郵件。」
這些原則不是作為人類可讀的句子來記錄的,而是作為機器可讀的命令,以便電子郵件服務能夠自動解釋它們。該 DMARC 原則實際上類似於以下內容:
v=DMARC1; p=quarantine; adkim=s; aspf=s;
這是什麼意思?
v=DMARC1
表示此 TXT 記錄包含一個 DMARC 原則,應該被電子郵件伺服器解釋為該原則的內容。p=quarantine
表示電子郵件伺服器應當「隔離」未通過 DKIM 和 SPF 的電子郵件,將它們視為潛在的垃圾郵件。其他可能的設定包括 p=none
,它允許未通過檢查的電子郵件仍然傳遞,以及 p=reject
,它指示電子郵件伺服器封鎖未通過檢查的電子郵件。adkim=s
意味著 DKIM 檢查是「strict(嚴格的)」。將 s
改為 r
,即可將其設定為「relaxed(寬鬆的)」,比如 adkim=r
。aspf=s
的作用與 adkim=s
相同,但是用於 SPF。aspf
和 adkim
是選用設定。p=
屬性指示電子郵件伺服器應當如何處理那些未通過 SPF 和 DKIM 的電子郵件。如果 example.com 的管理員想讓這個原則更加嚴格,向電子郵件伺服器發出更強烈的訊號,將未經授權的郵件視為垃圾郵件,則可以按以下方式調整「p=」屬性:
v=DMARC1; p=reject; adkim=s; aspf=s;
這行命令的大體意思是:「如果一封電子郵件沒有通過 DKIM 和 SPF 測試,就不要投遞。」
DMARC 原則可以包含傳送報告的指示,這些報告關於通過或未通過 DKIM 或 SPF 的電子郵件。通常情況下,管理員會設定報告,將其傳送到第三方服務,該第三方服務將報告簡化為更易理解的形式,以便管理員無需面對大量無效資訊。DMARC 報告極為重要,因為它們給管理員提供所需的資訊,以便決定如何調整其 DMARC 原則。例如,當他們的合法電子郵件沒有通過 SPF 和 DKIM,或者當垃圾郵件發信者試圖傳送非法電子郵件時,就需要進行調整。
example.com 管理員會在這個原則中新增 rua
部分,將他們的 DMARC 報告傳送給第三方服務(電子郵件地址為「example@third-party-example.com」):
v=DMARC1; p=reject; adkim=s; aspf=s; rua=mailto:example@third-party-example.com;
DMARC 記錄儲存了一個網域的 DMARC 原則。DMARC 記錄儲存在 Domain Name System (DNS) 中,以 DNS TXT 記錄的形式存在。一個 DNS TXT 記錄幾乎可以包含網域管理員想要與他們的網域相關聯的任何文字。DNS TXT 記錄的用途之一是儲存 DMARC 原則。
(請注意,DMARC 記錄是包含 DMARC 原則的 DNS TXT 記錄,而不是專門的 DNS 記錄類型。)
example.com 的 DMARC 原則可能如下所示:
姓名 | 類型 | 目錄 | TTL |
---|---|---|---|
_dmarc.example.com |
TXT |
v=DMARC1; p=quarantine; adkim=r; aspf=r; rua=mailto:example@third-party-example.com; |
32600 |
在此 TXT 記錄中,DMARC 原則包含在「內容」欄位中。
不傳送電子郵件的網域也應當有一個 DMARC 記錄,以防止垃圾郵件發信者使用該網域。DMARC 記錄應當有一個 DMARC原則,拒絕所有未通過 SPF 和 DKIM 的電子郵件——這應當是該網域傳送的所有電子郵件。
換句話說,如果 example.com 沒有被設定為傳送電子郵件,則所有電子郵件都將無法通過 SPF 和 DKIM 且被拒絕。
如需在 Cloudflare 中設定此記錄的協助,請使用電子郵件安全性 DNS 精靈。
進一步瞭解電子郵件的 DNS 記錄:
DMARC 將在 RFC 7489 中進行詳述。