[ DKIM ]

跨服務共享的DKIM選擇器:避免命名衝突

當多個服務請求相同的選擇器名稱時,避免覆蓋活動的DKIM鑰。

由EmailAuth研究團隊提供 · 3 分鐘閱讀

[ 重點 ]

  • 比較完整的 s。 _domainkey.d所有者名稱,而不是單獨的選擇器詞。
  • 使用不同的支援選擇器而不是一個擁有者的多個獨立鍵。
  • 在任何簽章域變更後測試每個服務和DMARC一致性。
在此頁面上

A DKIM選擇器 範圍僅限於簽章域。兩個服務可以在不同的 d= 網域下安全地使用“default”一詞,但default._domainkey.example.com是一個DNS擁有者名稱。如果兩個獨立的服務需要具有相同名稱的不同金鑰,則新增第二個服務可能會破壞第一個服務的驗證。在更改DNS之前解決所有權衝突。

比較完整的名稱

從每個活動服務收集最近收到的簽名訊息並記錄 d= 和s=.將這些值與待處理的提供者設定指令進行比較。對於基於 DNS 的金鑰檢索,選擇器和簽章域決定查找名稱。設定畫面中的提供者標籤(例如「選擇器 1」)不足以識別真正的DNS擁有者。 RFC 6376 §3.5 和 RFC 6376 §3.6.2.1.

說明性範例:薪資和行銷都請求s=default和d=example.com,但各自持有不同的私鑰。兩個簽章都會將驗證者引導至default._domainkey.example.com 。用行銷金鑰替換薪資單的公鑰可能會導致薪資訊息無法驗證,包括已經在傳輸中的消息。相反, d=payroll.example.com下的預設值和d=marketing.example.com下的預設值是不同的查找名稱。 結盟 影響仍然需要單獨檢查。

選擇支援的分離設計

當提供者支援獨立簽章服務時,首選不同的選擇器。以自己的擁有者名稱發布新服務產生的公鑰記錄,對其進行驗證,然後啟用該簽署者並測試收到的郵件。如果服務修復了其選擇器名稱,請詢問它是否支援單獨的簽署子網域或其他記錄的配置。不要發明一個 CNAME 僅在DNS中定位或重新命名選擇器:簽署者必須發出匹配的 s= 值。

將 d= 變更為子網域可能會影響 DMARC。子域可能會在寬鬆的規則下對齊,而無法與父作者域嚴格對齊。在選擇命名解決方法之前確認預期的關係。 RFC 9989 §4.4.1 和 RFC 9989 §4.10.2.

不要依賴模稜兩可的關鍵答案

在下面 RFC 6376 §3.6.2.2、 TXT鍵記錄對於選擇器名稱必須是唯一的;多記錄結果未定義。在一個所有者處發布多個不同的金鑰違反了該發布規則,並且不是服務分離設計。 RFC 6376允許驗證者選擇一個傳回的金鑰或自行嘗試多個金鑰,但順序未指定。因此,在一個接收器上工作的配置在其他地方可能不可靠。單獨的選擇器提供明確映射,而不是依賴鍵選擇行為。 RFC 6376 §6.1.2.

一個TXT資源記錄中的多個帶引號的字串是一個不同的問題:它們可以是單一記錄的一部分。不要將提供者的顯示包裝誤認為是多個不同的按鍵。使用合適的DNS工具將實際DNS答案與提供者產生的值進行比較。

安全處理現有碰撞

如果衝突已經發生,則擷取目前DNS 、配置歷史記錄、受影響的 d/s 對和接收器故障。僅當安全且仍需要時才恢復先前的映射,然後在受支援的不同選擇器下使新服務上線。避免僅僅為了使不相關的服務符合一項公共記錄而在不相關的服務之間共享私鑰;擴大監管和事件影響。

根據安全考慮和提供者的輪換流程,保留舊的驗證記錄,以滿足您合法的延遲郵件路徑需求的重疊。密鑰洩漏則另一種情況,儘管會影響交付,但仍可能需要立即撤銷。更改後獨立測試這兩個服務,記錄其所有者並在清單中保留其選擇器名稱。驗收測試是兩個可驗證的、預期的身份,而不僅僅是兩個綠色的提供者設定畫面。

解決綜合兩項服務請求

假設薪資單目前使用s=default和d=example.com,並且行銷部門請求使用不同的金鑰對同一對進行簽名。查找所有者是相同的,因此請勿覆蓋它或在其旁邊發布第二個獨立密鑰。如果 marketing 支援s=marketing2026,請在marketing2026._domainkey.example.com發布其產生的金鑰,並在其簽署者中配置相同的選擇器。然後獨立測試工資/違約和行銷/marketing2026。如果僅支援簽署子網域選項,請在變更 d 之前檢查其對齊方式。這些是計劃步驟,而不是經過測試的提供者程序。

[ 外帶 ]

比較完整的 s。 _domainkey.d所有者名稱,而不是單獨的選擇器詞。使用不同的支援選擇器而不是一個擁有者的多個獨立鍵。在任何簽章域變更後測試每個服務和DMARC一致性。

[ 按角色 ]

這對您意味著什麼

選擇您的角色以執行後續實際步驟。

IT/郵件管理員

比較完整的 s。 _domainkey.d名稱。

清點完整的選擇器擁有者名稱、服務、金鑰所有者和生命週期。確保簽署者和DNS在每個 d/s 對上達成一致,然後測試舊路由和新路由。

後續步驟

  1. 比較完整的 s。 _domainkey.d名稱。
  2. 選擇提供者支援的不同選擇器。
  3. 為延遲的郵件保留安全重疊。

CISO / SecOps

在可行的情況下保持獨立的私鑰保管。

在可行的情況下保持獨立的密鑰保管,並將選擇器所有權視為受控命名空間。不要透過在供應商之間隨意傳播一個私鑰來解決命名衝突。

後續步驟

  1. 在可行的情況下保持獨立的私鑰保管。
  2. 查看簽章子網域對齊影響。
  3. 將妥協視為單獨的撤銷案例。

創辦人/非技術人員

在DNS更改之前識別現有服務。

要求在新服務取得DNS存取權限之前識別現有郵件流。否則,一個小小的命名決定可能會擾亂工資、收據或客戶支援。

後續步驟

  1. 在DNS更改之前識別現有服務。
  2. 將所有者指派給選擇器名稱。
  3. 需要新舊路線測試。

[ 常見問題解答 ]

常見問題

兩個服務可以使用相同的選擇器詞嗎?

是的,如果他們的簽名域使完整查找名稱不同。比較 s。 _domainkey.d ,而不是單獨的 s= 。

RFC 6376 §3.6.2.1

實際碰撞的原因是什麼?

相同簽章域的相同選擇器擁有者名稱所需的不同鍵對應。

RFC 6376 §3.1 RFC 6376 §3.6.2.2

我可以只重命名DNS記錄嗎?

不可以。簽署者必須在其DKIM-Signature中使用相符的選擇器。使用提供者支援的選擇器配置。

RFC 6376 §3.5 RFC 6376 §3.6.2.1

我可以以相同的名稱發布兩個公鑰嗎?

否作為合格的分離設計。 RFC 6376要求選擇器具有唯一的TXT記錄,且未定義多重記錄結果。其驗證者處理選擇並未放棄該發布規則。

RFC 6376 §3.6.2.2 RFC 6376 §6.1.2

兩個引號的字串一定是兩個鍵嗎?

不可以。一條TXT記錄可以包含多個字串。檢查資源記錄邊界和串聯值。

RFC 6376 §3.6.2.2

簽章子網域是否始終保留DMARC ?

不可以。它可能會在寬鬆模式下對齊,但無法與不同的作者域嚴格對齊。測試預期的策略關係。

RFC 9989 §4.4 RFC 9989 §4.10.2

我應該共享一把私鑰以避免衝突嗎?

喜歡具有不同選擇器和受控託管的支援設計。共享金鑰擴展了可以使用它進行簽署的系統,並使事件回應變得複雜。

舊的選擇器什麼時候可以被刪除?

在其合法簽署和延遲驗證需求根據書面計畫停用後,除非安全事件需要提前撤銷。

RFC 6376 §3.1 RFC 6376 §8.3

[ 來源 ]

來源

  1. RFC 6376

    部分 §1 · §3.1 · §3.5 · §3.6.2.1 · §3.6.2.2 · §6.1.2 · §8.3

  2. RFC 9989

    部分 §4.4 · §4.4.1 · §4.10.2

[ 詞彙表 ]

詞彙表

DKIM
使用公鑰資料驗證的選定訊息內容的網域關聯簽章。

RFC 6376 §1

選擇器
s 值與 d 結合起來決定驗證金鑰查找名稱。

RFC 6376 §3.6.2.1

DMARC對齊
經過身份驗證的身份和作者領域之間所需的關係。

RFC 9989 §4.4

企業出處

為什麼頂級金融機構和政府 退役了他們的電子郵件安全儀表板。

傳統的電子郵件驗證平台會向您出售儀表板並要求您的工程師來完成這項工作。在高風險環境中,手動監督意味著延遲執行、配置漂移和不受監控的影子域。

EmailAuth是代理電子郵件來源平台。 我們的代理人強制執行 p=reject,保持第三方寄件者一致並將您的網域移至完整狀態 RFC 9989 合規性、新的DMARC標準,以及人機互動審核能力。

政府 大型企業 一級金融機構

SaaS · 專用租賃 · 氣隙本地部署 · BYOK 加密

知識庫