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

本筋に関しては別の人のコメントを待ちます(なければないでOK)。脇道だけ。

Tanaka Akira wrote:
>>> 種が1つじゃ困る、というのはよくわかりません。シミュレーショ
>>> ン用の疑似乱数ならそうでしょうが、cookie に使う secure
>>> random number ならひとつあればいいような。
>> cookieに使うsecure RNGについては、ひとつあればよいと思います(*)。それ以
>> 外に、randとsrandに依存しているライブラリが複数あって、それを混ぜて使う
>> アプリケーションの場合、あるライブラリが呼んだsrandが他のライブラリの前
>> 提を壊すことはないか、と。例えば私がsoap4rの中でこっそりsrand呼ぶと、一
>> 緒に使われて発狂するライブラリとか、ないかな。
> 
> rand を自分で占有するのはあからさまに無理っぽいので、そうし
> たければ自前でやるのではないかという気がします。
> 
> そういう pseudo random number generator のクラスを最初から
> ruby が提供するのはありうると思いますが、

提供したほうがいいと思ってます。お前がやれって?

もちろんわかってる人は自前で作るでしょうが、例えば現状のcgi/session.rbで
もやってなかったわけで。Railsのどこぞのプラグインがsrandしたおかげで、認
証機構が役立たなくなってたとか、いつか起こるんじゃないですかね。

簡単に使える代替案があれば、「ライブラリ作者はrandは危険だから使うな」と
主張し易くなる。

> # nonce って secure random でないとよろしくないですよね?

厳密に言えば、onceであることがその存在意義なので、secure randomである必
要性はありません。例えば0からincrementalでもOKです。で、Rubyでは、randで
生成しちゃ駄目です。先の話のように、誰かが意図的に、srand(1)とか埋め込む
かもしれない(毎回同じ値になる可能性があり、onceじゃなくなる)。

まぁ、開発者の誰もが厳密に考えるわけじゃないので、「nonceには
SecureRandom使っとけ」というのはいいかもしれません。

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

iQEVAwUBRmqnOh9L2jg5EEGlAQKyFgf+PH47+MipY9oTmMc1RwQr/c7QnzG5I8Bo
6EtZCY/H25Err8uLbS9xosqaCuIwt1D/BFkyE57sjJP9q+5gqZUFe6+H4xS6htLA
+TMkP3bMDXmG5mKj/6j4f3HKbQFQ6bGAFs53qFX+ZQW6rWZ0okrs0LVurzUiJpZC
moBWKUon44bBeO62zAGssUoW6s1N0+ZzKMnMFY56f9Xrlh17fejE3UG9vMYHRR/o
58xgMRTesonIsftk04FpLbR3POzuBxR0bigJy5x7rhMAQwzPv82oYE7viwhs/+FB
xwktIkm0ZAdl4BGlZ017USVFrApfe1BoJVUUGhtTRrMbBPS6Pgcsig==
=o4LL
-----END PGP SIGNATURE-----