MTA-STS

MTA-STS

更新日

このページの要点:MTA-STS(SMTP MTA Strict Transport Security)は、メール受信時のTLS暗号化を強制し、ダウングレード攻撃や中間者攻撃を防止するための標準規格(RFC8461)です。受信側がHTTPSでポリシーファイルを公開し、送信側MTAにTLS接続を強制することで、メール配送経路全体の暗号化を実現します。

MTA-STSエムティーエーエスティ―エス(SMTP MTA Strict Transport Security)は、メールサービスプロバイダがTLS(Transport Layer Security)を使用した安全なSMTP接続のサポートを宣言する仕組みです。
この機能により、受信側のSMTPサーバは、信頼できるサーバ証明書を持つTLS接続を提供しないMXホストへのメール配信を拒否することができます。
結果として、SMTPによるメール配送経路の暗号化が保証され、メールのセキュリティが向上します。

MTA-STSの仕様は、2018年に公開されたRFC8461に記載されています。

従来のSTARTTLSの問題点

要点:従来のSTARTTLSは、攻撃者による「250 STARTTLS」応答の削除やMXレコードの改ざんにより、暗号化をバイパス(ダウングレード攻撃)される脆弱性がありました。S/MIMEやPPAPは代替策として使用されますが、それぞれ運用上の課題があります。

メールの通信経路の暗号化は、企業にとって長い間課題でありました。
送信にSTARTTLS(SMTP over TLS)を、受信にPOP/IMAP over TLSを用いることで暗号化は可能です。

SMTP/POP/IMAP over TSLによるメール配送経路の暗号化

しかし、STARTTLSの通信配信経路上での暗号化は、

が、ダウングレードまたはインターセプト攻撃を実行できるという問題がありました。

そこで、この問題を解決するために、国内では、主に以下の2つの手法が使用されています。

S/MIME
S/MIMEは、メールの内容と添付ファイルを公開鍵暗号方式で暗号化およびデジタル署名する標準規格です。
この手法を採用する場合、組織内認証局(CA: Certificate Authority)または公的な認証局(パブリックCA)から、各ユーザに鍵ペアと証明書を発行し、インストールする必要があります。
エンドツーエンドの暗号化を実現する一方で、マルウェアも暗号化される可能性があり、これが一定のリスクとなります。
PPAP
PPAPは、特に添付ファイルを暗号化する目的で使用されます。この手法では、添付ファイルをパスワード付きのZIPファイルにして送信し、その後でパスワードを別途送ります。
しかし、このアプローチには以下のような欠点があります。
  1. もし添付ファイルが含まれるメールを不正アクセスできるのであれば、パスワードが記載されたメールも同様にリスクがあります。
  2. パスワード付きのZIPファイルは、アンチウィルスソフトによるスキャンが困難であり、添付ファイルがマルウェアに感染している可能性が未検出のまま残ります。

総じて、これらの手法にはそれぞれ長所と短所があり、堅牢なセキュリティ対策を整えるためには多角的なアプローチが必要です。

メール暗号化方式の比較
方式 暗号化対象 導入難易度 前提条件 攻撃耐性
STARTTLS(従来) 通信経路 なし ダウングレード攻撃に脆弱
MTA-STS 通信経路 HTTPS対応Webサーバ ダウングレード攻撃を防止
DANE 通信経路 DNSSEC必須 DNS改ざんにも耐性
S/MIME メール本文 全ユーザに証明書 エンドツーエンド暗号化
PPAP 添付ファイル なし 実質的に無効

MTA-STSの仕組み

要点:MTA-STSは、(1) HTTPSでのポリシーファイル検証、(2) MXレコードとポリシー内MXホストのマッチング検証、(3) 受信MTAの証明書検証、(4) ポリシーに基づく送信制御、(5) 結果のレポーティング、という5つの機能でSTARTTLSを強化します。

MTA-STSによるメール配送経路の暗号化の厳格化

MTA-STSは、STARTTLSを強化するための仕様です。
以下の機能が提供されます。

MTA-STSのプロセス

要点:MTA-STSは7段階のプロセスで動作します。受信側がポリシー公開とDNS設定を行い、送信側がポリシーを取得・検証・適用し、必要に応じてレポートを送信します。ポリシーはキャッシュされ、再利用されます。

1. ポリシーの公開

メールサーバのオーナーは、MTA-STSポリシーを特定の場所に配置します。
通常、このポリシーはWebサーバに置かれ、予め定められたURL(_mta-sts.example.comというように、_mta-sts.ドメイン名)でアクセス可能になります。
ポリシーファイルは、RFC5785の規定に沿って、「.well-known」というフォルダに「mta-sts.txt」というファイル名で保存します。
https://_mta-sts.example.com/.well-known/mta-sts.txt というようなURLになります。

2. DNSレコードの設定

メールサーバのオーナーは、MTA-STSを使用する旨を示すDNS TXTレコードを設定します。

設定例

DNS TXTレコード(_mta-sts.example.com)の例

_mta-sts.example.com. IN TXT "v=STSv1; id=20250115001"
ポリシーファイル(https://mta-sts.example.com/.well-known/mta-sts.txt)の例

version: STSv1
mode: enforce
mx: mail.example.com
mx: backup-mail.example.com
max_age: 604800

パラメータの説明

version
プロトコルバージョン(現在はSTSv1のみ)
mode
ポリシーモード(testing / enforce / none)
mx
許可するMXホスト名(複数指定可、ワイルドカード可)
max_age
ポリシーのキャッシュ有効期間(秒単位、最大31557600秒=1年)

3. メール送信

外部のメールサーバがメールを送信しようとすると、まず対象のドメインのMTA-STSポリシーを確認します。

4. ポリシーの検索

送信サーバはDNSレコードを調べてMTA-STSポリシーのURLを見つけ、そのポリシーをダウンロードします。

5. ポリシーの適用

ダウンロードしたポリシーに基づき、送信サーバはTLSを使用して受信サーバと通信します。
ポリシーに違反する場合(例:無効な証明書、TLSが無効等)は、メールの送信が拒否される場合があります。

6. レポート

オプションで、送信サーバはポリシー違反やその他の問題を報告することができます。

7. キャッシュ

一度ダウンロードしたMTA-STSポリシーは、一定期間キャッシュされることが多いです。
これにより、同じ送信サーバが再度同じドメインに対してメールを送信する際に、MTA-STSポリシーの再ダウンロードを省略できます。

以上が基本的なMTA-STSの処理プロセスです。
この標準により、メールのトランスポートセキュリティが強化され、中間者攻撃などからより安全になります。

MTA-STSが受信側の設定になっている理由

要点:MTA-STSが受信側の設定である理由は、受信側が自身のセキュリティポリシーを制御し、送信側による一方的なセキュリティレベル低下を防止するためです。受信側がポリシーを設定することで、TLS暗号化を強制できます。

メールを送信する際には、自社の設定が適切であれば基本的に問題は少ないですが、受信側が適切なセキュリティ設定をしていない場合、リスクが生じる可能性があります。
SMTP over TLSは、仕様が策定されてからもう20年近く経っており、多くのMTAが対応しています。
しかし、対応しているからと言って必ずしもセキュアな設定が施されているわけではありません。

このような状況で特に問題となるのが受信時です。
MTA-STSは、受信側が自分自身に対するセキュリティポリシーを制御できるようにしています。
この制御により、送信側が一方的にセキュリティレベルを下げることが防がれます。

具体的には、受信側がMTA-STSでポリシーを設定することで、送信側はそのポリシーに従わざるを得ません。
その結果、受信時もTLSによる暗号化通信が強制され、全体として高いセキュリティが確保されます。

以上のような理由から、MTA-STSは受信側がポリシーファイルを用意するという仕組みになっています。
これにより、メール通信のセキュリティがより強固に、そして効率的に確保されるのです。

SPF/DKIM/DMARCのドメイン認証を補助

要点:MTA-STSは、HTTPSという別プロトコルでMXホストの正当性を検証するため、DNSのみに依存するSPF/DKIM/DMARCを補完し、ドメイン認証の信頼性を向上させます。

MTA-STSは、Webサーバにアップロードしたポリシーファイルに、自社のMXレコードを記載して参照します。
DNSのMXレコードや、SPFレコードだけではなく、正しいMTAをHTTPSという別プロトコルによって担保し、ドメイン認証を補助する効果もあります。

MTA-STS導入の判断基準

要点:MTA-STS導入の判断には、以下のチェックリストを使用してください。3つ以上該当する場合は導入を推奨します。

注意事項:導入初期はmode: testingで開始し、TLS-RPTレポートで問題がないことを確認してからmode: enforceに移行してください。

用語集

要点:本ページで使用する主要な専門用語の定義です。

MTA(Mail Transfer Agent)
メールを転送するサーバソフトウェア。Postfix、Sendmail、Eximなどが代表例。SMTPプロトコルでメールを送受信する。
STARTTLS
既存のSMTP接続をTLS暗号化にアップグレードするコマンド。RFC3207で定義。オポチュニスティック(日和見的)暗号化のため、強制力がない。
ダウングレード攻撃
暗号化通信を平文通信に強制的に戻す攻撃手法。STARTTLS Stripping攻撃とも呼ばれる。攻撃者が「250 STARTTLS」応答を削除することで成立する。
中間者攻撃(MITM: Man-in-the-Middle)
通信経路上に攻撃者が介入し、通信内容を傍受・改ざんする攻撃。ダウングレード攻撃はMITMの一種。
DANE(DNS-based Authentication of Named Entities)
DNSSECを基盤として、TLS証明書の情報をDNSのTLSAレコードで公開する仕組み。RFC6698で定義。MTA-STSの代替技術。
TLS-RPT(TLS Reporting)
MTA-STSやDANEのポリシー適用結果を報告する仕組み。RFC8460で定義。JSON形式のレポートをメールで送信する。

MTA-STS導入時のよくあるエラーと対処法

要点:MTA-STS導入時に発生しやすいエラーパターンと、その診断・解決方法を示します。

エラー1:ポリシーファイルが取得できない(HTTP 404)
原因:ファイルパスの誤り、またはmta-sts.サブドメインの未設定
診断:curl -I https://mta-sts.example.com/.well-known/mta-sts.txt
対処:Webサーバの設定とDNS CNAMEレコードを確認
エラー2:証明書エラー(Certificate validation failed)
原因:mta-sts.サブドメイン用の証明書がない、または期限切れ
診断:openssl s_client -connect mta-sts.example.com:443 -servername mta-sts.example.com
対処:ワイルドカード証明書またはSAN証明書でmta-sts.サブドメインをカバー
エラー3:MXホストの不一致(MX mismatch)
原因:ポリシーファイルのmx行とDNS MXレコードが一致しない
診断:dig MX example.comとポリシーファイルを比較
対処:ポリシーファイルを更新し、DNS TXTレコードのidを変更
エラー4:ポリシーIDの更新忘れ
原因:ポリシーファイル更新後にDNS TXTレコードのidを変更していない
影響:送信側MTAがキャッシュした古いポリシーを使用し続ける
対処:ポリシー変更時は必ずid=YYYYMMDDnnn形式で更新

MTA-STSに関するよくある質問(FAQ)

要点:MTA-STSの導入・運用に関する代表的な質問と回答をまとめました。

Q1. MTA-STSとは何ですか?
MTA-STS(SMTP MTA Strict Transport Security)は、メール受信時にTLS暗号化を強制するための標準規格です。RFC8461で定義されており、送信側MTAに対して受信側のセキュリティポリシーを通知し、暗号化されていない接続やダウングレード攻撃を防止します。
Q2. MTA-STSとDANEの違いは何ですか?
MTA-STSはHTTPSでポリシーファイルを配布しDNSのTXTレコードで存在を通知します。一方、DANE(DNS-based Authentication of Named Entities)はDNSSECを前提としDNSのTLSAレコードで証明書情報を公開します。MTA-STSはDNSSEC非対応環境でも導入可能な点が利点です。
Q3. MTA-STSの導入に必要なものは何ですか?
MTA-STSの導入には、(1) HTTPSに対応したWebサーバ、(2) mta-sts.ドメイン名でのサブドメイン設定、(3) ポリシーファイル(mta-sts.txt)の作成と配置、(4) DNS TXTレコード(_mta-sts.ドメイン名)の設定、(5) 受信MTAの有効なTLS証明書が必要です。
Q4. MTA-STSのポリシーモードにはどのような種類がありますか?
MTA-STSには3つのポリシーモードがあります。testing(テストモード:違反を報告するがメール配送は継続)、enforce(強制モード:ポリシー違反時はメール配送を拒否)、none(無効モード:MTA-STSを無効化)。導入時はtestingで開始し、問題がなければenforceに移行することが推奨されます。
Q5. MTA-STSはSPF/DKIM/DMARCと併用できますか?
はい、併用できます。SPF/DKIM/DMARCは送信者認証(なりすまし防止)を担当し、MTA-STSは通信経路の暗号化を担当します。両者は補完関係にあり、併用することでメールセキュリティを多層的に強化できます。
Q6. TLS-RPTとは何ですか?MTA-STSとの関係は?
TLS-RPT(TLS Reporting)は、MTA-STSやDANEのポリシー適用結果を報告するための標準規格(RFC8460)です。送信側MTAがTLS接続の成功・失敗を受信ドメインの管理者に報告することで、問題の早期発見と対応が可能になります。MTA-STS導入時はTLS-RPTの設定も推奨されます。