エスエムティーピー‐にんしょう【SMTP認証】
SMTP認証
(SMTP auth から転送)
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2026/05/03 06:35 UTC 版)
SMTP認証(SMTP Authentication、略:SMTP AUTH)は、Simple Mail Transfer Protocol (SMTP) の拡張であり、クライアントがサーバーでサポートされている任意の認証メカニズムを使用してログインできるようにするものである。主に認証が必須であるサブミッションサーバーで使用される[1]。SMTP認証では、Basic認証が用いられているため、近年ではOAuth 2.0を用いた認証が推奨されている[2]。
歴史
1970年代にジョン・ポステルによって仕様化されたSMTPは、電子メールメッセージを送信するためのパスワードの使用を提供していなかった。各サーバーは設計上オープンリレーであった。その結果、スパムやワームは、当初は問題にならなかったものの、90年代後半までには深刻な問題となっていた[3]。SMTP AUTH以前は、「リレークライアント」はIPアドレスによって識別される必要があったが、これは接続を提供する同じISPによって提供される電子メールサービスでのみ実用的であった。それ以外の場合、POP before SMTPなどの特定のハックを使用する必要があった。
ジョン・ガーディナー・マイヤーズは1995年にSMTP AUTHの最初のドラフトを公開し[4]、その後、メールサブミッションプロトコル、拡張SMTP (ESMTP)、およびSimple Authentication and Security Layer (SASL) とともに、IETFで継続的に開発と議論が行われてきた。ESMTP認証 (ESMTPA) のための古いSASLメカニズムはCRAM-MD5であり、HMAC (ハッシュベースのメッセージ認証コード) におけるMD5アルゴリズムの使用は依然として健全であると考えられている[5]。
Internet Mail Consortium (IMC) は、1998年にメールサーバーの55%がオープンリレーであったと報告したが[6]、2002年には1%未満になったと報告している[7]。
2022年5月30日以降、Googleはパスワードのみでログインするサードパーティアプリのアクセスを遮断した[8]。
2026年12月末、Microsoft Exchange Onlineは、セキュリティ強化のため、IDとパスワードのみのSMTP AUTHを正式に廃止・デフォルト無効化する予定である[9]。
メール転送システムにおける役割
一般的にポート587を使用するMail submission agent (MSA) の利用は、SMTP AUTHを暗黙のうちに意味する。MSAの使用はほとんどのソフトウェアでサポートされており[10]、いくつかのネットワークハブがポート25をブロックするか、SMTPプロキシを使用しているため、特にノマドユーザーをサポートするために推奨されている。MSAは、メッセージエンベロープに適切なアドレスが含まれていることを保証する責任があり、`From`ヘッダーフィールドのローカルポリシーを適用する場合がある。Sender Policy Framework (SPF) に使用されるエンベロープ送信者(別名 `Return-Path`)と `From` アドレスが、認証されたユーザーIDと一致することを確認することは、DomainKeys Identified Mail (DKIM) を使用してメッセージに署名するドメインにとって特に重要である。
SMTP AUTHを使用してメッセージを受信した場合、`Received`ヘッダーフィールドの `with` 句には `ESMTPA` や `ESMTPSA` などの「A」で終わるキーワードが提供される[11]。「これらのキーワードは統計的または診断的な目的のために提供されている」(RFC 3848)。これらは、SpamAssassinなどの一部のクライアントによってチェックされる。
詳細
すべてのSMTP拡張機能と同様に、SMTP AUTHはサポートされている認証方法のリストとともに、EHLO応答でアドバタイズされる。これらの方法はSTARTTLSを発行した後に変更される可能性があり、通常は後者の場合にのみプレーンテキストパスワードを許可する。RFC 4954では以下の例が提供されている(「C:」と「S:」はプロトコルの一部ではなく、それぞれクライアントとサーバーによって送信された行を示す)。
S: 220 smtp.example.com ESMTP Server
C: EHLO client.example.com
S: 250-smtp.example.com Hello client.example.com
S: 250-AUTH GSSAPI DIGEST-MD5
S: 250-ENHANCEDSTATUSCODES
S: 250 STARTTLS
C: STARTTLS
S: 220 Ready to start TLS
... TLS negotiation proceeds.
Further commands protected by TLS layer ...
C: EHLO client.example.com
S: 250-smtp.example.com Hello client.example.com
S: 250 AUTH GSSAPI DIGEST-MD5 PLAIN
C: AUTH PLAIN aWxvdmV3aWtpcGVkaWE=
S: 235 2.7.0 Authentication successful
SMTP AUTHはポート25でも使用できる。通常、サーバーは認証情報が受け入れられない限り、リレーを意味するRCPT TOコマンドを拒否する。仕様では、サーバーが認証を必要とするように構成されており、クライアントがまだ認証を行っていない場合、ほとんどのコマンドの応答として `530 5.7.0 Authentication required` を発行することを推奨している。そのように構成すべきなのは、ポート587でリッスンしているサーバーやプライベートサーバーのみであり、Message eXchange (MX) ではない。しかし、デフォルトではSMTPが認証されないという歴史的な特徴により、一部のケースではアクセスプロトコルに関する動作が異なる結果をもたらす。例えば、STARTTLSの後にAUTH EXTERNALを使用する場合などである[12]。
`AUTH` コマンドに加えて、この拡張機能は認証と認可を区別できるようにするために、`MAIL FROM` コマンドに対する `AUTH` パラメータも提供する。これにより、送信者は自身を識別し、同じセッション中に複数のメッセージを送信できる。一度確立されると認証を変更する必要はないが、異なる合意に従って異なるメッセージが送信される可能性があり、したがって異なる認可が必要になる場合がある。例えば、メッセージが異なるユーザーに代わってリレーされる場合などである。このパラメータの使用は、リレー権限を付与するためにコマンドを使用するよりもはるかに普及していない。
SMTP認証はSMTPの用語において「拡張機能」であるため、時代遅れのHELO挨拶とは対照的に、拡張機能のサポートを示すためにサーバーとクライアントが挨拶としてEHLO動詞を使用する必要がある[13]。後方互換性のため、拡張機能が使用されない場合にはHELO挨拶が受け入れられることがある。
`AUTH` コマンドに続く大文字のテキストは、SMTPサーバーが受け入れる認可の種類のリストである。
認可プロトコルの例は以下の通りである。
- PLAIN (Base64エンコーディングを使用)
- LOGIN (Base64エンコーディングを使用)[14] (PLAINの採用により廃止)
- GSSAPI (Generic Security Services Application Program Interface)
- DIGEST-MD5 (Digest access authentication)
- MD5
- CRAM-MD5
- OAUTH10A (RFC 5849で定義されているOAuth 1.0a HMAC-SHA1トークン)
- OAUTHBEARER (RFC 6750で定義されているOAuth 2.0ベアラートークン)
- XOAUTH2[15]
代替案
SMTP認証では、Basic認証が用いられている。このため、リスト型攻撃やブルートフォース攻撃への脆弱性が指摘されている。また、暗号化通信に非対応のため、通信の傍受に弱いという脆弱性も指摘されている。Microsoft(Exchange Online / Microsoft 365)やGoogle(Google Workspace)は、基本認証を段階的に廃止し、OAuth 2.0やAPIを利用する方法への移行を強制している[8][9]。
APIを利用する方法
自社開発のWebアプリケーション等からメールを自動送信する場合、SMTPプロトコル自体から脱却し、各クラウドベンダーが提供するAPIを利用する方法が推奨されている。MicrosoftのMicrosoft Graph API、Google WorkspaceのGmail APIなどが例としてあげられる。セキュリティが強固であり、メール送信以外の機能への拡張も容易であるというメリットがある。
OAuth 2.0を利用した方法
アプリケーション側が対応している場合、SMTPプロトコルは維持したまま、認証方式のみをOAuth 2.0に切り替える方法である。パスワードの代わりに有効期限付きのアクセストークンを用いて認証を行う。既存のSMTP送信ライブラリ(JavaMail、PHPMailerなど)が対応していれば、比較的少ない変更で導入可能である[16]。
サードパーティのメール配信サービス利用
アプリケーションから、APIキーを用いSendGrid、Amazon SES、MailgunなどのSMTPリレーサービスを利用し、外部へメールを配信する方法がある。大量配信に強く、到達率の管理も委託できる利点がある。
IPアドレスベースのリレー送信
OAuth 2.0やAPIに対応できない古いシステムやオフィスの複合機を利用している場合の代替案である。認証にIDやパスワードを使わず、「自社の固定IPアドレスからの通信であれば許可する」という設定を管理画面で行う。機器側の設定変更を最小限に抑えられるが、固定IPアドレスが必須となる。
標準
- RFC 3207, SMTP Service Extension for Secure SMTP over Transport Layer Security, Paul Hoffman, February 2002.
- RFC 3848, ESMTP and LMTP Transmission Types Registration, Chris Newman, July 2004.
- RFC 6409, Message Submission for Mail, Randall Gellens and John C. Klensin, November 2011 (2006年のRFC 4409を廃止し、それは1998年12月のRFC 2476を置き換えた).
- RFC 4422, Simple Authentication and Security Layer (SASL), Alexey Melnikov and Kurt D. Zeilenga, June 2006.
- RFC 4616, The PLAIN SASL Mechanism, K. Zeilenga, Ed., August 2006.
- RFC 4954, SMTP Service Extension for Authentication, Robert Siemborski and Alexey Melnikov, July 2007.
- RFC 7628, A Set of Simple Authentication and Security Layer (SASL) Mechanisms for OAuth, W. Mills, T. Showalter and H. Tschofenig, August 2015.
その他
- Erwin Hoffmann, SMTP Authentication [Tutorial], last edit 2017-01-10.
脚注
- ↑ 関連するRFCについては「#標準」セクションを参照のこと
- ↑ AshaIyengar21. “Exchange Online での基本認証の廃止”. learn.microsoft.com. 2026年4月14日閲覧。
- ↑ “In Unix, what is an open mail relay?”. Indiana University. 2026年4月14日閲覧。
- ↑ “SMTP Service Extension for Authentication”. IETF. 2026年4月14日閲覧。
- ↑ “RFC 6151 - Updated Security Considerations for the MD5 Message-Digest and the HMAC-MD5 Algorithms”. IETF. 2026年4月14日閲覧。
- ↑ “Allowing Relaying in SMTP: A Survey”. Internet Mail Consortium. 2026年4月14日閲覧。
- ↑ “Allowing Relaying in SMTP: A Series of Surveys”. Internet Mail Consortium. 2026年4月14日閲覧。
- 1 2 株式会社インプレス (2022年5月27日). “Google アカウントが5月30日にセキュリティ強化、Gmailの外部メールアプリ利用などが使えなくなる可能性”. ケータイ Watch. 2026年4月14日閲覧。
- 1 2 AshaIyengar21. “Exchange Online での基本認証の廃止”. learn.microsoft.com. 2026年4月14日閲覧。
- ↑ “Message Submission Interoperability Report”. IETF. 2026年4月14日閲覧。
- ↑ “Mail parameters”. IANA. 2026年4月14日閲覧。
- ↑ “Interop problem: SMTP submission, STARTTLS, AUTH EXTERNAL”. IETF. 2026年4月14日閲覧。
- ↑ “RFC 5321 - Simple Mail Transfer Protocol”. IETF. 2026年4月14日閲覧。
- ↑ “The LOGIN SASL Mechanism”. IETF. 2026年4月14日閲覧。
- ↑ “Gmail's XOAuth2 SASL protocol”. Google. 2026年4月14日閲覧。
- ↑ admin-dev (2025年10月29日). “GmailのPOP受信サービス終了|代替案やIMAPへの移行方法を解説”. バリューノート. 2026年4月14日閲覧。
関連項目
SMTP-AUTH
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/07/14 02:28 UTC 版)
「Simple Mail Transfer Protocol」の記事における「SMTP-AUTH」の解説
前述のSMTP標準にはユーザー認証機構が含まれていないが、インターネットの普及に伴ってその必要に迫られたため SASL メカニズムを利用した認証機構が RFC 2554 - SMTP Service Extension for Authentication(SMTP-AUTH)として標準化された。この標準の最新文書は RFC 4954 である。
※この「SMTP-AUTH」の解説は、「Simple Mail Transfer Protocol」の解説の一部です。
「SMTP-AUTH」を含む「Simple Mail Transfer Protocol」の記事については、「Simple Mail Transfer Protocol」の概要を参照ください。
- SMTP authのページへのリンク