From: "NAKAMURA, Hiroshi" Date: 2007-06-13T12:40:25+09:00 Subject: [ruby-dev:30966] Re: secrand.rb -----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-----