ESMTPの認証とか [PC]
自社製品にて自作MUAが組み込んであるのだけど、随分前に更新していらい全くノータッチなので時代遅れになって微妙に使えなくなっている罠。作ったときにはSMTP認証(ESMTP)とか普及してなかったよ...orz。
んで、ESMTPへの対応依頼があったので調べてみた。後日の為に軽く仕様をまとめておくことにする。
@ITが詳しいな。
「公開と隠ぺいのジレンマ「SMTP~後編」」
まず使われるポートはSMTPの25とは異なり 587 を使うらしい。
んでSMTPで接続後に最初に送信する HELO が EHLO になります。
EHLOの応答は以降はこんな感じになります。(Outlook ExpressでAUTH LOGINした場合)
「250-AUTH XXXX」の応答で接続したSMTPサーバがサポートしているSMTP認証の方式が分かります。
SMTP認証の種類としては
・AUTH CRAM-MD5
・AUTH PLAIN
・AUTH LOGIN
などがあります。
AUTH CRAM-MD5はメールサーバに対して「AUTH CRAM-MD5」を送信するとチャレンジ文字列が返信されるので、「パスワード+" "+チャレンジ文字列」をMD5して、「ユーザー名+MD5した結果」をBase64して送ります。
こいつだけが明示的にパスワードを暗号化して送信します。
AUTH PLAINはメールサーバに対して「ユーザー名+NULL+ユーザー名+NULL+パスワード」をBase64して「AUTH PLAIN Base64した値」送ります。
AUTH LOGINの仕様は共通化されてないようですが、メールサーバに対して「AUTH LOGIN」を送信した後にBase64した「ユーザー名」→Base64した「パスワード」を順に送ります。
仕様が共通化されていないにも関わらず、Outlook Expressの標準なので一番普及している罠。
いっぱいあって面倒ですなぁ...orz。
というかSMTP認証もそうだけど、メール本文は暗号化されないので根本的にはTLSにも対応しなくちゃいかんことにならんのか?
SSLだけは勘弁してもらいたい脳。
んで、ESMTPへの対応依頼があったので調べてみた。後日の為に軽く仕様をまとめておくことにする。
@ITが詳しいな。
「公開と隠ぺいのジレンマ「SMTP~後編」」
まず使われるポートはSMTPの25とは異なり 587 を使うらしい。
んでSMTPで接続後に最初に送信する HELO が EHLO になります。
EHLOの応答は以降はこんな感じになります。(Outlook ExpressでAUTH LOGINした場合)
EHLO 192.168.11.100 250-XXX.XXX.XXX.ne.jp, pleased to meet you 250-ENHANCEDSTATUSCODES 250-PIPELINING 250-8BITMIME 250-SIZE 10240000 250-DSN 250-AUTH LOGIN PLAIN 250-STARTTLS 250-DELIVERBY 250 HELP AUTH LOGIN 334 XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX 334 XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX 235 2.0.0 OK Authenticated MAIL FROM:
「250-AUTH XXXX」の応答で接続したSMTPサーバがサポートしているSMTP認証の方式が分かります。
SMTP認証の種類としては
・AUTH CRAM-MD5
・AUTH PLAIN
・AUTH LOGIN
などがあります。
AUTH CRAM-MD5はメールサーバに対して「AUTH CRAM-MD5」を送信するとチャレンジ文字列が返信されるので、「パスワード+" "+チャレンジ文字列」をMD5して、「ユーザー名+MD5した結果」をBase64して送ります。
こいつだけが明示的にパスワードを暗号化して送信します。
AUTH PLAINはメールサーバに対して「ユーザー名+NULL+ユーザー名+NULL+パスワード」をBase64して「AUTH PLAIN Base64した値」送ります。
AUTH LOGINの仕様は共通化されてないようですが、メールサーバに対して「AUTH LOGIN」を送信した後にBase64した「ユーザー名」→Base64した「パスワード」を順に送ります。
仕様が共通化されていないにも関わらず、Outlook Expressの標準なので一番普及している罠。
いっぱいあって面倒ですなぁ...orz。
というかSMTP認証もそうだけど、メール本文は暗号化されないので根本的にはTLSにも対応しなくちゃいかんことにならんのか?
SSLだけは勘弁してもらいたい脳。
コメント 0