什麼是 DNS SPF 記錄?

SPF 記錄是一種常用於電子郵件認證的 DNS TXT 記錄。SPF 記錄包括一個獲授權從該網域發送電子郵件的 IP 位址和網域的列表。

學習目標

閱讀本文後,您將能夠:

  • 定義 DNS SPF 記錄
  • 說明 DNS SPF 記錄的好處
  • 瞭解 DNS SPF 記錄的組成部分

複製文章連結

什麼是 DNS SPF 記錄?

發送方原則框架 (SPF) 記錄是一種 DNS TXT 記錄,其中列出所有所有獲得授權從特定網域發送電子郵件的伺服器。DNS TXT(「文字」)記錄允許網域管理員將任意文本輸入到網域名稱系統(DNS)中。TXT 記錄最初是為包含有關網域的重要資訊而創建的,但後來已經發展為服務其他目的。

最初創建 SPF 是因為電子郵件使用的標準協定——簡單郵件傳輸協定(SMTP)——本身並不驗證電子郵件中的「寄件者」地址。這意味著,如果沒有 SPF 或其他身份驗證記錄,攻擊者可以輕易假冒一個寄件者,欺騙收件人採取某種行動或共用資訊。

可將 SPF 記錄想像為門童管理的客人清單。如果某人不在清單上,門童就不會讓其進入。同樣,如果 SPF 記錄的清單中沒有某個發送者的 IP 位址或網域,接收方伺服器(門童)將不投遞哪些電子郵件或將它們標記為垃圾郵件。

有很多基於 DNS 的機制可以幫助電子郵件伺服器確認電子郵件是否來自可信來源,SPF 記錄只是其中之一。基於網域的消息驗證、報告與一致性(DMARC)和網網域名稱金鑰識別郵件(DKIM)是另外兩種用於電子郵件驗證的機制。

值得注意的是,SPF 曾經有一個專用的 DNS 記錄類型。該專用 DNS 記錄類型已被棄用,僅使用 TXT 記錄。

報告
用於 DNS 安全性的 GigaOm Radar
電子書
在攻擊生命週期的所有階段提供 Everywhere Security

郵件伺服器如何檢查 SPF 記錄?

郵件伺服器檢查 SPF 記錄的過程比較簡單:

  • 伺服器 1 發送電子郵件。其 IP 位址是 192.0.2.0,電子郵件使用的返回路徑為email@returnpath.com。(返回位址不同於「寄件者」位址,專用於收集和處理退回的消息。)
  • 接收該消息的郵件伺服器(伺服器 2)讀取返回路徑的網域並搜尋其 SPF 記錄。
  • 如果伺服器 2 為返回路徑的網域找到 SPF 記錄,就會在 SPF 記錄的授權發送方清單中搜尋伺服器 1 的 IP 位址。如果該 IP 位址包含於 SPF 記錄的清單中,則 SPF 檢查通過,該電子郵件將得以通過。如果該 IP 位址未包含於 SPF 記錄的清單中,則 SPF 檢查失敗。在這種情況下,該電子郵件將被拒收或標記為垃圾郵件。
註冊
所有 Cloudflare 方案中均包含免費 DNS

SPF 記錄是什麼樣的?

SPF 記錄必須遵循一定的標準,以便伺服器理解其內容。如下是 SPF 記錄核心組成部分的示例:

v=spf1 ip4:192.0.2.0 ip4:192.0.2.1 include:examplesender.email -all

這個例子讓伺服器知道這是什麼類型的記錄,聲明對這個網域而言被批准的 IP 位址和協力廠商,並告知伺服器如何處理不符合要求的電子郵件。我們分別說明各組成部分是如何實現這一點的:

  • v=spf1 告訴伺服器這裡包含一條 SPF 記錄。每一條 SPF 記錄都必須以這個字串開始。
  • 然後是 SPF 記錄的「客人清單」部分,即授權 IP 位址。在本例中,SPF 記錄告訴伺服器,ip4:192.0.2.0ip4:192.0.2.1 被授權代表該網域發送電子郵件。
  • include:examplesender.net 是 “include”(包含)標記的示例,該標記告訴伺服器,有哪些協力廠商組織被授權代表該網域發送電子郵件。這個標記表示,被包含網域(examplesender.net)的 SPF 記錄內容應被檢查,其中包含的 IP 位址也應被視為已授權。一條 SPF 記錄中可包含多個網域,但這個標記僅適用於有效的網域。
  • Finally, -all 告訴伺服器,SPF 記錄中未列出的位址沒有被授權發送電子郵件並應被拒絕。
    • 這裡的其他可選項包括 ~all:表示未列出的電子郵件將被標記為不安全郵件或垃圾郵件,但仍會被接受;不那麼常見的是 +all:表示任何伺服器都可以代表該網域發送電子郵件。

雖然本文中使用的示例相當簡單,但 SPF 記錄肯定會更加複雜。要確保 SPF 記錄有效,需要注意如下幾點:

  • 每個網域不能關聯多條 SPF 記錄。
  • 記錄必須以 all 部分結束,或包含一個 redirect= 部分(表示該 SPF 記錄由另一個網域託管)。
  • SPF 記錄不能包含大寫字母。

更多資訊請參閱官方 SPF 記錄文檔

為什麼使用 SPF 記錄?

網域運營者使用 SPF 記錄的原因很多:

  • 防範攻擊: 如果不對電子郵件進行驗證,公司和電子郵件接收人將面臨網路釣魚攻擊、垃圾郵件和電子郵件欺騙等風險。有了 SPF 記錄,攻擊者更難假冒某個網域,從而降低了發生以上攻擊的可能性。
  • 提高電子郵件的可交付性:對於未發佈 SPF 記錄的網域,所發出的電子郵件可能會被拒收或標記為垃圾郵件。隨著時間的推移,被退回或被標記為垃圾郵件的電子郵件會損害網域到達用戶收件箱的能力,影響與客戶、員工和其他實體的通信。
  • DMARC 合規: DMARC 是一個電子郵件驗證系統,幫助確保電子郵件僅由授權使用者發送。DMARC 原則規定伺服器應該如何處理 SPF 和 DKIM 檢查失敗的郵件。根據 DMARC 原則指示,這些電子郵件將被標記為垃圾郵件、被拒絕或正常發送。網域管理員會收到關於其電子郵件活動的報告,以幫助他們調整原則。

如何在 Cloudflare 中設定 SPF 記錄

若要在 Cloudflare 中輕鬆設定 SPF 記錄,請使用電子郵件安全性 DNS 精靈

進一步瞭解電子郵件的 DNS 記錄: