BLOG ベアメールブログ
2022.08.24 (水)
HowToガイドSTARTTLSとは? メールのTLS暗号化の仕組みから設定・確認方法

Last Updated on 2025.05.20
STARTTLSとは、暗号化されていない平文での通信を、SSL/TLSを利用した暗号化通信に切り替える仕組みのことです。メール送信に利用されるプロトコルであるSMTPは暗号化通信に対応していないため、盗聴などのリスクからメールを守るために、メールの通信経路の暗号化の手段としてSTARTTLSが利用されています。本記事では、メールの暗号化とはどのようなものか、暗号化技術であるSSL/TLSの概要を踏まえ、STARTTLSの概要と仕組み、メリット・デメリットについて解説します。
※本記事は、最新の情報をもとに2025/5/20に更新しています。
目次
STARTTLSとは
STARTTLSとは、暗号化されていない平文での通信を、SSL/TLSを利用した暗号化通信に切り替える仕組みのことで、通信経路を暗号化する技術です。
まずは、メールの暗号化が求められる背景と、STARTTLSと混同されやすい用語について解説します。
そもそもメールの暗号化とは
メールの暗号化とは、送信者から受信者までの通信路で、メールの内容や添付ファイルを第三者から保護するための技術です。メールの送信に使用されるプロトコルであるSMTPには、通信を暗号化してデータを保護するための仕組みがありません。そのため、暗号化せずにメールを送信していると、通信を傍受することでメールを盗み見られる危険性があるのです。
メール暗号化には、通信経路を暗号化する方法とメールの内容自体を暗号化する方法があります。STARTTLSは前者の通信経路の暗号化に該当し、送信サーバーから受信サーバーまでの通信を保護します。後者の例としてはS/MIMEやPGPなどがあり、これはエンドツーエンドでメールデータ自体を暗号化する方法です。
メールのTLS暗号化の必要性
メールの盗聴や改ざんが可能な状態を放置していては、情報漏洩や信用問題に発展する恐れがあります。そのため現在では、メールを安心してセキュアな状態で利用するために、メールの通信を暗号化して外部からの不正行為を防ぐ技術が普及しています。
特に注目すべき点として、2024年2月からGoogleは全てのメール送信者に対してTLS接続の使用を義務付けました。(※)送信時にTLSを使用していないメールは、2024年4月から段階的にGmailによって拒否されるようになっています。
Gmailは非常にシェアの高いメールサービスのため、BtoCのサービスなど個人宛にメール配信を行う企業は、今ではSTARTTLS(TLS)への対応が必須だと言えるでしょう。
※参考:Gmail Help「Email sender guidelines」https://support.google.com/mail/answer/81126?hl=en(2024/12/12 確認)
Googleの送信者要件について詳しくは以下のホワイトペーパーもご参照ください。
SSL/TLSとSTARTTLSの違い
SSL(Secure Sockets Layer)とTLS(Transport Layer Security)は、インターネット上の通信を暗号化する技術です。TLSはSSLの後継として開発され、SSLという言葉が普及しているものの、技術的にはTLSの呼称が使用されていることが多いです。
STARTTLSとSSL/TLSの主な違い
- SSL/TLSは暗号化技術そのもの、STARTTLSはその技術を利用するための実装方法
- SSL/TLSはWebサイトなどインターネット全般の暗号化に使われるが、STARTTLSはメールなどの特定プロトコルでの利用を目的としている
- SSL/TLSで直接通信を開始する場合は通信全体が暗号化されるが、STARTTLSは通信開始後に暗号化に切り替わる
STARTTLSの仕組み
STARTTLSはプロトコルではなくコマンドです。SMTPでメールの送信を行う際、まず暗号化されていない状態で通信を開始し、途中でSTARTTLSコマンドを実行することで通信経路を暗号化します。その際の流れは下記の通りです。
① メールクライアントとメールサーバー間でTCP(Transmission Control Protocol)のコネクションを確立する。
② メールクライアントからメールサーバーに対して、SMTP拡張機能(SSL/TLSを使用するために必要なSMTPの拡張仕様)をサポートしていることを伝えるEHLOコマンドを送信する。
③ 通信先メールサーバーからEHLOへの応答が返却され、SSL/TLSに対応しているか判定する。
④ メールクライアントからメールサーバーに対して、STARTTLSコマンドを実行する。(相手がTLS非対応の場合にはTLSで暗号化せずSMTPの通信を継続する)
⑤ メールサーバーから正常の応答が返却されると、TLS接続が確立される。
⑥ 以降の通信が暗号化される。
このように、最初から全ての通信を暗号化するのではなく、宛先のメールサーバーがSTARTTLSに対応しているかどうかを確認し、対応している場合のみ暗号化を行うという動作になります。
SMTPSとSTARTTLSの違い
なお、同じくメールの通信経路を暗号化する仕組みとしてSMTPS(SMTP over SSL/TLS)がありますが、SMTPSではまず最初にTLS接続を確立してから通信を行います。そのため平文での通信は行うことができないため、SMTPとは別に専用のポート(一般的には465番)を使用する必要がある(STARTTLSはSMTPと同じ25番ポートか587番ポートを使用)という違いがあります。
比較項目 SMTPS STARTTLS 使用ポート番号 465 25または587 暗号化開始タイミング 通信開始時点から STARTTLS宣言後 暗号化範囲 通信全体 STARTTLS宣言後から最後まで 互換性 受信側がSMTPSに対応していない場合、通信ができない 受信側が対応していない場合、暗号化せずに通信は可能 セキュリティレベル 高い(全通信が保護される) やや劣る(初期通信は平文)
STARTTLSの設定方法
自社のメールサーバーがTLS接続に対応しているかどうかはどのように確認し、設定はどのようにすれば良いのでしょうか。ここではTLS接続の確認方法と設定方法について解説します。
送信したメールがTLSに対応しているか確認する方法
最も簡単なのは、確認したいメールサーバー経由でGmail宛にメールを送信し、Gmailでそのメールを確認することです。Gmailは受信したメールが送信時に暗号化されていない場合、メールに赤い鍵のアイコンを表示します。
Gmailで送信者名の下に赤い鍵のアイコンが表示されていた場合、TLS接続がない状態で送信されているということになります。
STARTTLSの設定方法
STARTTLSは、メールサーバーで使用しているMTA(PostfixやSendmailなど)の設定ファイルに追記することで設定します。具体的な設定内容は利用しているOSやMTAの種類、バージョンによって異なるため、自社の環境に応じた対応を行なってください。
【例:Postfixの場合】
/etc/postfix/main.cf に以下設定を追記
smtp_tls_CAfile = /etc/pki/tls/cert.pem
smtp_tls_security_level = may
smtp_tls_loglevel = 1
smtp_tls_CAfile = /etc/pki/tls/cert.pem
はルート証明書の設定で、ミドルウェア標準で備わっているもので問題ありません。
smtp_tls_security_level = may
がSTARTTLS自体の設定となります。パラメーターの「may」が「接続先のSMTPサーバーがTLSに対応している場合、TLSを使用する」という設定です。
smtp_tls_loglevel = 1
はログを出力するための設定です。送信時のTLSハンドシェイクと証明書の情報をログに記録されるようになります。
以上の設定を追記したら再読み込みを行い、反映されているかテストを行います。
STARTTLSのメリット・デメリット
STARTTLSの具体的なメリット・デメリットについて見ていきましょう。
STARTTLSのメリット
STARTTLSのメリットは以下が挙げられます。
専用のポート番号が不要のためセキュリティを比較的安全に保てる
STARTTLSでは、SMTPと同じ25番もしくは587番ポートを使用します。暗号化通信のために専用のポートが不要であるため、ファイアーウォールなどのセキュリティ設定の負担も少なく済みます。
受信側が暗号化に対応していなくても送信自体は可能
通信の暗号化には、日和見TLSと強制TLSという仕組みがあり、STARTTLSでは日和見TLSを使用して暗号化を行います。日和見TLSとは、相手のサーバーがTLS非対応の場合、暗号化をあきらめ、平文での通信を行うというものです。この方式においては、通信先のメールサーバーの仕様に合わせて暗号化の可否を決め、いずれの状態でもメールの送信自体は可能であるという利点があります。
STARTTLSのデメリット
STARTTLSのデメリットとしては以下が挙げられます。
送信側と受信側の双方がSTARTTLSに対応している必要がある
STARTTLSで暗号化するためには、送信側と受信側の両方がSTARTTLSに対応している必要があります。受信側が非対応の場合は暗号化されないため、仮に送信サーバーでSTARTTLSの設定を行っていたとしても平文のままメールが送信されてしまう場合があります。
初期接続時の通信は暗号化されないため中間者攻撃を受ける可能性がある
STARTTLSでは、通信の開始から暗号化通信の確立までの間は暗号化が行われません。そのため、攻撃者によって暗号化を妨害されたり、中間者攻撃(※)を受けたりする可能性があります。
※中間者攻撃(Man-in-the-middle;MITM)とは、攻撃者がユーザーとその通信相手の間に割り込み、通信の傍受や改ざんを行う行為です。
STARTTLSに対応したサービス
現在では多くのメールサービスや配信インフラが、STARTTLSによる暗号化通信に標準で対応しています。ここでは、STARTTLSに対応している代表的なサービスやシステムについて紹介します。
主要メールサービスの対応状況
以下の主要なメールサービスでは、標準でSTARTTLSに対応しています。
- Gmail(Google Workspace 含む)
- Outlook.com / Microsoft 365
- iCloud Mail
- Yahoo!メール
企業においても、Google WorkspaceやMicrosoft 365などのメールサーバーを利用しているのであれば、それらのメールはSTARTTLSに対応できていると考えて問題ないでしょう。
その他、メルマガの配信や、顧客への通知など、メール配信に利用しているサービス・システムがある場合は、STARTTLSに対応しているか個別に確認するようにしましょう。
ベアメールは標準でSTARTTLSに対応
高い到達率でメールを配信する「ベアメール メールリレーサービス」も、標準でSTARTTLSに対応しています。
会員登録やワンタイムパスワードなどの通知メールを送信するシステムや、社内のSMTPサーバーなど、自社でSTARTTLSに対応するのが難しい場合は、ベアメールにメールをリレーすることで対応可能です。
大量メールを高速に配信できる送信基盤や、高いIPレピュテーション(信頼性)、配信状況やエラーを簡単に確認できる機能を備えており、高い到達率とメールサーバー運用の省力化を実現できます。 メール送信にお悩みがあれば、お気軽にベアメールにご相談ください。
まとめ
メール送信に利用されるプロトコルであるSMTPには、通信を暗号化する仕組みがありません。そのため、暗号化せずにメールを送信していると、通信を傍受することでメールを盗み見られる危険性があります。そうしたリスクからメールを守るために、STARTTLSを使用して通信を暗号化することが有効です。ベアメール メールリレーはSTARTTLSに対応していますので、安心してご利用いただけます。メール送信に課題をお持ちであれば、まずはお気軽にご相談ください。