snbhsmt_log

ネットワークとコンピュータ、その他いろいろ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

SMTP Authentication とその PLAIN 認証

SMTP Authentication についてと、 実際に SMTP をしゃべって PLAIN 認証してみた。

SMTP Authentication は SMTP にユーザ認証の仕組みを追加する拡張仕様で、 RFC2554 により規定されている。 実際の認証機構には SASL が用いられる。

RFC2554 : SMTP Service Extension for Authentication
http://ftp.riken.jp/pub/internet-doc/ietf/rfc/rfc2554.txt

SMTP Auth における SMTP への拡張では、 まず EHLO に対して 250 AUTH mechanism... が返される。 mechanism... にはそのサーバでサポートする SASL 認証方式が列挙される。

それに対し、クライアントから AUTH コマンドにて認証する。 1 行ではなく複数のやり取りに分かれても良い。

AUTH <mechanism> <argument>

認証に成功したらクライアントに 235 が返される。

実際にローカルに SMTP Auth に対応した SMTP サーバを立てて PLAIN 認証してみる。 PLAIN 認証では mechanism が PLAIN、argument が "ユーザID\0ユーザID\0パスワード" という文字列を Base64 エンコードした物になる。 以下はユーザ名 user、パスワード pass の場合の argument 文字列を作成する Perl スクリプト。

$ perl -MMIME::Base64 -e 'print encode_base64("user\0user\0pass");'
dXNlcgB1c2VyAHBhc3M=

telnet で MTA に接続。

sturgeon$ telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 sturgeon.localdomain ESMTP Postfix

EHLO を送信。 250-AUTH 行から LOGIN, PLAIN, DIGEST-MD5, CRAM-MD5 認証に対応している事がわかる

ehlo sturgeon.localdomain
250-sturgeon.localdomain
250-PIPELINING
250-SIZE 10240000
250-ETRN
250-AUTH LOGIN PLAIN DIGEST-MD5 CRAM-MD5
250 8BITMIME

PLAIN 認証する。 ここでは AUTH PLAIN で一度送信し、334 の受信に対して先程の Perl スクリプトで求めた文字列を送信している。 235 の受信で認証に成功した事がわかる。

auth plain
334
dXNlcgB1c2VyAHBhc3M=
235 Authentication successful
quit
221 Bye
Connection closed by foreign host.

AUTH を 1 行で送信した場合は以下。

auth plain dXNlcgB1c2VyAHBhc3M=
235 Authentication successful
スポンサーサイト

« Fedora 8 レスキューCD カーネルのチェックサム|Top|vim の文字コードに関する設定 »

コメント

コメントの投稿

管理者にだけ表示を許可する

トラックバック

http://snbhsmt.blog110.fc2.com/tb.php/54-f4ab355b

Top

HOME

snbhsmt

Author:snbhsmt
Google Profiles

http://www.ksky.ne.jp/~snbhsmt/

全ての記事を表示する

この人とブロともになる

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。