什麼是 DMARC、DKIM 和 SPF?

SPF、DKIM 和 DMARC 透過確認電子郵件來自其聲稱的網域來幫助驗證電子郵件寄件者。這三種驗證方法對於防止垃圾郵件、網路釣魚攻擊和其他電子郵件安全風險非常重要。

學習目標

閱讀本文後,您將能夠:

  • 描述 SPF、DKIM 和 DMARC 的運作方式
  • 說明這些方法如何協助驗證電子郵件寄件者
  • 瞭解 SPF、DKIM 和 DMARC 中使用的 DNS 記錄類型

相關內容


想要繼續瞭解嗎?

訂閱 TheNET,這是 Cloudflare 每月對網際網路上最流行見解的總結!

請參閱 Cloudflare 的隱私權政策,了解我們如何收集和處理您的個人資料。

複製文章連結

什麼是 DMARC、DKIM 和 SPF?

DMARC、DKIM 和 SPF 是三種電子郵件驗證方法。它們共同幫助防止垃圾郵件發信者、網路釣魚者和其他未經授權的各方代表他們不擁有的網域*傳送電子郵件

DKIM 和 SPF 可以比作營業執照或掛在辦公室牆上的醫生醫學學位——它們有助於證明合法性。

同時,DMARC 告訴郵件伺服器在 DKIM 或 SPF 失敗時該怎麼做,是將失敗的電子郵件標記為「垃圾郵件」、仍然傳遞電子郵件,還是完全丟棄這些電子郵件。

沒有正確設定 SPF、DKIM 和 DMARC 的網域可能會發現它們的電子郵件被作為垃圾郵件隔離,或者沒有傳送給它們的收件者。他們還面臨垃圾郵件發信者冒充它們的危險。

*粗略地說,網域就是像「example.com」這樣的網站位址。網域構成電子郵件地址的後半部分:例如 alice@example.com。

報告
2023 年網路釣魚威脅報告
與專家討論
瞭解 Cloudflare 如何保護您的業務

SPF 如何運作?

寄件者原則架構 (SPF) 是網域列出它們傳送電子郵件的所有伺服器的一種方式。可以把它想像成一個公開可用的員工名錄,幫助某人確認員工是否為某個組織工作。

SPF 記錄列出了允許從該網域傳送電子郵件的所有伺服器的所有 IP 位址,就像員工目錄列出了一個組織的所有員工的姓名一樣。接收電子郵件的郵件伺服器可以在將其傳遞到收件者的收件匣之前根據 SPF 記錄對其進行檢查。

註冊
透過任何 Cloudflare 方案獲取安全性和速度

DKIM 如何運作?

網域金鑰識別郵件 (DKIM) 使網域擁有者能夠自動「簽署」來自其網域的電子郵件,就像支票上的簽名有助於確認誰寫了支票一樣。DKIM「簽名」是一種數位簽名,它使用密碼學從數學上驗證電子郵件是否來自該網域。

具體來說,DKIM 使用公開金鑰加密

  • DKIM 記錄儲存網域的公開金鑰,而接收來自該網域電子郵件的郵件伺服器可以檢查此記錄以取得公開金鑰
  • 私密金鑰由寄件者保密,寄件者使用此金鑰簽署電子郵件的標頭
  • 收到電子郵件的郵件伺服器可以透過套用公開金鑰來驗證寄件者的私密金鑰是否已使用

DMARC 如何運作?

基於網域的郵件驗證、報告和一致性 (DMARC) 告訴接收郵件伺服器在檢查 SPF 和 DKIM 後根據結果做什麼。網域的 DMARC 原則可以透過多種方式設定——它可以指示郵件伺服器隔離未通過 SPF 或 DKIM(或兩者)的電子郵件、拒絕此類電子郵件或傳遞郵件。

DMARC 原則儲存在 DMARC 記錄中。DMARC 記錄還可以包含向網域管理員傳送報告的指示,這些報告說明哪些電子郵件通過了檢查,哪些沒有通過。DMARC 報告給管理員提供了所需資訊,幫助他們決定如何調整 DMARC 原則(例如,誤將合法電子郵件標記為垃圾郵件時該如何處理)。

SPF、DKIM 和 DMARC 記錄儲存在哪裡?

SPF、DKIM 和 DMARC 記錄儲存在 Domain Name System (DNS)中,這是公開提供的。DNS 的主要用途是將 Web 位址與 IP 位址進行匹配,這樣電腦就可以找到正確的伺服器來載入網際網路上的內容,而無需人類使用者記住長長的英數字元位址。DNS 還可以儲存與網域關聯的各種記錄,包括該網域的備用名稱(CNAME 記錄)、IPv6 位址(AAAA 記錄)和用於網域查閱的反向 DNS 記錄(PTR 記錄)。

DKIM、SPF 和 DMARC 記錄都儲存為 DNS TXT 記錄。DNS TXT 記錄儲存網域擁有者想要與網域關聯的文字。該記錄可以有多種使用方式,因為它可以包含任何任意文字。DNS TXT 記錄有多種應用,DKIM、SPF 和 DMARC 只是其中三種。

如何檢查電子郵件是否通過了 SPF、DKIM 和 DMARC

大多數電子郵件用戶端都提供一個標記為「顯示詳細資料」或「顯示原文」的選項,顯示原文即顯示電子郵件的完整版本,包括其標頭。標頭通常是郵件內文上方的一個長文字區塊,郵件伺服器將 SPF、DKIM 和 DMARC 檢查結果附加在此處。

完整閱讀資訊密集的標頭會很困難。在瀏覽器上檢視的使用者可以按「Ctrl+F」或「Command+F」並輸入「spf」、「dkim」或「dmarc」來查找這些結果。

相關文字可能如下所示:


arc=pass (i=1 spf=pass spfdomain=example.com dkim=pass
dkdomain=example.com dmarc=pass fromdomain=example.com);

上面這段文字中有「pass」一詞,表明該電子郵件通過了驗證檢查。例如,「spf=pass」意味著這封電子郵件通過了 SPF 檢查;郵件來自授權的伺服器,其 IP 位址在該網域的 SPF 記錄中。

在本範例中,電子郵件通過了 SPF、DKIM 和 DMARC 所有三項檢查,郵件伺服器能夠確認電子郵件確實是來自 example.com 而非假冒者。

需要注意的是,這些記錄本身並不執行網域原則或驗證電子郵件的真實性。郵件伺服器必須檢查並正確應用這些內容,記錄才會產生作用。

同樣重要的是,網域擁有者需要自己正確設定他們的 SPF、DKIM 和 DMARC 記錄——既為防止他人利用自其網域傳送垃圾郵件,也為確保來自其網域的合法郵件不被標記為垃圾郵件。Web 託管服務不一定會自動設定。即使是不傳送電子郵件的網域,也至少應設定 DMARC 記錄,讓垃圾郵件發信者無法假裝從該網域傳送電子郵件。

如何為網域設定 DMARC、DKIM 和 SPF

必須在網域的 DNS 設定中完成 DMARC、DKIM 和 SPF 設定。管理員可以聯絡他們的 DNS 提供者;其 Web 託管平台也可能會提供幫助他們上傳和編輯 DNS 記錄的工具。如要進一步瞭解這些記錄的運作原理,請參閱我們的相關文章:

這些記錄的設定過程可能會複雜而又耗時,而且過於嚴格或過於寬鬆的原則都會對網域產生嚴重的負面影響。為此,Cloudflare 推出了 Email Security DNS Wizard,讓管理員可以快速、正確地設定這些電子郵件驗證的 DNS 記錄。該精靈位於 Cloudflare Dashboard 的 DNS 儀表板下。