とみたです。

On Fri, 17 Dec 2004 10:55:36 +0900
Yukihiro Matsumoto <matz / ruby-lang.org> wrote:

> |1.8.1 の cgi/session.rb で、Session::create_new_id で 
> |md5.hexdigest[0,16] としていて、MD5 のハッシュ値を半分にして 
> |session_id を作成していますが、これでも一意性は保たれているのでしょうか。

> MD5はハッシュですからもともと一意性は保たれていません。

ああ、そうです。すいません。

> 「十分に安全か」というのが問いだと思いますが、「おそらく」と
> いうのが私の答えです。いや、実際検証したわけではないんですが。

わざわざ半分にしている意図はなんだったんでしょうか。

> |で、1.8.2 では、それをさらに Digest::MD5.hexdigest(id)[0,16] で半分に
> |して、ファイル名を生成していますが、やはり一意性は保たれるのでしょうか。

> 上と同じです。

セッションIDを作るための元々の値からすると、情報量が 1/4 になっている
ような気がして、重複する可能性が高くなってるような気がしたのですが、杞
憂でしょうか。

# 「ような気がする」ばかり… (--;

> |あと、1.8.2 の FileStore で prefix のデフォルト値が 1.8.1 と変わってま
> |す(1.8.1 では '' で、1.8.2 では 'cgi_sid_')。普段はファイル名は意識す
> |ることはないと思うのですが、期限切れのファイルを消すような処理で、互換
> |性の問題があるような気がします。

> 互換性の問題はありますね。これもセキュリティ対策の一環ですか
> ら妥協していただくようにお願いするしかないです。

すいません、prefix のデフォルトが '' であることに、セキュリティ的な問
題があるというのが良くわかってないです。どっかで議論されてましたでしょ
うか。

-- 
とみたまさひろ <tommy / tmtm.org>