STARTTLSのテスト方法
著者: 竹洞 陽一郎
STARTTLSを使用することで、送信メールと受信メールの両方で暗号化された通信を確保できます。
送信メールについては、メールサーバーがSTARTTLSをサポートしているかを確認し、設定を適切に行うことで、安全なメール送信を実現できます。
受信メールについては、MTA-STS(SMTP MTA Strict Transport Security、RFC 8461)を実装することで、送信元にSTARTTLSの使用を強制し、安全なメール受信を確保できます。
このようにして、メールの送受信時に暗号化を施し、メール本文や添付ファイルの安全な取り扱いを実現できます。
Googleのメールセキュリティポリシーでは、送信時にSTARTTLSの使用が要求されており、Gmailでの受信メールについてはMTA-STSを設定して暗号化通信を強制化しています。
そのため、メールが届かない問題が発生しないように、自社からの送信メールがSTARTTLSで暗号化されているかどうかをテストすることが重要です。
STARTTLSのテスト方法
自社のメールサーバがSTARTTLSを使用しているかどうかをテストする方法は、常時25番ポートを開放しているMTAかどうかによって異なります。
- MXレコードで指定されているメールを受信するために常時25番ポートを開放しているMTAの場合
- SSL-Tools Mail Server Testを使用します。
- Webサイトの問い合わせフォームからの返信メールのように送信時のみ25番ポートを使用するMTAの場合
- CheckTLS TestSenderを使用します。
常時25番ポートを開放しているMTAがSTARTTLSに対応しているかどうかを調べる
自社ドメインのMX(Mail Exchanger)のような、常時25番ポートを開放しているMTAがSTARTTLSに対応しているかを確認するには、「SSL-Tools Mail Server Test」が便利です。
テキストボックスに自社ドメインを入力してみましょう。
これにより、自動的に自社ドメインのMXを担当しているMTAがSTARTTLSに対応しているかどうかを確認できます。
送信時のみ25番ポートを使うMTAがSTARTTLSに対応しているかどうかを調べる
Webサイトの問い合わせフォームの返信メールや、メール配信サービスのように、メール送信時のみ25番ポートを使用するサーバーについては、上述のテストは適用できません。 このようなMTAがSTARTTLSに対応しているかどうかを確認するには、「CheckTLS TestSender」が便利です。
- 「Start Listener」ボタンを押します。
- 表示される送信先アドレスとランダムな文字列の件名を使用して、テストしたいサーバーからメールを送信します。
テスト用の宛先アドレスと件名 - しばらくすると、テスト結果がFromアドレス宛てに返信メールで届きます。
CheckTLS TestSenderのテスト結果
コマンドラインでSTARTTLS対応を直接確認する
ブラウザから完結する上記2つのツールに対して、エンジニア向けにはコマンドラインで直接確認する方法もあります。
- openssl s_client
-
STARTTLSのネゴシエーション結果に加え、証明書の内容やTLSプロトコルバージョン、暗号スイートまで直接確認できます。
openssl s_client -connect <ホスト名>:25 -starttls smtp
STARTTLS拡張はRFC 3207で定義されているSMTPの拡張です。
実行結果の判定方法は次の通りです。
STARTTLSに対応している場合は、EHLO応答に「250-STARTTLS」が含まれ、続けて「SSL-Session」の項目にProtocolやCipherの情報が表示されます。
STARTTLSに対応していない場合は、「didn't find starttls in server response」のようなエラーが出力され、TLSハンドシェイクは開始されません。 - testssl.sh
-
testssl.shは、オープンソースのコマンドラインツールです。
testssl.sh --starttls smtp <ホスト名>:<ポート>
STARTTLS対応の有無に加え、脆弱な暗号スイートや既知の脆弱性もまとめて診断できます。
SMTP以外にIMAP・POP3などのSTARTTLS対応プロトコルにも使用できます。
その他のオンライン診断ツール
複数のMXサーバーをまとめて確認したい場合や、STARTTLS以外の項目も併せて診断したい場合には、以下のオンラインツールも利用できます。
- MXToolbox SMTP Diagnostics
- MXレコードから対象のMTAを自動検出し、TLS対応状況、オープンリレーの有無、逆引きDNSなどをまとめて診断します。
- CaptainDNS SMTP Test
- ドメインの全MXサーバーを自動的に巡回し、バナー応答・EHLO応答・STARTTLS対応・TLS証明書・オープンリレーの有無までまとめて確認できます。