Domain-Name-System

用於備用域身份驗證的 SPF、DomainKeys 和 DKIM

  • August 29, 2016

假設我的域是 example.com,我們有 SMTP 伺服器的 SPF 記錄example.com。現在假設我已經決定允許example.orgexample.com.I 的身份發送郵件。我知道如何添加example.org到 SPF 但如果我還想使用 DomainKeys 或 DKIM 來驗證 example.org,密鑰是否需要在example.comexample.org?例如,

我會使用:

_domainkey.example.com.                  IN TXT          "t=y\; o=~\;"
xxxxxxx._domainkey.example.com.           IN TXT          "k=rsa\;
p=xxxxxxxxxxx

或者

_domainkey.example.org.                  IN TXT          "t=y\; o=~\;"
xxxxxxx._domainkey.example.org.           IN TXT          "k=rsa\;
p=xxxxxxxxxxx

還,

1)誰生成密鑰?example.com還是example.org?(我很確定 example.org 會製作密鑰,然後向我們發送公共 DNS,但不確定)

  1. 我是否需要 SPF 和密鑰,或者僅密鑰就足以驗證另一個域並允許它通過驗證?(我處於只想使用鍵的位置)

  2. 在提供者檢查方面,哪一個更好用?例如,提供者是否像 SPF 一樣檢查密鑰?

作為電子郵件發件人,正確配置您的伺服器對於建立可信度/信任大有幫助。現在幾乎所有的評估都是自動化的,許多組織對他們發布的內容有選擇性。與我的伺服器的大部分連接顯然是垃圾郵件。

1)誰生成密鑰?example.com 還是 example.org?(我很確定 example.org 會製作密鑰,然後向我們發送公共 DNS,但不確定)

您可以使用現有密鑰為兩個域簽名。訣竅是使用正確的簽名者簽署電子郵件。我從發件人地址中提取域並作為該域簽名。

擁有多個具有不同選擇器的活動公鑰是完全可以接受的。在密鑰更換期間,您將希望舊密鑰和新密鑰處於活動狀態。應定期更換鑰匙。

如果您充當中繼伺服器並example.org正在簽名,他們需要生成他們使用的密鑰。為簽名域維護 DNS 的任何人都需要為用於簽名消息的選擇器添加公鑰。

在簽名伺服器上生成密鑰是最安全的。這將消除在其他任何地方擁有私鑰的需要。公鑰是公開的,將被公開,因此無需對其進行保護。

許多大型組織未能發布其公鑰。我讚揚你努力使它正確。

  1. 我是否需要 SPF 和密鑰,或者僅密鑰就足以驗證另一個域並允許它通過驗證?(我處於只想使用鍵的位置)

SPF 和 DKIM 都是完全可選的,但它們確實有助於將您的伺服器與垃圾郵件機器人區分開來。我建議對所有域使用 SPF。這可以像v=spf1 a mx -all發送電子郵件的域、v=spf1 a -all郵件伺服器和v=spf1 -all所有其他域一樣簡單。

  1. 在提供者檢查方面,哪一個更好用?例如,提供者是否像 SPF 一樣檢查密鑰?

SPF 更可靠,但我相信大多數大型網站都會同時檢查 DKIM 和 SPF。具有嚴格 SPF 策略的通行證可以很好地表明電子郵件有效。根據我的經驗,許多組織都使用 SPF 來評估消息。

對於郵件伺服器,我會推遲接受郵件,除非: 郵件伺服器的域或其父級都沒有 SPF 策略;或 SPF 為其域或其父級傳遞 SPF 驗證。軟通過被視為失敗。

正如我所指出的,許多大型組織未能發布他們的 DKIM 公鑰。因此,我懷疑 DKIM 本身失敗會導致很多問題。有效的 DKIM 簽名似乎確實有助於建立可信度/信任。但是,如果您發布了 DMARC 記錄,則可能會應用其政策。

發布域的 DMARC 記錄允許您使您的 SPF 和 DKIM 簽名策略可用於自動驗證。DMARC 允許接收伺服器向您發送有關您的域的電子郵件來自何處以及如何處理它們的詳細資訊。Gmail 和 Yahoo 都向我發送報告。從僅通知策略開始,直到您確定您的郵件已正確簽名並且 SPF 正常工作。

引用自:https://serverfault.com/questions/799652