[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 メーリングリストの案内