STARTTLSとSMTP認証の併用についてNo.21609
jfut さん 05/02/05 02:21
 
初めましてjfutと申します。
鶴亀メールでSMTPサーバにSTARTTLSとSMTP認証を併用することは出来ませんでしょう
か?
試してみたところ、送信エラーとなってしまいました。

試してみた設定と環境は次の通りです。
鶴亀メール Version 4.07
SMTPポート番号 25
[詳細] -> [SMTP over SSL]チェック
[詳細] -> [SSL 2.0で接続]未チェック
[詳細] -> [STARTTLS]チェック
[詳細] -> [SSL接続で、証明書を検証しない]チェック
[詳細] -> [送信用のアカウント指定]チェックとアカウント設定

詳細エラーログは、次の通りです。

****送信(1通):アカウント名
I サーバーを検索中 - メールサーバのFQDN
I 接続中 - ***.***.***.***
I 接続完了
R 220 メールサーバのFQDN ESMTP
S EHLO メールサーバのFQDN
R 250-メールサーバのFQDN
R 250-PIPELINING
R 250-SIZE 100000000
R 250-DATAZ
R 250-STARTTLS
R 250 8BITMIME
S STARTTLS
R 220 ready for tls
I SSL初期化中
I 暗号化開始 (SSL2.0/RC4/128bit)
S MAIL From:<***@*****.**>
R 250 ok
S RCPT To: <***@*****.**.**>
R 553 sorry, relaying denied from your location [***.***.***.***] (#5.7.1)
E 宛先アドレスが拒否されました。(553 sorry, relaying denied from your locat
ion [***.***.***.***] (#5.7.1)

S QUIT
R 221 メールサーバのFQDN Goodbye.

STARTTLSコマンド発行後、すぐにメールを送信しようとしているように見えます。他
のOutlook・Thunderbird・Beckyでは、STARTTLSコマンド発行後、通常のEHLOを発行
し、その結果にAUTH LOGIN PLAINがあれば、SMTP認証も行ってからMAIL送信処理を開
始しているようですのでその辺りが原因かと思います。これに対応する設定はありま
すでしょうか?
どうぞよろしくお願いいたします。

[ ]
RE:21609 STARTTLSとSMTP認証の併用についNo.21621
秀まるお2 さん 05/02/07 10:27
 
 STARTTLSとSMTP認証の両方がONでも普通はちゃんと動作するはずです。今はも
う解約してしまったのでなんですが、以前は、be to mail
http://www.be.to/)って所でちゃんと動作してました。

 やりとり記録を見た所にそこのSMTPサーバーは、いわゆるSMTP認証に対応して
ないようです。普通なら、EHLOコマンドの応答の中に、

R 250-AUTH LOGIN PLAIN CRAM-MD5 DIGEST-MD5
R 250-AUTH=LOGIN PLAIN CRAM-MD5 DIGEST-MD5

 みたいなのが入ってないといけないです。

 たしかにSMTP認証(SMTH authentication)に対応してるかどうか確認してみ
て欲しいです。

[ ]
RE:21621 STARTTLSとSMTP認証の併用についNo.21623
jfut さん 05/02/07 14:23
 
お返事ありがとうございます。
使用しているメールサーバをBeckyで利用した時のログを示します。

220 メールサーバのFQDN ESMTP
EHLO メールサーバのFQDN
250-メールサーバのFQDN
250-PIPELINING
250-SIZE 100000000
250-DATAZ
250-STARTTLS
250 8BITMIME
STARTTLS
220 ready for tls
EHLO メールサーバのFQDN
250-メールサーバのFQDN
250-PIPELINING
250-SIZE 100000000
250-DATAZ
250-AUTH LOGIN PLAIN
250 8BITMIME
AUTH LOGIN
334 XXXXXXXXXXX
235 nice to meet you
RSET
250 flushed
MAIL FROM:<***@*****.**>
250 ok
RCPT TO:<***@*****.**.**>
250 ok
DATA
354 go ahead punk, make my day
.
250 ok 1107751933 qp 2670 by メールサーバのFQDN
QUIT
221 メールサーバのFQDN Goodbye.

このログを見ていただくと判るのですが、SMTP認証を要求する
250-AUTH LOGIN PLAIN
は、STARTTLSでのSSLコネクションが成立してから表示されます。
というのは、最初からSMTP認証を受け付けるメールサーバですと、STARTTLSを
行わずともSMTP認証を実行できることになってしまうからです。
これでは、暗号化されないままでもSMTP認証を行えることになり、STARTTLSに
対応していても、何時の間にかSTARTTLSを利用していないユーザが現れてしまい、
確実な安全性を確保できません。ですので、STARTTLSを確実に行わせるために、
STARTTLS実行後に、もう一度EHLOコマンドが発行された時にSMTP認証を要求するのが
正しい動作だと思います。

紹介して頂いたbe to mailさんでアカウントを適当に設定して試してみたところ
次のようになりました。

# 鶴亀メール
****送信(1通):アカウント名
I サーバーを検索中 - post1.infonia.net
I 接続中 - 211.13.218.225
I 接続完了
R 220 post1.infonia.net ESMTP Postfix
S EHLO post1.infonia.net
R 250-post1.infonia.net
R 250-PIPELINING
R 250-SIZE
R 250-VRFY
R 250-ETRN
R 250-STARTTLS
R 250-AUTH LOGIN PLAIN CRAM-MD5 DIGEST-MD5
R 250-AUTH=LOGIN PLAIN CRAM-MD5 DIGEST-MD5
R 250-XVERP
R 250 8BITMIME
S STARTTLS
R 220 Ready to start TLS
I SSL初期化中
I 暗号化開始 (SSL2.0/RC4/128bit)
S AUTH PLAIN ****
E EHLOコマンドで、サーバーがエラーを返しました。エラー内容 = 535 Error: auth
entication failed

# Becky
220 post1.infonia.net ESMTP Postfix
EHLO post1.infonia.net
250-post1.infonia.net
250-PIPELINING
250-SIZE
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH LOGIN PLAIN CRAM-MD5 DIGEST-MD5
250-AUTH=LOGIN PLAIN CRAM-MD5 DIGEST-MD5
250-XVERP
250 8BITMIME
STARTTLS
220 Ready to start TLS
EHLO post1.infonia.net
250-post1.infonia.net
250-PIPELINING
250-SIZE
250-VRFY
250-ETRN
250-AUTH LOGIN PLAIN CRAM-MD5 DIGEST-MD5
250-AUTH=LOGIN PLAIN CRAM-MD5 DIGEST-MD5
250-XVERP
250 8BITMIME
AUTH LOGIN
334 XXXXXXXXXXX
535 Error: authentication failed
RSET
250 Ok
MAIL FROM:<***@*****.**>
250 Ok
RCPT TO:<***@*****.**.**>
554 <***@*****.**.**>: Relay access denied
QUIT
221 Bye

恐らく鶴亀メールでは、1回目のEHLOの応答を見て動作を決めているように
思われますが、STARTTLSでのSSLコネクション成立後、もう一度EHLOを発行
して動作を動的に決められるようにして頂ければ、STARTTLSを確実に要求する
メールサーバでもSMTP認証が利用できるようになると思います。
よろしくお願いいたします。

[ ]
RE:21623 STARTTLSとSMTP認証の併用についNo.21624
たまちゃん3 さん 05/02/07 14:44
 
事実だけを述べます。

> というのは、最初からSMTP認証を受け付けるメールサーバですと、STARTTLSを
> 行わずともSMTP認証を実行できることになってしまうからです。
> これでは、暗号化されないままでもSMTP認証を行えることになり

CRAM-MD5,DIGEST-MD5,Kerberos 認証の場合はこの限りではありません。

> STARTTLS実行後に、もう一度EHLOコマンドが発行された時にSMTP認証を要求するのが
> 正しい動作だと思います。

MTA 側の実装によります。

> STARTTLSを確実に要求する
> メールサーバでもSMTP認証が利用できるようになると思います。

鶴亀で jfut さんと同じ条件で STARTTLS + SMTP 認証が複数の環境で問題なく
行えました。ただし jfut さんの環境でうまくいっていないというご指摘は否定
しません。

[ ]
RE:21623 STARTTLSとSMTP認証の併用についNo.21625
秀まるお2 さん 05/02/07 14:45
 
 Becky!さんはSTARTTLSした後に再度EHLOからやり直すんですね。僕はSTARTTLS
した後にはEHLOコマンドを出すことしらしてませんでした。

 では、STARTTLSの後にはEHLOからやり直すように直してみます。

[ ]
RE:21624 STARTTLSとSMTP認証の併用についNo.21626
jfut さん 05/02/07 14:58
 
たまちゃん3 さん

> CRAM-MD5,DIGEST-MD5,Kerberos 認証の場合はこの限りではありません。

はい、おっしゃる通り、これらの環境ではそれぞれの暗号方式により暗号化可能です。
しかし、確実な安全性を重視した場合、ユーザの不注意により認証方式にLOGIN PLAI
Nが設定された場合の確実な安全性は保証されないので、最初からSMTP認証を受け付
けるメールサーバが良いサーバとはあまり思えません。
また、CRAM-MD5,DIGEST-MD5の場合、サーバ側に平文パスワードを保持する必要があ
るので、これも良いとは思えません。

> 鶴亀で jfut さんと同じ条件で STARTTLS + SMTP 認証が複数の環境で問題なく
> 行えました。ただし jfut さんの環境でうまくいっていないというご指摘は否定
> しません。

確認ありがとうございます。恐らくお使いのメールサーバがSTARTTLSなしでもSMTP認
証を受け付ける環境になっているからだと思います。

[ ]
RE:21625 STARTTLSとSMTP認証の併用についNo.21627
jfut さん 05/02/07 15:01
 
早速のお返事ありがとうございます。

> では、STARTTLSの後にはEHLOからやり直すように直してみます。

そうして頂けると大変助かります。
よろしくお願いいたします。

[ ]
RE:21626 STARTTLSとSMTP認証の併用についNo.21628
たまちゃん3 さん 05/02/07 15:31
 
蛇足です。

> STARTTLSなしでもSMTP認証を受け付ける環境になっているからだと思います。

STARTTLS に対応していないメールソフトがあるので,この仕様は問題ありま
せん。鶴亀で OK だと書いたケースでは STARTTLS による通信が成功した後で
きちんと SMTP認証の段階に進みました(順番が逆ではありません)。

鍵は最初に EHLO コマンドを発したときのサーバ側の応答にあります。MTA
依存だといったのはその点です。

修正していただいて問題はなくなると思いますし,最初の EHLO コマンドで
STARTTLS も AUTH コマンドも一度に吐くサーバでもおそらく問題はでない
でしょう。

[ ]
RE:21628 STARTTLSとSMTP認証の併用についNo.21629
jfut さん 05/02/07 19:01
 
> STARTTLS に対応していないメールソフトがあるので,この仕様は問題ありま
> せん。

はい、MTA側のこの仕様は、仕様として問題ないのは理解しております。
今回問題となっているメールサーバでは、SSLによる確実な暗号化を期待するために、
設定でSTARTTLS後でないとSMTP認証を受け付けないようにしてあります。

> 鶴亀で OK だと書いたケースでは STARTTLS による通信が成功した後で
> きちんと SMTP認証の段階に進みました(順番が逆ではありません)。

be to mailさんのメールサーバで試した時に鶴亀メールでは、
1回目のEHLOの応答を見て動作を決めるようになっているのが判りました。
ですので、最初のEHLOでSTARTTLSとSMTP認証を受け付けるメールサーバであれば、
おっしゃる通り現時点の鶴亀メールの実装でまったく問題はないと思います。
送信ログからも正常にSTARTTLSの後にSMTP認証を試みているのが判りました。

修正していただいた後は、最初からSMTP認証を受け付けるメールサーバでも、
確実な安全性を求めて最初は受け付けないメールサーバでも、STARTTLSの後に
SMTP認証が行えるようになり、より完全にSTARTTLSに対応するようになると
思い期待しております。

[ ]