MTA-STS
MTA-STSとは何ですか?
MTA-STSは、メールの送信サーバーと受信サーバーの間に暗号化/セキュリティの層を追加するために設計された受信メールプロトコルです。これは、STARTTLSプロトコルに存在する脆弱性を補うために設計されたもので、この脆弱性により、攻撃者がSMTPセッションの一部(「250 STARTTLS」応答など)を削除することで、通信が暗号化されない状態になる可能性がありました。MTA-STSでは、接続の検証を行う第三者としてDNSを導入することで、この問題を解決しています。
MTA-STSは、特にTLSダウングレード攻撃を緩和し、攻撃者がSTARTTLSを無効にして平文のSMTPセッションを強制することを防ぎます。これにより、中間者攻撃が発生するのを防ぎます。
MTA-STSプロトコルは、メールサーバーに対し、定義されたサブドメインからHTTPS経由でポリシーファイルを取得するよう指示するDNSレコードによって機能します。このファイルには、メッセージの受信が認証・承認された受信側のメールサーバーの一覧と、受信メッセージに適用すべきポリシーが記載されています。
MTA-STSの要件は何ですか?
MTA-STS を導入する前に、以下の点を確認してください。
- お使いのMXサーバーは、TLSバージョン1.2以降のSMTPに対応しています。
- お使いのサーバーはSSL(HTTPS)に対応しています
- お使いのMXレコードには、有効期限が切れておらず、そのドメイン名と一致するルート認証局によって発行されたTLS証明書が使用されています。
DNSエントリが必要なMTA-STSを導入する際は、別途DNSエントリを必要とするTLSレポート機能も有効にする必要があります。TLSレポートを導入することで、ドメインのパフォーマンスやMTA-STSポリシーの成功率・失敗率を確認できるようになります。これにより、メールの送受信が中断されないようにするために、どのメール送信者と連携すべきかについて、重要な知見を得ることができます。
MTA-STSポリシーファイルとは何ですか?
MTA-STS ポリシーファイルは、以下のキーと値のペアを含むプレーンテキストファイルです:
バージョン: ファイルのプロトコルバージョン。本稿執筆時点では、STSv1である必要があります。
モード: これはポリシーモードです。利用可能な値は、testing、enforce、またはnoneです。
- テスト: 送信元は、ポリシーの適用に失敗したことを示すレポート(TLSRPT)を送信します。この機能を利用するには、TLSRPTも実装されている必要があります。TLS接続の失敗はブロックされませんが、レポートは受信可能です。
- 強制する: MTA STSをサポートする送信メールサーバーは、証明書認証に失敗した場合、またはTLSのネゴシエーションができない場合、そのドメインへのメールを配信しません。また、これらの失敗に関するレポートも送信されます。
- なし: 送信者は、そのドメインに対して有効なポリシーが存在しないものとして扱います。これにより、MTA STSは事実上無効化されます。
mx: ドメインのMXレコードです。これは、ドメインのDNSに公開されているMXレコードと一致している必要があります。FQDNまたはワイルドカードホスト(mx: mail.example.org または mx: *.example.org)のいずれかを指定できます。ポリシーファイル内では、各MXレコードをそれぞれ別行で記述してください。
max_age: ポリシーの最大有効期間(秒単位)。これは、送信者がドメインのポリシーをキャッシュする期間を表します。数週間以上、かつ31557600(約1年)を超えない値を使用することを推奨します。
ポリシーファイルの例:
バージョン: STSv1
モード: testing
MX: mail.example.org
MX: *.example.org
MX: mail2.example.org
max_age: 604800
MTA-STSの実装方法
ポリシーテキストファイルの準備が整ったら、送信者がアクセスできるように、それをWeb上に公開する必要があります。
ファイルは、ご自身のドメインのサブドメイン上の特定のURLでアクセス可能である必要があります。URLの例としては、次のようなものがあります:
https://mta-sts.example.com/.well-known/mta-sts.txt
これを行うには、サブドメイン「mta-sts」を作成し、そのサブドメイン内に「.well-known」という名前のディレクトリを作成する必要があります。その後、ポリシーテキストファイルをそのサブドメインの「.well-known」ディレクトリにアップロードしてください。
DNSレコードの公開方法
ドメインでMTA-STSを有効にするには、DNS TXTリソースレコードが必要です。このレコードは、固有のサブドメインに存在します:
_mta-sts
example.orgドメインの場合、_mta-sts.example.org となります。
TXTレコードには2つのキー/値ペアが含まれています。
- 「v」 プロトコルのバージョン。現在は STSv1 のみをサポートしています。
- 「id」:ポリシーの更新を追跡するための、1~32文字の英数字からなる文字列です。この文字列は、MTA-STSポリシーファイルに変更が加えられるたびに更新する必要があります。変更日時をID番号として使用することをお勧めします。
そのような記録の例は以下の通りです:
_mta-sts.example.org. IN TXT “v=STSv1; id=202104012135;”
dmarcianアカウントにログインし、以下のMTS-STSインスペクターツールを使用して、ご自身のドメインのレコードを確認してください。


私たちがお手伝いします
dmarcianは、メールセキュリティの専門家チームを擁し、「ドメインセキュリティを通じてメールとインターネットの信頼性を高める」ことを使命としています。私たちは、組織が保有するドメイン群の現状評価から、DMARCの導入、そして長期的な運用管理に至るまで、手厚くサポートいたします。
この会話を続けたいですか?dmarcianフォーラムへどうぞ。