重要なお知らせ:GoogleとYahooは2024年4月よりDMARCを義務付けます。
暗号化 tls

MTA-STS(Mail Transfer Agent-Strict Transport Security)について

MTA-STSは、その名が示すように、2つのSMTPメールサーバ間でメッセージの暗号化伝送を可能にするプロトコルです。MTA-STSは、電子メールがTLS暗号化された接続でのみ送信され、STARTTLSコマンドによって安全な接続が確立されない場合には、一切配信されないことを送信サーバーに指定します。MTA-STSは、送信中の電子メールのセキュリティを強化することで、SMTPダウングレード攻撃やDNSスプーフィング攻撃などのMITM(Man-In-The-Middle Attack:中間者攻撃)の緩和に役立ちます。

MTA-STSはどのようにして転送中のメッセージの暗号化を確保するのですか?

簡単な例を挙げて、メールフロー中にメッセージがどのように暗号化されるかを理解しましょう。MTAが電子メールを送信する場合 [email protected]に電子メールを送信している場合、MTAはDNSクエリを実行して、電子メールを送信しなければならないMTAを見つけ出します。DNSリクエストは、powerdmarc.comのMXレコードをフェッチするために送信されます。続いて送信側MTAは、DNSクエリの結果で見つかった受信側MTAに接続し、この受信側サーバがTLS暗号化をサポートしているかどうかを問い合わせます。サポートしている場合は、電子メールは暗号化された接続で送信されますが、サポートしていない場合は、送信側MTAは安全な接続のネゴシエーションに失敗し、電子メールを平文で送信します。

暗号化されていない経路でメールを送信すると、MITMやSMTPダウングレードのような広汎なモニタリング攻撃に道を開くことになります。その方法を見てみましょう。

MITM攻撃の構造を解明する

基本的にMITM攻撃は、攻撃者がSTARTTLSコマンドを置き換えたり削除したりして、TLS暗号化なしで安全な接続を安全でない接続にロールバックさせることで起こります。これはダウングレード攻撃と呼ばれています。ダウングレード攻撃に成功すると、攻撃者はメールの内容に支障なくアクセスし、閲覧することができます。

また、MITM攻撃者は、DNSクエリ応答のMXレコードを、自分がアクセスしてコントロールしているメールサーバーに置き換えることができます。その場合のメール転送エージェントは、攻撃者のサーバーに電子メールを配信し、攻撃者が電子メールの内容にアクセスして改ざんできるようにします。その後、その電子メールは、検出されることなく、意図した受信者のサーバーに転送することができます。これは、DNSスプーフィング攻撃として知られています。

SMTPダウングレード攻撃

MTA-STSによる暗号化の確保

GmailやMicrosoftなどのメールサービスプロバイダーのSMTPサーバーを使用して電子メールを送信する場合、電子メールは送信サーバーから受信サーバーへSMTP(Simple Mail Transfer Protocol)を介して転送されます。しかし、SMTPではオポチュニスティックな暗号化が可能であり、SMTPサーバ間の通信を暗号化してメール内容の操作や盗聴を避けることができることを意味しています。MTA-STSは、HTTPSを使用して公開されており、MITM攻撃から保護されています。

MTA-STSは、以下の方法でメール配信を確保します。 

  • TLS暗号化の実施

  • HTTPSでセキュアなサーバからMXレコードを提供する

MTA STSサービス主催
ホスト MTA STS

MTA-STSプロトコルは、メールサーバが特定のサブドメインからポリシーファイルを取得できることを指定するDNSレコードを持つことで展開されます。このポリシーファイルは、受信者のメールサーバの名前のリストとともに、HTTPSおよび証明書で認証されて取得されます。このプロトコルでは、SMTPサーバに対して、他のSMTPサーバとの通信が暗号化されていること、証明書上のドメイン名がポリシーファイルのドメインと一致していることを指定します。MTA-STSが適用されている場合、暗号化されたチャネルがネゴシエートできない場合、メッセージはまったく配信されません。

MTA-STSポリシーファイル

MTA-STSのポリシーファイルは基本的にシンプルなテキストファイルで、以下のようなものです。

バージョンである。STSv1
モード: エンフォース
mx: mx1.powerdmarc.com
Mx: Mx2.powerdmarc.com
mx: mx3.powerdmarc.com
max_age:604800

注: バージョンフィールドはテキストファイルの先頭に置く必要がありますが、その他のフィールドは任意の順序で組み込むことができます。

ポリシーファイルは、上の図のように、各値がテキストファイルの別の行にエンコードされたキーと値のペアリングを使用します。このファイルのサイズは最大で64KBです。ポリシーファイルの名前は次のとおりです。 mta-sts.txtです。 ポリシーファイルは、ドメイン内のメールサーバーを追加・変更するたびに更新する必要があります。

注意:MTA-STSをenforceモードに設定すると、一部のメールが配信されないことがあります。そのため、ポリシーモードをtestingに設定し、max_ageを低く設定して、すべてが正しく動作していることを確認してからenforceポリシーに移行することをお勧めします。テストモードのポリシーにもTLS-RPTを設定し、メールが平文で送信された場合に通知を受けることをお勧めします。 

MTA-STS-ポリシー

MTA-STSポリシーファイルの公開

MTA-STSポリシーファイルを公開するためには、ファイルをホストするWebサーバーが必要です。

  • HTTPS/SSLに対応
  • サーバー証明書は、サードパーティのルート認証局によって署名され、検証されている必要があります。

自分のドメインのポリシーファイルを公開するためには、自分のドメインにサブドメイン「mta-sts」を追加した公開Webサーバーを設定する必要があります。作成されたポリシーファイルは、サブドメインに作成された .well-known ディレクトリで公開する必要があります。アップロードしたMTA-STSポリシーファイルのURLは、以下のように表示されます。

https://mta-sts.powerdmarc.com/.well-known/mta-sts.txt

ホスト MTA STS

MTA-STSのDNSレコード

MTA-STS用のTXT DNSレコードは、お客様のドメインがMTA-STSプロトコルをサポートしていることを指定し、ポリシーが変更された場合にMTAにキャッシュされた値を更新するための信号として、お客様のドメインのDNS上に公開されます。MTA-STSのDNSレコードは、サブドメインの _mta-sts のように配置します。 _mta-sts.powerdmarc.com.TXTレコードは、v=STSv1で始まる必要があります。 "id"値には32文字までの英数字を含めることができ、以下のようになります。

 v=STSv1; id=30271001S00T000;

注:ポリシーを変更するたびに、TXTレコードIDの値を新しい値に更新する必要があります。 

MTA-STSのDNSレコードは以下のように使用されます。 

  • ドメインのMTA-STSのサポートを指定する
  • ポリシーが変更された場合、HTTPSでポリシーを再取得するようにMTAに信号を送る。

なお、MTA-STS TXT DNSレコードを使用すると、ポリシーが変更されていない限り、ポリシーを再取得することなく、MTAがポリシーファイルを長期間保存することができますが、ドメインでメールを受信するたびにDNSクエリを実行することになります。

ドメインにMTA-STSを設定する

お客様のドメインでMTA-STSを有効にするためには、以下のことが必要です。

  • にcnameタイプのDNSレコードを追加する。 mta-sts.example.comMTA-STSポリシーファイルをホストしているHTTPS対応のウェブサーバに向けて、cnameタイプのDNSレコードを追加します。

  • にtxtまたはcnameタイプのDNSレコードを追加します。 _mta-sts.example.com に追加して、ドメインのMTA-STSサポートを指定します。

  • ドメインに有効な証明書を持つHTTPS対応のWebサーバーを設定します。

  • ドメインのSMTP TLS Reportingを有効にすると、TLS暗号化の失敗によるメール配信の問題を検出できます。

spfレコードルックアップアイコン powerdmarc

MTA-STSを手動で導入する際に直面した課題

MTA-STSは、有効な証明書を持つHTTPS対応のウェブサーバー、DNSレコード、および常時メンテナンスを必要とするため、導入プロセスが長く、時間がかかり、複雑になります。そのため、PowerDMARCでは、ドメインのDNSに3つのCNAMEレコードを発行するだけで、ほとんどのことをバックグラウンドで管理できるようにしています。

PowerDMARCのホスト型MTA-STSサービス

PowerDMARCは、これらすべてをバックグラウンドで処理することで、あなたの生活をより快適にします。一度設定してしまえば、あとは何も考える必要はありません。

  • 数回のクリックで、お客様のcnameレコードを公開することができます。

  • Webサーバーのメンテナンスや証明書のホスティングを担当する

  • ホスティングされたMTA-STSサービスを利用すれば、お客様は単にいくつかのDNSレコードを発行するだけで、展開が可能になります。

  • DNSを手動で変更しなくても、PowerDMARCのダッシュボードからMTA-STSのポリシーを即座に、かつ簡単に変更することができます。

  • PowerDMARCのホスト型MTA-STSサービスはRFCに準拠し、最新のTLS規格をサポートしています。

  • 証明書やMTA-STSポリシーファイルの生成からポリシーの実施まで、プロトコルの採用に伴う非常に複雑な作業を回避するためのサポートを行います。

SMTP TLS Reporting (TLS-RPT)

MTA-STSは、通信している2つのSMTPサーバー間の接続をTLSで暗号化してより安全にするために、どちらかのサーバーがTLSをサポートしていない場合に、暗号化を実施してメールが平文で配信されるのを防ぐために導入されました。しかし、1つの問題がまだ解決されていません。TLSの暗号化に失敗したためにリモートサーバーのメール配信に問題が発生した場合、ドメインオーナーにどのように通知すればよいのでしょうか?ここでTLS-RPTの出番です。診断レポートを提供することで、TLS証明書の期限切れ、メールサーバーの設定ミス、TLS暗号化のサポート不足による安全な接続のネゴシエーションの失敗など、サーバー通信の問題を監視し、トラブルシューティングすることができます。

TLSレポートは、JSONファイル形式のレポートメカニズムを介して、メール配信における問題の検出と対応を支援します。このJSONファイルは複雑で、技術者でない人には解読できないことがあります。

PowerDMARCは、JSONファイルをシンプルにし、グラフや表を含む包括的で読みやすいドキュメントの形で提供することで、利便性を高めます。ドメインの診断レポートは、PowerDMARCのダッシュボード上で、結果ごとと送信元ごとの2つの形式で表示されます。

パワーマークTLS RP
ジーソンチャート

ドメインでTLS-RPTを有効にする

SMTP TLS Reportingを有効にするプロセスは非常に簡単です。この機能を有効にするために必要なことは、適切な場所にTXT DNSレコードを追加し、ドメイン名の前につけることです。 _smtp._tls. をドメイン名の前に付けてください。しかし、PowerDMARCでは、DNSに変更を加えることなく、PowerDMARC UIから直接設定することができます。

TLS-RPTを有効にするとすぐに、承諾したMail Transfer Agentは、通信しているサーバ間のメール配信問題に関する診断レポートを、指定されたメールドメインに送信し始めます。レポートは通常1日1回送信され、送信者が観測したMTA-STSポリシー、トラフィック統計、およびメール配信の失敗や問題に関する情報をカバーして伝えます。

よくあるご質問

PowerDMARCのコントロールパネルでは、ドメインのDNSに3つのCNAMEレコードを発行するだけで、ドメインにMTA-STSとTLS-RPTを自動的に設定することができます。MTAS-STSのポリシーファイルや証明書のホスティングからWebサーバーのメンテナンスまで、お客様がDNSに変更を加えることなく、バックグラウンドですべての処理を行います。PowerDMARCを使用したMTA-STSの導入は、わずか数クリックで完了します。

PowerDMARCアカウントからすべてのドメインにMTA-STSを導入し、管理することができます。STARTTLSをサポートしていない受信メールサーバーを使用しているドメインがある場合、それらのドメインに対してTLS-RPTを有効にしていれば、TLSレポートに反映されます。

MTA-STSのポリシーモードをテストモードに設定することをお勧めします。 テストに設定することをお勧めします。これにより、「強制」のような積極的なポリシーに移行する前に、活動を監視し、メールエコシステムの可視性を得ることができます。これにより、TLS暗号化された接続でメールが送信されなくても、平文で送信されることになります。 ただし、その際にはTLS-RPTを有効にして、通知を受けるようにしてください。

TLS-RPTは、安全な接続が確立されず、電子メールの配信に失敗した場合に通知を受けることができる広範なレポートメカニズムです。これにより、メール配信やセキュリティ保護されていない接続で配信されたメールの問題を検出し、迅速に問題を軽減・解決することができます。

MTA-STSは、TLS暗号化された接続で電子メールを転送しますが、安全な接続がネゴシエートされていない場合は、電子メールの配信に失敗する可能性があることに注意してください。しかし、これは、電子メールが暗号化されていない経路で配信されないようにするために必要なことです。このような問題を回避するには、MTA-STSポリシーをテストモードで設定し、MTA-STS強制モードに移行する前に、まずドメインのTLS-RPTを有効にすることをお勧めします。 

MTA-STSモードの変更は、PowerMTA-STSダッシュボードから希望のポリシーモードを選択し、DNSに変更を加えることなく変更を保存することで簡単に行うことができます。

ドメインのMTA-STSをオフにするには、ポリシーモードをnoneに設定して、ドメインがプロトコルをサポートしていないことをMTAに指定するか、MTA-STSのDNS TXTレコードを削除します。 

MTA-STSポリシーファイルのMXレコードには、ドメインが利用するすべての受信メールサーバーのエントリを含める必要があります。