メール認証セキュリティ学習

STARTTLSとSMTPSの違い|587と465の使い分け

ドメイン番人7 分で読めます
目次

この記事でわかること

  • STARTTLS と SMTPS(Implicit TLS)の違い
  • ポート 25・465・587 がそれぞれ何の役割か
  • メール送信で 587 と 465 のどちらを選ぶべきか

「ポートは587?それとも465?」で手が止まる

メールソフトの送信サーバー設定を開くと、ポート番号と暗号化方式を選ぶ欄が出てきます。「SMTP は 25 番」と覚えていたのに、設定画面には 465 や 587 が並び、暗号化の種類も「SSL/TLS」「STARTTLS」と複数ある——ここで手が止まる Web 担当者は少なくありません。

ここを誤ると、メールが送れない、あるいは暗号化されないまま平文で送られてしまう、といった事故につながります。送信設定は一度決めれば長く使うものなので、それぞれの意味を正しく押さえておきましょう。

混乱の原因は、暗号化を始める「タイミング」が 2 通りあること、そしてポート番号が 3 つ登場することです。この記事ではまず暗号化方式の違いを、次にポートの役割を整理します。

STARTTLS と SMTPS(Implicit TLS)の違い

メールの通信を暗号化する方式には、大きく分けて 2 つのやり方があります。

STARTTLS(スタートティーエルエス) は、最初は平文(暗号化されていない状態)で接続を始め、途中で「ここから暗号化に切り替えましょう」と昇格させる方式です。RFC 3207 で定義されています。具体的には、クライアントが EHLO を送り、サーバーが応答の中で STARTTLS 対応を知らせ、クライアントが STARTTLS コマンドを送ると、サーバーが「220」で応じて TLS 交渉を始めます。TLS が確立した後、同じ接続のまま暗号化された通信に切り替わります。

SMTPS / Implicit TLS(インプリシット ティーエルエス=暗黙のTLS) は、接続した瞬間から TLS のハンドシェイクを始める方式です。RFC 8314 はこの方式について「『submissions』サービス(既定ポート 465)の TCP 接続が確立すると、ただちに TLS ハンドシェイクが始まる」と定義しています。平文のやり取りが一切発生しないのが特徴です。

STARTTLS(平文で接続してから暗号化へ昇格)とImplicit TLS(接続直後から暗号化)のハンドシェイク比較図

「SMTPS」という呼び方は通称で、規格上は Implicit TLS(暗黙の TLS)と呼ばれます。本記事でも以降は Implicit TLS と表記します。

なお RFC 8314 は、実装が正しければ「ポート 587 の STARTTLS とポート 465 の Implicit TLS のセキュリティ特性に大きな差はない」と述べています。差が出るのは実装ミスや経路上の攻撃が絡んだ場合で、その点は後述します。

ポート25・465・587の役割を整理する

メール送信に登場する 3 つのポートは、用途が明確に分かれています。

ポート 用途 暗号化の方式 根拠
25 サーバー間の配送(MTA 間のリレー) STARTTLS(日和見) RFC 6409
465 メール送信(Submission) Implicit TLS(暗黙) RFC 8314
587 メール送信(Submission) STARTTLS(昇格) RFC 6409 / 8314

ポート25・465・587の役割早見表

ポート 25 は、メールサーバー同士(MTA:Mail Transfer Agent)がメールを受け渡すためのポートです。RFC 6409 はこのリレーを「完成済みのメッセージをサーバー間で転送する」ものと位置づけ、原則として認証を伴いません。メールソフトからの送信に使うものではありません。

ポート 587 は、RFC 6409 が「メール送信(Submission)のために予約されている」と定めるポートです。Submission は、メールソフト(MUA:Mail User Agent)からサーバーへ最初にメールを渡す工程で、認証と送信元のチェックを伴います。587 では STARTTLS で暗号化に昇格させます。

ポート 465 も Submission 用のポートですが、こちらは Implicit TLS を使います。歴史的に一度は非推奨とされた経緯がありますが、RFC 8314 によって Implicit TLS の Submission ポートとして正式に位置づけ直されました。

ポイントは、25 番は「サーバー間の配送」、465 と 587 は「クライアントからの送信」と役割が違うことです。メールソフトの送信設定で 25 番を選ぶのは、現在では適切ではありません。

どれを選ぶべきか(RFC 8314の推奨)

結論として、メールソフトからの送信には 465(Implicit TLS)または 587(STARTTLS) を使い、25 番は使いません。

そのうえで RFC 8314 は方向性を明確に示しています。同 RFC は、メールソフトとメールサービス事業者に対して「STARTTLS コマンドよりも Implicit TLS の利用を推奨(preference)する」と述べ、Implicit TLS(=465)を優先する立場を取っています。さらに移行期間として、クライアントとサーバーの双方が「587 の STARTTLS と 465 の Implicit TLS の両方を実装すべき(SHOULD)」とも記しています。

理由は、暗号化を始めるタイミングにあります。STARTTLS は最初に平文でやり取りする区間があるため、経路上の攻撃者が STARTTLS の応答を書き換えてダウングレード攻撃(暗号化を無効化して平文に落とす攻撃)を仕掛ける余地が残ります。Implicit TLS は接続直後から暗号化が始まるため、この区間が存在しません。

実務上は、利用するメールサービスがどちらに対応しているかで選ぶことになります。両方使えるなら 465(Implicit TLS)を優先し、465 が使えない環境では 587(STARTTLS)を選ぶ、という判断で問題ありません。どちらを選ぶ場合でも、暗号化を「必須」に設定することが重要です。

メールサーバー間の配送経路まで暗号化を強制したい場合は、Submission の暗号化とは別に MTA-STS と TLS-RPT の導入を検討します。これらは 25 番(サーバー間)の通信を守る仕組みです。

設定例とよくある誤り

メールソフトの送信サーバー(SMTP)設定は、おおむね次の組み合わせになります。

Implicit TLS を使う場合

  • ポート:465
  • 暗号化方式:SSL/TLS(または「暗黙的な TLS」)
  • 認証:あり(ユーザー名・パスワード)

STARTTLS を使う場合

  • ポート:587
  • 暗号化方式:STARTTLS
  • 認証:あり(ユーザー名・パスワード)

具体的なポートと方式は、利用するメールサービスの公式ドキュメントに従ってください。Google Workspace(Gmail)や Microsoft 365 など、各事業者が推奨設定を公開しています。推測で設定せず、必ず公式の値を確認することが事故防止につながります。

よくある誤りは次の 3 つです。

  1. ポートと方式の組み合わせ違い:465 に STARTTLS を、587 に SSL/TLS を指定すると接続できないことがあります。465 は Implicit TLS、587 は STARTTLS が基本の対応です。
  2. 暗号化を「なし/任意」のままにする:方式を「なし」や「可能なら使う」にすると、平文で送信される恐れがあります。「必須」に相当する設定を選びます。
  3. 25 番をメール送信に使う:プロバイダによっては送信用の 25 番(OP25B)が遮断されており、そもそも送れません。送信は 465 か 587 を使います。

送信設定そのものは正しくても、ドメイン側の認証設定(SPF・DKIM・DMARC)が整っていないと、相手のサーバーで迷惑メール扱いされることがあります。送信の暗号化と認証は別の話です。認証の基本は メール認証(SPF / DKIM / DMARC)の基礎 で整理しています。

よくある質問

SMTPS と Implicit TLS は同じものですか?

実質的に同じものを指します。「SMTPS」は通称で、規格(RFC 8314)では Implicit TLS(暗黙の TLS)と呼ばれます。接続直後から TLS で暗号化する方式です。

587 と 465 はどちらが安全ですか?

RFC 8314 は、実装が正しければ両者のセキュリティ特性に大きな差はないとしつつ、Implicit TLS(465)の利用を推奨しています。STARTTLS(587)は最初に平文区間があるため、ダウングレード攻撃の余地が理論上残るためです。両方使えるなら 465 を優先します。

ポート25でメールを送信してはいけないのですか?

25 番はサーバー間の配送(リレー)用です。メールソフトからの送信には 465 か 587 を使います。多くのプロバイダが送信用の 25 番を遮断しているため、実際に送れないことも多いです。

まとめ

  • STARTTLS は平文で接続してから暗号化へ昇格、Implicit TLS は接続直後から暗号化する方式です
  • ポート 25 はサーバー間配送、465 と 587 はクライアントからの送信(Submission)用です
  • 送信は 465(Implicit TLS)または 587(STARTTLS)を使い、RFC 8314 は 465 を優先推奨しています。25 番は送信に使いません

まずは現状を把握しましょう

送信設定が正しくても、ドメインの認証設定(SPF / DKIM / DMARC)が整っていないとメールが届かないことがあります。自社ドメインの状態は無料で診断できます。設定がわからない方は、お気軽にご相談ください。専門家がわかりやすくサポートいたします。

次の一歩は無料診断から。