遵守 Amazon SES 中的 DMARC 身份驗證協議 - Amazon Simple Email Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

遵守 Amazon SES 中的 DMARC 身份驗證協議

網域型郵件驗證、報告及一致性 (DMARC) 是一種電子郵件驗證通訊協定,它使用寄件者政策架構 (SPF) 和 DomainKeys 識別郵件 (DKIM) 來偵測電子郵件詐騙和網路釣魚。為了遵守 DMARC,郵件必須透過 SPF 或 DKIM 進行驗證,但最理想的情況下,兩者都與 DMARC 一起使用時,您將確保電子郵件傳送的最高等級保護。

讓我們簡要回顧一下每個做哪些以及 DMARC 如何將它們聯繫在一起:

  • SPF — 識別允許哪些郵件伺服器透過 DNS 使用的 DNS TXT 記錄,代表您的自訂郵件來源網域傳送郵件。收件者郵件系統會參考 SPF TXT 記錄,以判斷來自自訂網域的郵件是否來自授權的郵件伺服器。基本上,SPF 旨在幫助防止欺騙,但是 SPF 在實踐中容易受到欺騙技術,這就是為什麼您還需要與 DMARC 一起使用 DKIM 的原因。

  • DKIM — 將數位簽章新增至電子郵件標頭中的輸出郵件。接收電子郵件系統可以使用此數位簽章來協助驗證內送電子郵件是否由網域擁有的金鑰簽署。但是,當接收電子郵件系統轉寄郵件時,郵件的信封會以使 SPF 驗證無效的方式變更。由於數位簽章會保留在電子郵件訊息中,因為它是電子郵件標頭的一部分,因此 DKIM 即使在郵件伺服器之間轉寄郵件 (只要郵件內容尚未修改),DKIM 仍可運作。

  • DMARC — 確保網域與至少一個 SPF 和 DKIM 對齊。單獨使用 SPF 和 DKIM 無法確保「寄件者」地址已通過驗證 (這是收件者在其電子郵件用戶端中看到的電子郵件地址)。SPF 僅檢查郵件發件人地址中指定的域(收件人看不到)。DKIM 只會檢查 DKIM 簽章中指定的網域 (也不會被收件者看到)。DMARC 會要求 SPF 或 DKIM 上的網域對齊正確,藉此解決這兩個問題:

    • 若要讓 SPF 傳遞 DMARC 對齊,寄件者位址中的網域必須與 MAIL FROM 位址中的網域相符 (也稱為「退回路徑」和「信封寄件者」位址)。這是很少可能與轉發的郵件,因為它被剝離或通過第三方批量電子郵件提供商發送郵件時,因為返回路徑(MAIL FROM)用於退回和投訴提供商(SES)使用他們擁有的地址跟踪。

    • 若要讓 DKIM 通過 DMARC 對齊,DKIM 簽章中指定的網域必須與寄件者位址中的網域相符。如果您使用的是代表您傳送郵件的協力廠商寄件者或服務,則可以透過確保協力廠商寄件者已正確設定 DKIM 簽署,並且您已在網域中新增適當的 DNS 記錄來達成此目的。接收郵件伺服器將能夠驗證您的第三方傳送給他們的電子郵件,就像電子郵件是由授權使用網域中某個地址的人所傳送的電子郵件一樣。

將所有這些都與 DMARC 放在一起

我們上面討論的 DMARC 對齊檢查顯示 SPF、DKIM 和 DMARC 如何共同運作,以增加對您網域的信任度,並將電子郵件傳送至收件匣。DMARC 可確保收件者看到的寄件者位址已由 SPF 或 DKIM 驗證,藉此達成此目的:

  • 如果一或兩個上述 SPF 或 DKIM 檢查通過,則郵件會通過 DMARC。

  • 如果上述的 SPF 或 DKIM 檢查都失敗,則郵件會失敗 DMARC。

因此,兩者 SPF 和 DKIM 都是 DMARC 最有可能為您傳送的電子郵件進行驗證的必要條件,並且利用這三項功能,您將有助於確保您擁有完全受保護的傳送網域。

DMARC 也可讓您指示電子郵件伺服器如何透過您設定的原則來處理電子郵件 DMARC 驗證失敗。這將在下一節中說明對您的網域設定 DMARC 政策,其中包含有關如何設定 SES 網域的資訊,以便您傳送的電子郵件符合透過 SPF 和 DKIM 的 DMARC 驗證通訊協定。

對您的網域設定 DMARC 政策

若要設定 DMARC,您必須修改您網域的 DNS 設定。您網域的 DNS 設定應該包含指定網域 DMARC 設定的 TXT 記錄。將 TXT 記錄新增到您 DNS 組態的程序取決於您使用的 DNS 或託管提供者。如果您使用 Route 53,請參閱 Amazon Route 53 開發人員指南中的使用記錄。如果使用其他提供者,請參閱您提供者的 DNS 組態文件。

您建立的 TXT 記錄名稱應該是 _dmarc.example.com,其中 example.com 為您的網域。TXT 記錄的值包含套用到您網域的 DMARC 政策。以下為包含 DMARC 政策的 TXT 記錄範例:

名稱 Type Value
_dmarc.example.com TXT "v=DMARC1;p=quarantine;rua=mailto:my_dmarc_report@example.com"

在上述 DMARC 原則範例中,此原則會告知電子郵件提供者執行下列動作:

  • 對於任何未通過驗證的郵件,請依照原則參數所指定,將郵件傳送至垃圾郵件資料夾p=quarantine。其他選項包括使用什麼都不做p=none,或通過使用直接拒絕郵件。p=reject

    • 下一節討論如何以及何時使用這三個原則設定 — 在錯誤的時間使用錯誤的原則設定可能會導致您的電子郵件無法傳送,請參閱實作 DMARC 的最佳做法

  • 依報告參數指定 (ru a 代表彙總報表的 Reporting URI),在摘要中傳送有關驗證失敗之所有電子郵件的報告 rua=mailto:my_dmarc_report@example.com (也就是彙總特定期間的資料,而不是針對每個事件傳送個別報表的報表) 的報表。電子郵件提供者通常每天會傳送一次這些彙總報告,但這些政策因提供者而異。

若要進一步了解為您的網域設定 DMARC,請參閱 DMARC 網站的 概觀

如需 DMARC 系統的完整規格,請參閱網際網路工程工作小組 (IETF) DM ARC 草案。

實作 DMARC 的最佳做法

最好以逐步且分階段的方式實作 DMARC 原則強制執行,這樣就不會中斷其餘的郵件流程。建立並實作遵循下列步驟的推出計劃。請先對每個子網域執行上述步驟,最後執行組織中的頂層網域,然後再繼續進行下一個步驟。

  1. 監控實施 DMARC 的影響 (p= 無)。

    • 從簡單的監視模式記錄開始,子網域或網域要求郵件接收組織傳送給您使用該網域所看到之郵件的統計資料。監視模式記錄是將原則設定為無的 DMARC TXT 記錄。p=none

    • 透過 DMARC 產生的報告會提供通過這些檢查的郵件數量和來源,而不是通過這些檢查的報告。您可以輕鬆查看有多少合法流量是或未被他們覆蓋。您會看到轉寄的跡象,因為如果內容已修改,轉寄的郵件將失敗 SPF 和 DKIM。您還將開始看到有多少欺詐性消息正在發送,以及它們的發送來源。

    • 此步驟的目標是瞭解在您實作接下來兩個步驟之一時,哪些電子郵件會受到影響,並讓任何第三方或授權的寄件者使其 SPF 或 DKIM 原則保持一致。

    • 最適合現有網域使用。

  2. 要求外部郵件系統隔離未通過 DMARC (p= 隔離) 的郵件。

    • 當您認為所有或大部分合法流量傳送與 SPF 或 DKIM 相符的網域,而且您瞭解實作 DMARC 的影響時,您可以實作隔離原則。隔離策略是 DMARC TXT 記錄,其策略設定為隔離p=quarantine。如此一來,您就要求 DMARC 接收者將來自您網域中未通過 DMARC 的郵件放入垃圾郵件資料夾的本機對等資料夾,而不是客戶的收件匣。

    • 最適合在步驟 1 中分析 DMARC 報告的網域轉換。

  3. 要求外部郵件系統不接受 DMARC 失敗的郵件 (p= 拒絕)。

    • 實作拒絕原則通常是最後一個步驟。拒絕原則是 DMARC TXT 記錄,其原則設定為拒絕p=reject。當您這樣做時,您要求 DMARC 收件者不要接受未通過 DMARC 檢查的郵件 — 這表示它們甚至不會被隔離到垃圾郵件或垃圾郵件資料夾,但會被直接拒絕。

    • 使用拒絕原則時,您將確切知道哪些郵件未通過 DMARC 原則,因為拒絕會導致 SMTP 退回。透過隔離,彙總資料會提供有關電子郵件通過或失敗 SPF、DKIM 和 DMARC 檢查的百分比資訊。

    • 最適合經過前兩個步驟的新網域或現有網域。

透過 SPF 來遵循 DMARC

若要讓電子郵件遵循以 SPF 為基礎的 DMARC 驗證,需符合下列條件:

  • 該郵件必須通過 SPF 檢查,以具有有效的 SPF (類型 TXT) 記錄,您必須發佈到您的自訂郵件來自網域的 DNS 組態。

  • 電子郵件標題的寄件者地址中的網域必須與 MAIL FROM 地址中指定的網域或子網域對齊 (相符)。為了達到 SPF 與 SES 的一致性,網域的 DMARC 原則不得指定嚴格的 SPF 原則 (aspf=s)。

為了符合這些要求,請完成以下步驟:

  • 完成 使用自訂「寄件人」網域 中的步驟以設定自訂的「寄件人」網域。

  • 請確任您的傳送網域對 SPF 採取寬鬆政策。如果您尚未變更網域的政策對齊方式,則預設會使用放寬政策,如 SES。

    注意

    若要判定網域對於 SPF 採取的 DMARC 符合度,可於命令列輸入下列命令,以 example.com 取代您的網域:

    dig -type=TXT _dmarc.example.com

    在此命令輸出檔的 Non-authoritative answer (非授權答案) 下,尋找以 v=DMARC1 開頭的記錄。若此記錄包含 aspf=r 字串,或如果 aspf 字串完全未顯示,那麼您的網域就是對於 SPF 採取寬鬆的符合度。若記錄包含 aspf=s 字串,那麼您的網域就是對於 SPF 採取嚴格的符合度。您的系統管理員將需自網域中 DNS 組態的 DMARC TXT 記錄移除此標籤。

    或者,您也可以使用基於 Web 的 DMARC 查詢工具,例如 dmarcian 網站上的 DMARC Inspector 查工具或網站上的 DMARC 檢查工具工具,來確定您 MxToolBox網域對 SPF 的政策對齊方式。

透過 DKIM 來遵循 DMARC

若要讓電子郵件遵循以 DKIM 為基礎的 DMARC 驗證,需符合下列條件:

  • 郵件必須具有有效的 DKIM 簽章,並通過 DKIM 檢查。

  • DKIM 簽章中指定的網域必須與寄件者位址中的網域對齊 (相符)。如果網域的 DMARC 原則指定了 DKIM 的嚴格對齊,則這些網域必須完全相符 (SES 預設會使用嚴格的 DKIM 原則)。

為了符合這些要求,請完成以下步驟:

  • 請完成 Amazon SES 中的 Easy DKIM 中的程序以設定 Easy DKIM。使用 Easy DKIM 時,Amazon SES 自動簽署電子郵件。

    注意

    除了使用 Easy DKIM 外,您也可以手動簽署郵件。不過,若您選擇採取此方法,則必須謹慎處理,因為 Amazon SES 不會驗證您所建構的 DKIM 簽章。因此,我們強烈建議您使用 Easy DKIM。

  • 確定 DKIM 簽章中指定的網域與寄件者位址中的網域對齊。或者,如果從寄件者位址中的網域的子網域傳送,請確定您的 DMARC 政策已設定為放寬對齊。

    注意

    若要判定網域對於 DKIM 採取的 DMARC 符合度,可於命令列輸入下列命令,以 example.com 取代您的網域:

    dig -type=TXT _dmarc.example.com

    在此命令輸出檔的 Non-authoritative answer (非授權答案) 下,尋找以 v=DMARC1 開頭的記錄。若此記錄包含 adkim=r 字串,或如果 adkim 字串完全未顯示,那麼您的網域就是對於 DKIM 採取寬鬆的符合度。若記錄包含 adkim=s 字串,那麼您的網域就是對於 DKIM 採取嚴格的符合度。您的系統管理員將需自網域中 DNS 組態的 DMARC TXT 記錄移除此標籤。

    或者,您可以使用基於 Web 的 DMARC 查詢工具,例如 dmarcian 網站上的 DMARC Inspector 查工具或網站上的 DMARC 檢查工具工具,來確定您的 MxToolBox 域對 DKIM 的政策對齊。