SMTP認証とは? POP before SMTPとSMTP-AUTH

メール送信用プロトコルのSMTPはもともと認証を必要としない仕様であり、語弊はありますが誰でもメールサーバーを利用することができました。そのため少しの知識があれば迷惑メール(スパムメール)を簡単に送れた時代もあります。

特に規制されるまでの1990年代後半から2000年代前半がひどく、ピークの頃にはインターネットに流れるメールの約8割が迷惑メールであったこともあります。2002年にいわゆる迷惑メール規制法が施行され、改正毎に内容も罰則も強化されています。世界的な取り組みもあり、徐々にですが迷惑メールは少なくなっています。

話はそれましたが、迷惑メール対策としてメール送信にも認証を必要とするようになりました。それがPOP before SMTPとSMTP-AUTHです。

POP before SMTP

その名の通りメール送信の前にメール受信が必要となります。

アカウント認証が必要なPOPによるメール受信をすることで、正規ユーザーであることがメールサーバー側で確認できます。サーバーはPOPを利用したクライアント(パソコン)のIPアドレスをSMTP許可リストに追加して一定時間保持します。

つまり、メール受信後に送信を行うことで、同じIPアドレスからのメール送信(SMTP)が可能となります。

しかし、POP before SMTPには問題点があります。例えば、同じIPアドレスを共有するネットワーク環境(NAT)では、全てのユーザーにSMTPを許可することになります。

上記のようにPOP before SMTPは厳密に迷惑メールを防げるわけではありませんが、正規ユーザー以外の不正利用に対して一定の効果はありました。

SMTP-AUTH

POP before SMTPは既存のシステムを大きく変更する必要がなかったため、比較的早く普及しました。ただし、認証の仕組みはその場しのぎのようなものであり、SMTP-AUTHが普及するまでのつなぎとして考えられていました。

SMTP-AUTH(SMTP Authentication)は、SMTPに認証機能を追加したものでありPOPと同様に送信前にアカウント認証を必要とします。POP before SMTPと比較して、SMTP-AUTHはクライアントとサーバー、双方の対応が必要であったため普及が遅くなりました。

認証方法にはPLAIN、LOGIN、CRAM-MD5、DIGEST-MD5などがあります。どの認証に対応しているかはレンタルサーバー、そしてメールクライアントによって異なります。新しい認証方法としてはSCRAM(Salted Challenge Response Authentication Mechanism)があります。

  • PLAIN
    • 「UserID\0UserID\0Password」というフォーマットで平文(無変換)またはBASE64化したデータで認証します。暗号化されていないため、SSL/TLSとの組み合わが推奨されます。
  • LOGIN
    • PLAINと同様ですが、ユーザーIDとパスワードをBASE64化します。一度にユーザーIDとパスワードを送るのではなく、ユーザーIDとパスワードを別々に送る点が異なります。セキュリティ的にはPLAINと同様にSSL/TLSとの組み合わせが必要です。
  • CRAM-MD5
    • CRAM(Challenge-Response Authentication Mechanism/チャレンジレスポンス認証)と呼ばれる認証方法が利用されます。
    • クライアントはサーバーからBASE64化されたタイムスタンプを受け取り、それをデコードします。クライアントはデコードしたタイムスタンプをパスワードをキーとしてMD5(Message Digest Algorithm 5)と呼ばれるアルゴリズムによりハッシュ値(d41d8cd98f00b204e9800998ecf8427eのような)を求めます。ハッシュ値にユーザーIDを加えBASE64化してサーバーに送ります。サーバーはユーザーIDとパスワードを知っているので、送信したタイムスタンプのハッシュ値を求め、受信したハッシュ値と一致していたら認証を許可します。パスワードがネットワークに流れないため、PLAINやLOGINと比較すると安全性が高まります。
  • DIGEST-MD5
    • CRAM-MD5であっても任意のタイムスタンプを組み合わることで、辞書攻撃や総当り攻撃(ブルートフォースアタック)などが可能です。DIGEST-MD5はCRAM-MD5を拡張して、これらの攻撃への耐性を高めたものです。Realm(ドメイン)やURLの指定やHMAC(Keyed-Hashing for Message Authentication)による暗号化に対応しています。

インターネットプロバイダによる対策も

インターネットプロバイダによる迷惑メール対策「Outbound Port 25 Blocking(OP25B)」により、最近ではSMTPの標準ポート25番は利用できなくなっています。その代わりに587番ポート(サブミッションポート)が利用されるようになりました。ただし、認証なしでは25番ポートと変わらないためSMTP-AUTHとの利用が必要条件となっています。

レンタルサーバーでは?

最近では、POP bofore SMTPを廃止してSMTP-AUTHのみ対応しているレンタルサーバーも多くあります。逆に言えばPOP before SMTPのみ対応しているレンタルサーバーはセキュリティ意識が低いのかまたはシステムが古いのかもしれません。

BLOG

UPDATE