From: Tanaka Akira Date: 2007-06-09T08:16:33+09:00 Subject: [ruby-dev:30940] Re: secrand.rb In article <4669DAB0.4050705@sarion.co.jp>, "NAKAMURA, Hiroshi" writes: > というわけで、最初は、srandom.rbはどうかと提案しようと思ったんですが、 > この場合関数名はsrandom()で、それはsrand()と混同するので駄目だ、と。 > 関数形式がなくなった今、srandom.rbはどうですかね? SRandom.random_bytes。 secure という単語がわかるのは重要なんじゃないかなぁ。 >> 種が1つじゃ困る、というのはよくわかりません。シミュレーショ >> ン用の疑似乱数ならそうでしょうが、cookie に使う secure >> random number ならひとつあればいいような。 > > cookieに使うsecure RNGについては、ひとつあればよいと思います(*)。それ以 > 外に、randとsrandに依存しているライブラリが複数あって、それを混ぜて使う > アプリケーションの場合、あるライブラリが呼んだsrandが他のライブラリの前 > 提を壊すことはないか、と。例えば私がsoap4rの中でこっそりsrand呼ぶと、一 > 緒に使われて発狂するライブラリとか、ないかな。 rand を自分で占有するのはあからさまに無理っぽいので、そうし たければ自前でやるのではないかという気がします。 そういう pseudo random number generator のクラスを最初から ruby が提供するのはありうると思いますが、secure random number generator はそれとは別の話というわけで。 > (*) 今回の修正により、種とは無関係になったわけですが。これ1.8にも入れた > ほうがいいと思うなー > ブランチメンテナ えぇ、議論がおさまったら。 > そうですね。1.9でもしrubygemsが入るなら、フィーチャー利用宣言(っていう > かrequire)をhookできる仕組みを入れて、そこで、存在しないファイル名の指 > 定を掴まえて書き換えられればいいのかな。 そういう機能が入らない可能性もあるしなぁ。 > 最初に上記の論拠も考えたんですが、cookieの生成しか考えないのであれば、そ > もそもsecrand.rbなんて追加せずに、cgi/session.rbに追加すりゃいいですよ > ね。そうしなかったってことは、汎用の(cookieの生成以外でも使われる) > secure RNGが欲しい、という経緯だろうと思いました(それで最初に経緯を聞き > ました)。 cgi/session.rb 以外で cookie を作ることもありますよね。 たとえば web application framework は (web application の数 よりはずいぶんと少ないでしょうが) たくさんあるわけで、その共 通部分はぜひ支援すべきだと思います。 あと、きっかけとして最近手元で digest auth の client を書い て cnonce の生成に欲しかったということもありまして。 あと、webrick の digest auth の opaque とか、imap の cnonce とか、secure random のほうがよろしかろうというのもありますし。 # nonce って secure random でないとよろしくないですよね? > だとすれば、RNGとしてrand/srandを使っていたほとんどの層に、スムーズに新 > RNGに移行してほしいわけで、やはり短い名称のほうがいいと思います。 > > というわけで、今のところ「固有名詞でもない略称がちょっとなー」以上は思い > ついてません。# なので気にせずどうぞ なにか意見があるひとは他にいませんかね? -- [田中 哲][たなか あきら][Tanaka Akira]