Skip to content

Nuface Blog

隨意隨手記 Casual Notes

Menu
  • Home
  • About
  • Services
  • Blog
  • Contact
  • Privacy Policy
  • Login
Menu

DANE:基於 DNSSEC 的 TLS 保護

Posted on 2025-12-032025-12-03 by Rico

📌 前言

在說明 MTA-STS 時,我們提到它可以「強制 TLS 加密」與「驗證憑證」,但仍存在以下限制:

  • 需要部署 HTTPS 主機以提供政策檔
  • 依賴 CA 生態系
  • DNS 仍有可能遭到攻擊(TXT 記錄被污染)
  • 無法保證 MX 伺服器指向未被竄改

因此,對安全性要求更高的企業或政府單位,更偏好採用 DANE(DNS-based Authentication of Named Entities)。

DANE 從根本上解決了憑證信任問題:

👉 「把 TLS 憑證資訊寫死在 DNS 中,並透過 DNSSEC 簽章保護」
👉 任何憑證遭竄改、替換、MITM,都會立即被拒收


🔐 什麼是 DANE?

DANE 是一種使用 DNSSEC 驗證 TLS 憑證的安全機制。

簡單說:

  1. MX 記錄啟用 DNSSEC
  2. DNS 中加入 TLSA 記錄(註冊你的伺服器憑證資訊)
  3. 寄件 MTA 收信前會
    • 驗證 DNSSEC
    • 驗證 TLSA 記錄
    • 驗證伺服器憑證是否符合
  4. 若任何一項失敗 → 郵件投遞失敗

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  用途  選擇器  憑證匹配方式  資料

最常用:

參數意義
3DANE-EE 憑證固定(最推薦)
1主體憑證(cert)
1SHA-256 fingerprint
資料憑證指紋

🔄 DANE(SMTP)完整運作流程

以 SMTP (Port 25) 為例:

  1. 寄件 MTA 查 MX → 驗證 DNSSEC
  2. 查詢 TLSA 記錄 → 驗證 DNSSEC
  3. 與 MX 建立 TLS
  4. 對比 TLSA 記錄
  5. 若憑證 fingerprint 不符 → 拒收
  6. 若 TLS 建立失敗 → 拒收
  7. 全部通過 → 成功投遞

與 MTA-STS 不同,DANE 是強制性的,只要有 TLSA 就一定要驗證。


🆚 MTA-STS vs DANE 差異與比較

項目MTA-STSDANE
依賴 DNSSEC❌ 不需要✅ 必須
政策來源HTTPS + TXTDNS(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 就是最高等級的安全組合。

Recent Posts

  • Postfix + Let’s Encrypt + BIND9 + DANE Fully Automated TLSA Update Guide
  • Postfix + Let’s Encrypt + BIND9 + DANE TLSA 指紋自動更新完整教學
  • Deploying DANE in Postfix
  • 如何在 Postfix 中部署 DANE
  • DANE: DNSSEC-Based TLS Protection

Recent Comments

  1. Building a Complete Enterprise-Grade Mail System (Overview) - Nuface Blog on High Availability Architecture, Failover, GeoDNS, Monitoring, and Email Abuse Automation (SOAR)
  2. Building a Complete Enterprise-Grade Mail System (Overview) - Nuface Blog on MariaDB + PostfixAdmin: The Core of Virtual Domain & Mailbox Management
  3. Building a Complete Enterprise-Grade Mail System (Overview) - Nuface Blog on Daily Operations, Monitoring, and Performance Tuning for an Enterprise Mail System
  4. Building a Complete Enterprise-Grade Mail System (Overview) - Nuface Blog on Final Chapter: Complete Troubleshooting Guide & Frequently Asked Questions (FAQ)
  5. Building a Complete Enterprise-Grade Mail System (Overview) - Nuface Blog on Network Architecture, DNS Configuration, TLS Design, and Postfix/Dovecot SNI Explained

Archives

  • December 2025
  • November 2025
  • October 2025

Categories

  • AI
  • Apache
  • Cybersecurity
  • Database
  • DNS
  • Docker
  • Fail2Ban
  • FileSystem
  • Firewall
  • Linux
  • LLM
  • Mail
  • N8N
  • OpenLdap
  • OPNsense
  • PHP
  • QoS
  • Samba
  • Switch
  • Virtualization
  • VPN
  • WordPress
© 2025 Nuface Blog | Powered by Superbs Personal Blog theme