DMARC 的全名是「Domain-based Message Authentication,
Reporting & Conformance」,它是用來解決與電子郵件認証所發展出的協定,DMARC 提供一種機制讓發信端和收信端雙方可確認對方身分,從而降低釣魚信件(Fishing)及偽造信件(Spoofing)的發生。透過以下信件流程圖將說明 SPF/DKIM/DMARC 在一封郵件發送過程中的作用為何。使用者寫完一封信後,郵件伺服器會將信件加上 DKIM(DomainKeys Identified Mail)私鑰簽章並寄出,以確保信件傳送過程中不會遭到竄改。收信端的郵件伺服器在接收信件時會先檢查寄件伺服器的 IP 位址是否合法,有無被加到RBL(Real-time Blackhole List)網站黑名單當中。接著從網域名稱伺服器(Domain Name Sever)下載 DKIM 公鑰並加以驗證結果是否相符,之後驗證SPF紀錄(Sender Policy Framework),收件者可以參考 SPF 紀錄,判斷聲稱來自寄件者網域的郵件是否真的由授權的郵件伺服器所傳送,最後再根據 DMARC 的政策決定這封信是否通過(Passed)、隔離(Quarantine)或者拒收(Reject),最後信件才傳給收信端的垃圾信過濾機制。
圖片來源:dmarc.org
MailGates提供DMARC驗證,可有效過濾偽造信件。其驗證結果與SPF及DKIM驗證有相依性,相關驗證結果如下表所示。
# |
SPF驗證結果 |
DKIM驗證結果 |
DMARC驗證結果 |
1 |
O |
O |
O |
2 |
O |
X |
O |
3 |
X |
O |
O |
4 |
X |
X |
X |
注意:如果一封信通過
SPF 驗證或 DKIM 驗證,就算通過DMARC驗證。
以下列出DMARC 驗證結果與系統動作對應表。
DMARC結果 |
動作 |
顯示訊息 |
系統行為 |
NONE |
PASS |
DMARC Authentication Fail [None] |
驗證失敗 |
REJECT |
REJECT |
DMARC Authentication Fail [Reject] |
拒絕連線 |
QUARANTINE |
SPAM |
DMARC Authentication Fail [Quarantine] |
垃圾信 |
PASS |
PASS |
DMARC Authentication Success |
驗證成功 |
OTHER |
PASS |
不顯示 |
信件往後送 |
注意:DMARC 驗證結果會影響系統對信件判讀。如果一封信 DMARC 驗證結果為
QUARANTINE 系統就會將其判斷為垃圾信。