[mew-dist 27581] Re: IMAP/TLS
Kazu Yamamoto ( 山本和彦 )
kazu at example.com
2007年 2月 27日 (火) 15:37:07 JST
> > うーん。サーバ側が意味不明の挙動を示しているような感じです。
>
> むむ〜やはりそうですか....
イマイチ釈然としませんが、今まで分かったことを書いておきます。
世の中には、SSL 3.0、TLS 1.0、TLS 1.1 があります。ややこしいのですが、
こうなっています。
プロトコル stunnel
中の値 での名前 仕様書
SSL 3.0 3.0 SSLv3 http://wp.netscape.com/eng/ssl3/draft302.txt
TLS 1.0 3.1 TLSv1 RFC2246
TLS 1.1 3.2 未対応 RFC4346
stunnel は、TLS 1.1 に未対応っぽいので、今回の問題は、SSL 3.0 と TLS
1.0 の狭間に存在します。
TLS の核心は SSL と同じです。ただ、最初にアプリケーション・プロトコル
で、クライアントが START TLS コマンドを送るところが異なります。
なので、TLS = SSL + α だと考えていいです。
長所短所は、こうなります。
ポート番号 アプリケーションプロトコルの拡張
SSL 別途必要 不用
TLS 同じでよい 必要
stunnel で、アプリケーションプロトコルの拡張を喋らせるオプションは、
protocol です。このオプションを指定すれば、TLS であるのは明白なので、自
動的に TLS 1.0 {3.1} を選ぶべきです。
しかしながら、stunnel のコードを見たところ、sslVersion=TLSv1 としないと
TLS 1.0 {3.1} を選ばないようです。デフォルトは SSLv3_client_method で、
TLSv1 とすると TLSv1_client_method が選ばれています。
SSL も TLS も核心は同じなので、どうでもいいような気もしますが、これらの
openssl のコードを読んだところ、なんと両者の違いは、ほぼバージョンの
チェックだけでした。(3.0 なのか、3.1 なのか調べている。)
僕は、SMTP/TLS + IMAP/SSL で暮らしています。sslVersion=TLSv1 を指定しな
いでも、SMTP/TLS が成功するのは、なぜだか分かりません。
sslVersion=TLSv1 を指定してもうまくいきました。
うーむ。
とりあえず、戸田さんのパッチは害がないようなので、当てておきました。
時間があれば、stunnel の作者に、sslVersion は明示的に指定する必要がある
のか、protocol が指定されていれば TLSv1 を自動的に選ぶべきではないか、
聞いて頂けると嬉しいです。
P.S.
戸田さんの環境で、sslVersion=TLSv1 を指定すると、
ログ中の SSLv3 は TLSv1 に置き換わりますか?
--かず
Mew-dist メーリングリストの案内