DKIM 記錄在電子郵件驗證中的角色
網域金鑰識別郵件(DKIM)是現代電子郵件驗證的重要基石。它透過在 DNS 記錄中發布公開金鑰,讓接收端郵件伺服器能夠驗證郵件是否由聲稱的網域發出,並確保郵件內容在傳輸過程中未被篡改。
當寄件端伺服器傳送電子郵件時,會使用私有金鑰對郵件標頭進行數位簽名。收件端伺服器則會向寄件網域的 DNS 查詢對應的 DKIM TXT 記錄,獲取公開金鑰以驗證該簽名。如果 DKIM 記錄配置錯誤,收件端將無法正確解析公鑰,導致郵件驗證失敗,進而影響郵件的遞送率,甚至使郵件被直接歸類為垃圾郵件。
DKIM TXT 記錄的結構與組成部分
一個標準的 DKIM TXT 記錄由多個以分號分隔的「標籤=值」(tag=value)對組成。本工具可以解析並分析以下核心組成部分:
- 版本(v):定義所使用的 DKIM 版本。如果存在此標籤,其值必須精確為
DKIM1,且必須是記錄中的第一個標籤。 - 金鑰類型(k):指定用於簽名的加密演算法。目前支援的類型包括
rsa和ed25519。 - 公開金鑰(p):經過 Base64 編碼的公開金鑰數據。這是接收端用來驗證簽名的核心部分。如果此欄位為空,則代表發布了一個已撤銷的金鑰。
- 服務類型(s):定義此金鑰適用的服務類型,預設或安全的值應包含
email或*。 - 雜湊演算法(h):限制可用於簽名的雜湊演算法。為了確保安全性,此標籤必須允許使用
sha256,而過時的sha1則不應再使用。
DNS TXT 記錄的 255 位元組限制與組塊合併
在配置 DNS 時,管理員經常遇到長度限制的問題。根據 DNS 規範,一個 TXT 記錄內部的單個字元字串限制為 255 位元組。
當使用較長的加密金鑰(例如 2048 位元 RSA 金鑰)時,公鑰字串長度會輕易超過 255 位元組。此時,必須將記錄拆分為多個加引號的字串組塊。本工具支援輸入包含引號和區域檔案括號的複雜格式,並會自動將這些組塊合併進行分析。然而,如果單個組塊在未拆分的情況下超過 255 位元組,工具會發出警告,因為這會違反 DNS 協定限制,導致部分 DNS 伺服器無法正確解析。
常見的 DKIM 配置錯誤與警告
在設定 DKIM 記錄時,細微的語法錯誤都會導致整個驗證機制失效。本工具會針對以下常見問題進行嚴格檢測:
- 語法與格式錯誤:例如標籤名稱格式錯誤、欄位缺少等號、標籤重複出現,或是引用的 TXT 呈現格式錯誤。
- 版本標籤位置不當:
v=DKIM1未放在記錄的最開頭,或者版本值不正確。 - 金鑰強度不足:RSA 金鑰長度若低於 1024 位元會被判定為無效;若介於 1024 至 2048 位元之間,則會收到弱於建議值的警告。
- 演算法過時:使用已不安全的
sha1雜湊演算法。 - 金鑰撤銷:當
p標籤的值為空時,代表該金鑰已被撤銷,工具會標記此狀態。
本地解析與完整 DNS 查詢的區別
本工具是一個純本地的記錄文本分析器。當您將 DKIM TXT 記錄貼入輸入框時,所有的解析、組塊合併、語法檢查和金鑰強度評估均在您的瀏覽器中即時完成。
您的 DKIM 記錄保留在您的瀏覽器中。BroBroGo 不會上傳或儲存它。這是一個本地記錄文本檢查。它不會查詢 DNS 或驗證已簽署的電子郵件,因此請將結果用作配置審查,而不是投遞證明。這意味著,工具無法確認您的網域是否已在公網上正確發布了該記錄,也無法驗證特定的郵件簽名是否有效。它的主要用途是協助網域管理員在將記錄寫入 DNS 區域檔案之前,確保語法和結構完全無誤。
常見問題解答 (FAQ)
為什麼長的 DKIM 記錄會被拆分為引用字串?
一個 DNS TXT 記錄可以包含多個字串,每個字串限制為 255 字節。DNS 按順序連接這些字串,因此所有片段必須保持在同一個 TXT 記錄中。
此檢測工具能識別哪些 DKIM 鍵類型?
它能識別 RSA 和 Ed25519 公鑰,檢查它們的 Base64 形式,並將低於 1024 位元的 RSA 鍵標記為無效,以及將低於 2048 位元的鍵標記為弱於建議值。
乾淨的結果是否證明 DKIM 正在運作?
不會。此頁面僅檢查您貼上的記錄文本。它不會查詢 DNS、驗證訊息簽名、確認選擇器名稱,或證明郵件接收者可以擷取該記錄。
如果輸入框留空會發生什麼事?
如果輸入為空,工具會提示「請先貼入 DKIM 紀錄。」,並且不會執行任何分析。