Menu

BLOG ベアメールブログ

SMTP-AUTHとは? SMTP認証の仕組みやセキュリティを高めるための注意点

SMTP-AUTHは、メール送信時のユーザ認証の仕組みを規定したSMTPの拡張仕様です。メール送信プロトコルであるSMTPは、誰でも自由にメールを送信できることから、大量のスパムメールが送信されてしまうという問題がありました。このSMTPの欠点を補うために登場したのがSMTP-AUTHです。本記事では、SMTP-AUTHが登場した背景や仕組み、安全に使用するための注意点などについて解説します。

SMTP-AUTHとは

SMTP-AUTHとは、メールの送信・転送に用いるプロトコルであるSMTP(Simple Mail Transfer Protocol)を拡張して、SMTPサーバーがSMTPクライアント(メールの送信者)を認証できるようにした仕様です。SMTP-AUTHはSMTP認証とも呼ばれます。

SMTP-AUTHが登場した背景

ユーザがメールクライアントで作成したメールを送信すると、まずメールは送信側メールサーバーに送られ、そこから受信側メールサーバーへ転送されて受信者へと届けられます。この転送に使用されるプロトコル(通信規約)がSMTPです。

このSMTPは文字どおりシンプルなプロトコルで、ユーザを認証する仕組みがないために元来は誰でも自由にSMTPサーバーを利用できました。しかし、これにより悪意を持ったユーザが他人のメールサーバーを不正利用し、大量のスパムメールを送る行為が問題となりました。

そこで送信時にユーザ認証を行うSMTP-AUTHの仕組みが登場したのです。クライアントからサーバーに対してメール送信を依頼する際にユーザ名・パスワードを申告させ、正規のクライアントであることを確認できたもののみメールの送信を許可します。これによりID・パスワードによるユーザ認証ができなければメールサーバーはメールを受け付けないため、不正なユーザからの送信を防ぐことができるようになりました。

SMTP-AUTHのポート番号

ポート番号とは、サーバー上で稼働している特定のアプリケーションを指定するために用いられます。IPアドレスがサーバーの住所だとすれば、ポート番号はその中の部屋番号のようなものです。サーバーに接続するためには、IPアドレスとポート番号の2つを指定する必要があります。

SMTP-AUTHが使用するポートは587番ポートです。587番ポートは、メールクライアントから送信メールサーバーに接続する際に使用するデフォルトのポート番号になっています。また、このメール送信に使用するポートのことを「サブミッション・ポート」(Submissionポート)と呼ぶこともあります。

従来メール送信時には25番ポートを使用していましたが、ISPやクラウドホスティング事業者などがスパム対策として25番ポートへの接続を禁止する「OP25B」(Outbound port 25 Blocking)という規制を行いました。スパマーがメールサーバーを不正利用できないように、ユーザ認証の仕組みのないSMTP×25番ポートから、ユーザ認証のできるSMTP-AUTH×587番ポートへと変更されたのです。

現在25番ポートは主にメールサーバー間の転送、いわゆるSMTPリレー(メールリレー)に使用されています。

OP25Bについて詳しくは以下の記事で解説しています。
メール送信規制「OP25B」とは?25番ポートブロックの概要と回避策 | ベアメールブログ

SMTP-AUTHの認証方式

SMTP-AUTHの認証時に使われるプロトコルには以下のような複数の種類があります。

PLAIN

ユーザ名・パスワードをBase64でエンコードし、1つの文字列として送信します。現在でも最も一般的に使用されている方式です。

LOGIN

ユーザ名とパスワードをBase64でエンコードし、1つずつ別々に送信します。SASL Mechanismのドキュメントによれば廃止されたと記載がありますが、現在でも使用されています。

参考:IANA「Simple Authentication and Security Layer (SASL) Mechanisms」https://www.iana.org/assignments/sasl-mechanisms/sasl-mechanisms.xhtml (2023/04/07 確認)

CRAM-MD5

サーバーはクライアントに対し計算上の課題を解決するように要求し、クライアントはパスワードを秘密鍵としたハッシュ値として計算結果を応答します。

CRAM-MD5はBase64でエンコードされているとはいえユーザ名とパスワードが直接送信されるPLAINとLOGINに比べ、よりセキュリティが高い方式です。しかし現在ではあまり使用されておらず、過去に対応していたメールサービスも対応が終了している場合が多いようです。

XOAUTH/XOAUTH2

GmailやOutlook.comで使用されている認証方式です。ユーザを認証するためのOAuth署名に基づき、トークンを使用して認証を行います。

今後主流になることが見込まれるOAuthによる認証ですが、まだ普及しているとはいえない状況です。Postfixなどのミドルウェアが現在標準で対応していないため、プラグインを使用するなどの対応と検証が必要です。

SMTP-AUTHのセキュリティリスク

SMTPよりもユーザ認証を行うという点でセキュリティが向上したSMTP-AUTHですが、現在要求されるセキュリティの水準からすると必ずしも安全であるとは言い切れません。

基本認証(レガシー認証)のリスク

最新の認証方式はID・パスワード方式から離れ、トークンベースの認証や多要素認証などを採用しています。SMTP-AUTHは、ユーザ名とパスワードを利用する基本認証(レガシー認証)であるため、認証方式の弱さという点でセキュリティ上のリスクが存在します。

実際にMicrosoftもセキュリティのリスクを懸念して、2023年1月にExchange Onlineの基本認証を廃止し、先進認証(モダン認証)への切り替えを実施しています。Exchange Onlineでは便宜上SMTP-AUTHは残されていますが、Microsoftは推奨していません。

Exchange Onlineの基本認証廃止については以下のブログで詳しく解説しています。
Exchange Online基本認証廃止によるメール送信への影響は? 実施すべき対応を解説 | ベアメールブログ

基本認証の主なセキュリティリスクは、アカウント侵害に対して脆弱であるという点です。アカウントロックを回避しながらユーザ名とパスワードの組み合わせを試す「パスワードスプレー攻撃」や、漏洩したユーザ名・パスワードの組み合わせを悪用して不正アクセスを試みる「クレデンシャルスタッフィング攻撃(Credential Stuffing)」などの攻撃を受けやすい傾向があります。特にユーザ名・パスワードが推測されやすいものや単純なものの場合、前述の攻撃に加えてブルートフォース攻撃や辞書攻撃などで乗っ取られるリスクが高いため、パスワードの管理には注意が必要です。

盗聴のリスク

SMTP-AUTHで主流の認証方式であるPLAINは、Base64でエンコードされますがユーザ名とパスワードをそのまま送信します。平文ではないため多少の秘匿性はありますが、Base64はデコードすることが可能なため、万が一盗聴された場合にはユーザ名とパスワードが漏洩してしまうリスクも考えられます。

SMTP-AUTHを安全に使用するための注意点

SMTP-AUTHを使用して安全にメールを送信するには、以下のポイントに注意しましょう。

パスワードポリシーを強化する

パスワードが推測されやすいものや単純なものだと、悪意のある第三者にブルートフォース攻撃や辞書攻撃などで乗っ取られるリスクが高くなります。実際に、単純で短いパスワードを設定したメールアカウントが乗っ取られ、スパムメールを大量に送信してしまうといった被害は頻発しています。

そのため、なるべく推測されにくい複雑なパスワードを設定しましょう。例えばGoogleは、英字・数字・記号を組み合わせた12文字以上のパスワードを推奨しています。

また、いつも同じユーザ名・パスワードを使い回していると、どこかで流出してしまった場合にクレデンシャルスタッフィング攻撃に悪用されてしまいます。できるだけ同じパスワードを使い回さない、もし漏洩の被害に遭った場合には早急にパスワードの変更を行うといった対応が必要です。

通信経路を暗号化する

SMTP-AUTH自体には通信を暗号化する仕組みがないため、通信を盗み見られるとユーザ名やパスワードといった情報が漏洩する恐れがあります。より安全性を高めるには、別の手段と組み合わせて通信経路を暗号化することが推奨されます。

例えばSTARTTLSという技術は、通信経路を暗号化する「SSL/TLS」をメールサーバーに取り入れたものです。暗号化されていない平文での通信を、暗号化通信に切り替えることができます。

STARTTLSについて詳しくは以下のブログで解説しています。
STARTTLSとは? メール暗号化の仕組みやメリットについて解説 | ベアメールブログ

インターネット上の通信の盗聴リスクをどこまで神経質に考えるかによりますが、慎重を期す場合には通信の暗号化も併せて行うようにしましょう。

まとめ

SMTP-AUTHはSMTPを拡張してメールの送信者を認証できるようにした仕組みです。SMTP-AUTHの使用により不正なユーザからのスパムメールを防ぐ効果があります。
ただしSMTP-AUTHはユーザ名・パスワードで認証を行う基本認証であるため、現在要求されるセキュリティの水準からすると安全性が高いとは言い切れません。今回紹介した注意点をはじめセキュリティ対策をきちんと行い、安全なメール配信を心がけましょう。