-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Tanaka Akira wrote:
> securerandom.rb の説明に「cookie や nonce などに適した」と書
> きました。
> 
>   This library is a interface for secure random number generator which is
>   suitable for HTTP cookies, nonces, etc.
> 
> 最初の疑問は、nonce についてその説明はあっているのか、という
> ことです。

まず読んだ感じ、etc.と入っていることから、それほど厳密に述べようとしてい
るものではないという印象を受けました。また、「for HTTP cookies」も同様で
す。「for generating session key in HTTP cookies」のほうがいいかも?
厳密さは置くとすれば、nonceについても、nonceの生成方法の候補として挙げる
のに問題はないと思います。

確かにnonceをreplay attackから守るためには、他にいろいろ小技が要ります
が、「statelessにnonceを生成する方法の1つとして適している」は真です。
これに対して現行のrandはseedがglobalに1つしかなく、「起動するたびに同じ
値となり、nonce要件を満たさない場合がある」という問題がある。「stateless
にnonceを生成する方法の1つ」として、SecureRandomはこれよりはるかによいこ
とから、ドキュメントに書くのもよいことだと思います。

> 次の疑問は net/imap.rb の cnonce 生成や、
> webrick/httpauth/digestauth.rb の opaque 生成を
> securerandom.rb を使用するような変更を提案するのは適切なのか、
> ということです。
> 
> で、何度かメールを読んで考えて、nonce にはあんまり関係ないか
> なぁ、と感じています。

nonce生成にrandを使っているものがあれば、securerandom.rbに置き換えたほう
がよいと思います。で、見たところ、net/imap.rbはcnonce生成に時刻とpidを
使っているので対象外ですね。

webrick/httpauth/digestauth.rbのopaqueはnonceじゃないですが、セッション
キー生成だと思うので、securerandom.rbのほうがいいと思います。というよ
り、WEBrick::Utils.random_stringのほうの置き換えかな。

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (Cygwin)

iQEVAwUBRm9mwh9L2jg5EEGlAQIiowf9FPeUL8MOm+LSo/18Bsd6RiT3bT4tAZQs
NpINMPOZszKyM5V+VGIhU4eY12vaueP7jfJi0cLFcGRexGrflh73GaT1REwKnGyo
9idpSDdsKG0rmFdw4iAVqIK+OVS58EYnPjmyuW2Ssy0It+2gQ/kPzWM2L90n/H4r
cYsdzsZYdRC45lUl8PeK1aLAypt8Ee4iZkQGkiwK5QNjCOdWSaN0nmxVWCEWZ3g9
icXlY7Yj3PnXelXd1XC1DInZ0I7PDuKVHW/rBeU7IKAPwfjju6uYQQtnCo73dT4K
l5RfxmE/ivuJg+9YCyuyXwos+S6KHG+q4GXNPUqzCnT+n+fngNG1Yw==
=txJp
-----END PGP SIGNATURE-----