メール認証DNS学習運用

MTA-STSとTLS-RPT|DMARCの次の一手

ドメイン番人5 分で読めます
目次

この記事でわかること

  • MTA-STS と TLS-RPT が何を防ぐ仕組みか
  • 設定の段取りとポリシーモードの考え方
  • DMARC の次に取り組むべき理由

なぜ DMARC の次に必要なのか

DMARC・SPF・DKIM は「差出人のなりすまし」を防ぐ仕組みです。一方で、メールサーバー間の 通信経路の盗聴・改ざん までは保護しません。

メール配送は SMTP に STARTTLS 拡張を載せて TLS 暗号化するのが現代の標準ですが、STARTTLS は「使えるなら使う、使えないなら平文に落とす」という日和見暗号化(opportunistic TLS)です。経路上の攻撃者が STARTTLS の応答を書き換えてダウングレード攻撃を仕掛けると、平文のままメールが送られてしまいます。

これを防ぐのが MTA-STS(RFC 8461) で、配送状況のレポートを受け取って異常を可視化するのが TLS-RPT(RFC 8460) です。簡単な概要はメール認証の追加機能まとめでも触れています。

STARTTLS ダウングレード攻撃と MTA-STS で防ぐ流れ

MTA-STS の仕組み

MTA-STS は受信側ドメインが「うちは TLS でしか受け取りません、証明書は正しいものだけ受け付けます」と宣言するための規格です。送信側 MTA はこの宣言を取得し、平文配送やオレオレ証明書を拒否します。

宣言は次の 2 つで構成されます。

  • DNS TXT レコード _mta-sts.example.com(ポリシー ID とバージョンの告知)
  • HTTPS 配信のポリシーファイル https://mta-sts.example.com/.well-known/mta-sts.txt

ポリシーファイルの中身はテキスト数行で、対象 MX・有効期間・モードを記述します。

version: STSv1
mode: testing
mx: mail.example.com
mx: *.googlemail.com
max_age: 604800

DNS と HTTPS の両方を揃える理由は、DNSSEC が導入できなくても HTTPS の証明書検証で改ざんを検知できるからです。

TLS-RPT の仕組み

TLS-RPT は MTA-STS や DANE による TLS 強制の 失敗状況をレポートで受け取るための仕組みです。DMARC の rua/ruf がメール認証の結果を集約するように、TLS-RPT は配送経路の TLS ハンドシェイク失敗を集約します。設定は DNS TXT 1 行で済みます。

_smtp._tls.example.com  TXT  "v=TLSRPTv1; rua=mailto:[email protected]"

レポートは JSON 形式で日次配信され、「特定の送信元が証明書検証に失敗して何通配送できなかったか」「TLS のセッションが何件確立できなかったか」が分かります。MTA-STS を enforce で運用するときは、TLS-RPT を必ず併設して 配信できなかったメールが闇に消えていないか を確認できる状態にしておくのが安全です。

レポート受信用のメールアドレスは別ドメインに切る運用が便利で、[email protected] のように専用アドレスを用意すると、DMARC レポートとは別フォルダで集約できます。受信量はメール流量にもよりますが、中小企業なら 1 日 1〜10 件程度が目安です。

ポリシーモードの段階移行

MTA-STS には none / testing / enforce の 3 モードがあります。いきなり enforce にすると、自社向けに送ってくれる取引先のサーバーが古い設定だった場合にメールが届かなくなります。

MTA-STS ポリシーモードの段階移行

推奨の段取りは次の通りです。

ステップ1: TLS-RPT の単独導入(2 週間)

まずは TLS-RPT だけ設定し、現状の TLS 配送状況を観察します。MTA-STS の宣言なしでも、対応している大手送信側(Google, Microsoft 等)はレポートを返してくれます。

ステップ2: MTA-STS を testing モードで(2〜4 週間)

ポリシーを mode: testing で公開します。送信側の MTA はポリシーを解釈しますが、検証失敗してもメールはそのまま配送します。代わりに TLS-RPT で「ここで検証失敗が起きている」が見える状態になります。

ステップ3: enforce へ昇格

testing で 2〜4 週間レポートを観察し、自社 MX の証明書 / SAN / 配信経路に問題がないことを確認したら mode: enforce に切り替えます。max_age は最低 604800 秒(7 日)が推奨で、安定したら 2,592,000 秒(30 日)程度まで伸ばします。

設定後の検証

ポリシーが正しく公開できたかは、外部の検証ツールでチェックできます。代表的なツールには以下があります。

  • mxtoolbox の MTA-STS Lookup
  • hardenize.com のドメインスコア
  • aykira.jp など国内の検証ツール

dig +short TXT _mta-sts.example.com で TXT レコードが取れること、curl https://mta-sts.example.com/.well-known/mta-sts.txt で正しい Content-Type(text/plain)とポリシー本文が返ることを確認します。HTTPS の証明書は当然有効である必要があり、SAN に mta-sts.example.com を含めます。Cloudflare Pages や CDN を使うとここの管理が楽です。

SPF / DKIM / DMARC との位置づけ

メール認証は層が違うので、片方だけでは弱点が残ります。

  • SPF: 送信元 IP の正当性を保証。設定はSPF 設定ガイド
  • DKIM: メール内容の改ざん検知
  • DMARC: SPF/DKIM とアラインメントの統合判定。設定はDMARC 設定ガイド
  • MTA-STS / TLS-RPT: 配送経路そのものの暗号化を強制

DMARC を p=quarantine 以上で安定運用できているドメインは、次の一手として MTA-STS の testing 導入を強く推奨します。日本国内の中小企業で MTA-STS まで設定している例はまだ少ないため、取引先からの信頼指標としても有効です。

まとめ

  • MTA-STS は STARTTLS のダウングレード攻撃を防ぐ仕組み
  • TLS-RPT で配信失敗をレポートとして受け取れる
  • testing → enforce の段階移行が事故を防ぐ鉄則
  • DMARC が安定したら次に検討する価値あり

自社の状況を確認してみませんか

設定状況がわからない方は、無料のドメイン診断で現状をチェックできます。DMARC・SPF・DKIM・SSL の状態が数十秒でレポートされます。MTA-STS は HTTPS 経由で policy ファイルを公開する仕組みなので、SSL 周りの状態を SSL 証明書 単発チェック で先に確認しておくと、設定後の検証で躓きにくくなります。CSP / X-Frame-Options などの Web セキュリティヘッダ全般を単発で見るには Web セキュリティヘッダ 単発チェック もどうぞ。

棚卸しから自動更新セットアップまでまとめて任せたい場合は、SSL 棚卸し・自動更新支援もご検討ください。判断に迷う場合はお問い合わせからご相談ください。専門家がわかりやすくサポートいたします。

次の一歩は無料診断から。