DANE/TLSA 記錄檢測工具

向多個公共 DNS 解析器查詢域名郵件伺服器(MX 主機)釋出的 TLSA 記錄,檢測是否已配置 DANE 證書鎖定。

診斷 DANE(TLSA 記錄)的憑證驗證

DANE 是這樣一套安排:郵件伺服器所出示的憑證,要拿存在 DNS 裡的 TLSA 記錄來驗。 本工具把某網域各 MX 主機所公開的 TLSA 記錄投向數個公開解析器,報出是否已然配好。

此處萬萬不可略去的前提是:DANE 惟有立在 DNSSEC 之上方能成立。 擔保 TLSA 記錄不曾被竄改的,正是 DNSSEC;故而在未啟用 DNSSEC 的網域上擺下 TLSA,作為防禦便等於零。 這一點正是它與 MTA-STS 最大的分別:MTA-STS 把信任託付給網站憑證,DANE 則託付給 DNSSEC。 維運上另一處要緊的,是憑證的更新——替換伺服器憑證時若不同時更新 TLSA 記錄,驗證便通不過,郵件也就到不了。 所需的次第是:先添上新的指紋,切換過去,最後才刪去舊的。

使用方法

  1. 輸入網域 只給網域即可,形如 example.com。
  2. 查看每台 MX 主機的結果 TLSA 記錄置於各 MX 主機的 _25._tcp.主機名 之下。
  3. 一併確認有無 DNSSEC 少了 DNSSEC,TLSA 記錄便談不上什麼保護。
  4. 籌劃憑證更新的步驟 讓新舊指紋並存一段時日,再行切換。

用好本工具的小技巧

  • TLSA 記錄並不位於普通域名下,而是位於特殊名稱 _25._tcp.{MX 主機名} 下,這就是為什麼直接查詢域名本身找不到 TLSA 記錄的原因。
  • 「未配置 DANE」並非異常。DANE 是郵件加密的額外防護層,目前大多數郵件伺服器仍未啟用。
  • DANE 的可信度依賴於該域名的 TLSA 記錄本身受到 DNSSEC 簽名鏈的保護。即使找到了 TLSA 記錄,也建議配合姊妹工具「DNSSEC 驗證檢測工具」確認該域名是否已啟用 DNSSEC。
  • 如果存在多個 MX 主機,本工具會按優先順序(數值越小優先順序越高)檢測最多 3 個主機。
  • 如果各解析器結果不一致,可能是記錄剛剛更新、快取尚未統一所致。請稍後重新檢測。

這些情境會用到

檢視自家的郵件伺服器

可揪出這樣的出入:本以為擺好了 TLSA,MX 主機那邊卻沒有。

更新憑證之前先查一遍

次第一錯郵件便停,故事前一查極為划算。

在 DANE 與 MTA-STS 之間權衡

按您更願把信任託付給誰來選——DNSSEC 抑或網站憑證;二者亦可並用。

弄清往來對象做到了哪一步

可以看出對方究竟用不用 DANE。

DANE 的術語

TLSA 記錄
把憑證或公鑰的指紋放進 DNS 的記錄。 它置於形如 _25._tcp.mail.example.com 的名稱之下。
DNSSEC
DANE 的前提。 少了它,TLSA 記錄自身便可能被竄改,防禦也就無從立起。
用法欄位
TLSA 記錄裡的頭一個數字,言明它所指的是憑證本身,抑或某個憑證頒發機構。
DANE-EE
登記伺服器憑證本身指紋的方式。它容許在不依賴任何機構的前提下完成驗證。
輪替
替換憑證及其 TLSA 記錄的作業。先添上新指紋,事後再刪去舊的。
機會性 TLS
對方支援便加密的那種舊式隨意做法。DANE 與 MTA-STS 把它提升為必須。

常見問題

「未配置 DANE」本身並不危險,目前絕大多數郵件伺服器仍在沒有 DANE 的情況下執行。不過,若條件允許,作為防範 STARTTLS 中間人攻擊的措施,值得考慮啟用。

兩者的目標都是強制郵件傳輸使用 TLS 加密,但信任基礎不同:MTA-STS 依賴證書頒發機構(CA)的驗證鏈,DANE 依賴 DNSSEC 簽名鏈。如果已經啟用了 DNSSEC,DANE 是自然的選擇;否則先部署 MTA-STS 更為現實。兩者也可以同時使用。

Usage 指定驗證方式(是否仍需 CA 驗證,或直接鎖定證書本身),Selector 指定對完整證書還是僅公鑰部分進行雜湊,Matching Type 指定雜湊演算法(如 SHA-256、SHA-512)。不同組合適用於不同的運維模式。

為確保完整保護,建議所有可能被選為投遞目標的 MX 主機都配置 TLSA 記錄。若只有部分主機配置了記錄,投遞到未配置主機的郵件將得不到保護。

本工具僅確認 TLSA 記錄是否已釋出這一表層狀態,不會驗證證書關聯資料是否與伺服器實際證書一致。如需嚴格驗證,請配合專業工具使用。
工具君

閒話 ― 用「證書」而非僅靠「不被竊聽」來保護郵件加密

SMTP(郵件傳輸協議)的加密方式 STARTTLS 長期存在一個弱點:多數郵件伺服器採用「機會性加密」(Opportunistic TLS),即對方不支援加密時便退回明文傳輸,這為「STRIPTLS 攻擊」打開了大門——中間人攻擊者可以悄悄剝除 STARTTLS 指令,使連線在雙方都未察覺的情況下降級為明文。

DANE(基於 DNS 的命名實體認證,RFC 6698)通過在 DNS 中釋出 TLSA 記錄來應對這一問題。預先將郵件伺服器的證書(或其公鑰雜湊)鎖定在 DNS 中,傳送方伺服器便可驗證所連線的主機是否確實提供了預期的證書。與普通 SSL/TLS 證書驗證不同,DANE 完全不依賴證書頒發機構(CA)的信任鏈,只信任 DNSSEC 簽名鏈。

DANE 的弱點在於,只有當域名本身經過 DNSSEC 簽名時才能生效。若未啟用 DNSSEC,則無法排除 TLSA 記錄本身在傳輸過程中被篡改的可能,DANE 的保證也就失去意義。因此 DANE 的普及程度與 DNSSEC 的普及程度密切相關,歐洲部分註冊局(如 .nl、.cz)已率先推廣採用。