この用語をシェア
DANEとは
DANE(DNS-Based Authentication of Named Entities)は、RFC 6698で標準化された、DNSベースのTLS証明書検証技術です。DNSSEC署名されたTLSAレコードをDNSに登録することで、従来のCA(認証局)に依存しない証明書検証を実現します。
DANEが解決する課題
従来の証明書検証の問題
- CA依存: 証明書の信頼はCAに依存(CA侵害のリスク)
- 中間者攻撃: 不正な証明書による攻撃の可能性
- 証明書コスト: 有料CA証明書が必要な場合がある
DANEによる解決
DANEは、DNSSECで保護されたTLSAレコードにより、証明書の指紋(フィンガープリント)をDNSに公開します。これにより:
- CA不要の検証: DNSベースで証明書を検証可能
- 改ざん防止: DNSSEC署名により改ざんを検知
- セキュリティ向上: 中間者攻撃の防止
TLSAレコードの構造
レコード形式
_25._tcp.mail.example.com. IN TLSA 3 1 1 (
a1b2c3d4e5f6... # 証明書フィンガープリント
)
パラメータ説明
| フィールド | 値 | 説明 |
|---|---|---|
| Usage | 3 | Domain-issued certificate |
| Selector | 1 | SubjectPublicKeyInfo |
| Matching Type | 1 | SHA-256ハッシュ |
自社メールサーバー運用への応用
前提条件
- DNSSEC有効化: ドメインでDNSSECが有効であること
- TLS証明書: 有効なTLS証明書(Let's Encryptなど)
TLSAレコード生成
# 証明書からTLSAレコードを生成
openssl x509 -in /etc/letsencrypt/live/mail.example.com/cert.pem -pubkey -noout | \
openssl pkey -pubin -outform DER | \
openssl dgst -sha256 -binary | \
xxd -p -u -c 32
# DNSに登録(例)
_25._tcp.mail.example.com. IN TLSA 3 1 1 A1B2C3D4E5F6...
Postfixでの設定
# main.cf - DANE有効化
smtp_dns_support_level = dnssec
smtp_tls_security_level = dane
smtp_tls_policy_maps = hash:/etc/postfix/tls_policy
# tls_policy
example.com dane
導入効果
- メール送信のセキュリティ向上: TLS接続の信頼性確保
- 中間者攻撃防止: 不正な証明書の検知
- 暗号化強制: DANE対応ドメインへの暗号化送信
関連ブログ記事
まとめ
DANEは、DNSベースで証明書を検証する先進的な技術です。自社メールサーバーでDANEを導入するには、DNSSEC有効化とTLSAレコード登録が必要です。導入により、メール送信のセキュリティが大幅に向上し、中間者攻撃のリスクを軽減できます。
