SMTP認証 【SMTP Authentication】 SMTP-AUTH
概要
SMTP認証(SMTP Authentication)とは、メールの送信や転送に用いるプロトコル(通信規約)であるSMTPの拡張仕様の一つで、メールの発送時に、メールサーバが送信依頼をしてきた相手が正規の利用者かどうかを確認する方法を規定したもの。SMTPはもともとユーザー認証の機構がなく、誰でも自由にメールサーバにアクセスしてメールを発送することができたため、インターネット上で広告メールやウイルスメールなどが無差別にばら撒かれる要因となっていた。
SMTP認証では、利用者の手元のメールクライアントからネットワーク管理者の運用するSMTPサーバ(メール送信サーバ)へメールの送信依頼を行う際に認証過程を導入し、クライアント側にアカウント名やパスワードを申告させて確かに正規の利用者であることを確認してから送信を受け付けるようにすることができる。
認証方式
汎用的な認証方式のSASL(Simple Authentication and Security Layer)を採用しており、認証情報(アカウント名やパスワード)をそのまま交換するモード(AUTH LOGINコマンドやAUTH PLAINコマンド)と、不可逆な符号化(ハッシュ化)を施して通信途上での盗み見を防止するモード(AUTH CRAM-MD5コマンドやAUTH DIGEST-MD5コマンド)がある。
近年では、パスワードを直にやり取りするのではなく、アクセストークンと呼ばれるアクセス許可を指示する短い符号をやり取りするOAuth規格を応用したAUTH XOAUTHコマンドや、OAuth 2.0規格対応のAUTH XOAUTH2コマンドが定義され、こちらを用いるシステムが増えている。
暗号化との併用
SMTPには通信を暗号化する仕組みがなく、これはSMTP認証でも同様である。インターネット上ではたとえハッシュ化などが行われていても認証についてのやり取りを第三者が自由に見ることができるのは好ましくないため、SSL/TLS方式でSMTP通信を丸ごと暗号化する「SMTPS」(SMTP over SSL/TLS)が併用されることが多い。
SMTPではサーバ間のメッセージ交換に25番ポートを用いるが、SMTPSでメールを発送する場合はクライアントからサーバの465番ポートに接続することになっており、SMTP認証のやり取りやメッセージ本体がすべて暗号化される。暗号化を使用せず発送する場合は587番ポートを利用する。
従来方式からの移行
SMTP認証はサーバとクライアントの双方が対応してなければ利用できないため、様々な加入者が利用するインターネットサービスプロバイダ(ISP)などでは旧来の方式から徐々に切り替えが進められ、近年では多くのサービスでSMTP認証による認証が必須となっている。
SMTP認証の最初の仕様は、インターネット関連技術の標準化を推進するIETFによりRFC 2554「SMTP Service Extension for Authentication」として1999年に発行され、2007年のRFC 4954によって更新された。SMTP認証が普及するまでの過渡期の認証方式として、認証機能を持つPOP3プロトコルによるメール受信動作を送信直前に行うことで、正規の利用者からのアクセスであることを確認する「POP before SMTP」(PbS)が用いられた。