📌 前言
在說明 MTA-STS 時,我們提到它可以「強制 TLS 加密」與「驗證憑證」,但仍存在以下限制:
- 需要部署 HTTPS 主機以提供政策檔
- 依賴 CA 生態系
- DNS 仍有可能遭到攻擊(TXT 記錄被污染)
- 無法保證 MX 伺服器指向未被竄改
因此,對安全性要求更高的企業或政府單位,更偏好採用 DANE(DNS-based Authentication of Named Entities)。
DANE 從根本上解決了憑證信任問題:
👉 「把 TLS 憑證資訊寫死在 DNS 中,並透過 DNSSEC 簽章保護」
👉 任何憑證遭竄改、替換、MITM,都會立即被拒收
🔐 什麼是 DANE?
DANE 是一種使用 DNSSEC 驗證 TLS 憑證的安全機制。
簡單說:
- MX 記錄啟用 DNSSEC
- DNS 中加入 TLSA 記錄(註冊你的伺服器憑證資訊)
- 寄件 MTA 收信前會
- 驗證 DNSSEC
- 驗證 TLSA 記錄
- 驗證伺服器憑證是否符合
- 若任何一項失敗 → 郵件投遞失敗
DANE 比 MTA-STS 更安全,因為:
✔ 完全防止 MITM
✔ 無法被降級攻擊
✔ 憑證必須與 DNSSEC 所公布的內容完全一致
✔ 不需要 CA、甚至可用自簽憑證(但必須與 TLSA 匹配)
🧩 DANE 的三項必要條件
要使用 DANE,你的網域 一定要符合以下條件:
1️⃣ 必須啟用 DNSSEC(最關鍵)
沒有 DNSSEC,就沒有 DANE!
DNSSEC 能讓寄件 MTA 驗證 DNS 是否遭竄改,防止 MITM 攻擊。
2️⃣ MX 主機名稱也必須啟用 DNSSEC
假設你 DNS 如下:
example.com MX 10 mail.example.com
mail.example.com A 192.168.1.10
則 example.com 以及 mail.example.com 都必須啟用 DNSSEC。
3️⃣ MX 主機必須符合 TLSA(DANE)記錄
範例:
_25._tcp.mail.example.com. TLSA 3 1 1 1A2B3C4D....
TLSA 格式:
_端口._協定.主機名. TLSA 用途 選擇器 憑證匹配方式 資料
最常用:
| 參數 | 意義 |
|---|---|
| 3 | DANE-EE 憑證固定(最推薦) |
| 1 | 主體憑證(cert) |
| 1 | SHA-256 fingerprint |
| 資料 | 憑證指紋 |
🔄 DANE(SMTP)完整運作流程
以 SMTP (Port 25) 為例:
- 寄件 MTA 查 MX → 驗證 DNSSEC
- 查詢 TLSA 記錄 → 驗證 DNSSEC
- 與 MX 建立 TLS
- 對比 TLSA 記錄
- 若憑證 fingerprint 不符 → 拒收
- 若 TLS 建立失敗 → 拒收
- 全部通過 → 成功投遞
與 MTA-STS 不同,DANE 是強制性的,只要有 TLSA 就一定要驗證。
🆚 MTA-STS vs DANE 差異與比較
| 項目 | MTA-STS | DANE |
|---|---|---|
| 依賴 DNSSEC | ❌ 不需要 | ✅ 必須 |
| 政策來源 | HTTPS + TXT | DNS(TLSA) |
| 抗 DNS 污染 | 中等 | 非常強(DNSSEC) |
| 抗 MITM | 高 | 極高 |
| 可使用自簽憑證 | ❌ 不行 | ✅ 可以(需匹配 TLSA) |
| 設定難度 | 低 | 高 |
| 主流支援度 | 高(Google, Microsoft) | 中(Postfix, Exim, PowerMTA) |
👉 若你想要「最強安全」 → 用 DANE
👉 若你想「簡單部署、安全性佳」 → 用 MTA-STS
👉 可以同時用,但 DANE 優先於 MTA-STS
🏗 DANE 的 TLSA 記錄範例
最常用的 DANE-EE 設定:
_25._tcp.mail.example.com. IN TLSA 3 1 1 (
9A1CF293716A5C31A021341F89A91B77F17C93A2F4F6F7C6A2F9D4024B6EAE1D
)
3: DANE-EE(End Entity),僅比對伺服器憑證1: cert(使用整張憑證)1: SHA-256 fingerprint- 最後一行:憑證指紋(hex)
🏢 哪些郵件系統支援 DANE?
| MTA | 支援度 |
|---|---|
| Postfix | ✔ 完整支援(最早、最成熟) |
| Exim | ✔ 支援 |
| OpenSMTPD | ✔ 支援 |
| Microsoft 365 | ❌ 不支援 |
| Gmail | ❌ 不支援 |
👉 DANE 目前主要由 歐洲政府機構、金融產業、以及高安全環境 使用。
👉 Google、Microsoft 尚未支援,因此跨網域郵件仍會 fallback 成一般 TLS。
🎯 結論
DANE 是目前郵件系統中 最強、最難被攻擊的 TLS 安全機制,採用 DNSSEC 來驗證 TLS 憑證資訊,完全防止 MITM 與降級攻擊。
企業若需要最高等級的郵件安全性,特別是金融、電商、政府、醫療等領域,DANE 是極佳選擇。
但必須注意:
- DNSSEC 必須與所有 MX 主機同步部署
- 管理成本較高
- 主流郵件巨頭(Google / Microsoft)仍未支援
若你正在構建自己的 Postfix + Dovecot 架構,且 DNSSEC 能完善部署,那麼 DANE + MTA-STS 就是最高等級的安全組合。