IPAの「安全なウェブサイトの作り方 改訂第4版」におけるCSRF対策の「擬似乱数の生成」について高木先生に聞いてみた

6
(・∀・)キムティ♪@荒浪一城 @kimtea

@HiromitsuTakagi IPAの安全なウェブサイトの作り方 改訂第4版を参照していますが、CSRF対策において、「生成するIDは安全な擬似乱数を用いて、第三者に予測困難なように生成する必要があります。」とありますが、この擬似乱数の生成はどのように生成すべきでしょうか?

2010-06-28 02:44:22
(・∀・)キムティ♪@荒浪一城 @kimtea

@HiromitsuTakagi 例えば、電子政府推奨暗号リストの擬似乱数生成系を用いれば良いでしょうか?

2010-06-28 02:47:29
Hiromitsu Takagi @HiromitsuTakagi

@kimtea Javaならば java.security.SecureRandom です。一部UNIXなら /dev/random (/dev/urandom)です。http://ja.wikipedia.org/wiki//dev/random

2010-06-28 02:48:23
(・∀・)キムティ♪@荒浪一城 @kimtea

@HiromitsuTakagi なるほど、大変参考になりました。ご教授頂きまして、ありがとうございます。

2010-06-28 02:50:48
Hiromitsu Takagi @HiromitsuTakagi

@kimtea Rubyには1.9以降と1.8.7以降でsecurerandomがあるようですね。PHPやPythonはそれがなくてやっかいになっていたかと。今でもなんだろうか。

2010-06-28 03:00:49
(・∀・)キムティ♪@荒浪一城 @kimtea

Java 暗号化アーキテクチャー(JCA) リファレンスガイド Java Platform Standard Edition 6 http://bit.ly/anKuiE

2010-06-28 03:01:46
どみにをん525 @Dominion525

@kimtea mtでいいじゃん、とか思っちゃう思考停止脳です>< [3gs]

2010-06-28 03:02:16
(・∀・)キムティ♪@荒浪一城 @kimtea

@HiromitsuTakagi 手元にいくつか参考文献がありますので、少し調べてみます。

2010-06-28 03:03:16
(・∀・)キムティ♪@荒浪一城 @kimtea

@HiromitsuTakagi Pythonのライブラリには、擬似乱数を生成する「random」がありますが・・・ Python ライブラリリファレンス 6.4 random -- 擬似乱数を生成する http://bit.ly/9op3Zt

2010-06-28 03:15:20
(・∀・)キムティ♪@荒浪一城 @kimtea

mtって何? QT @Dominion525: @kimtea mtでいいじゃん、とか思っちゃう思考停止脳です>< [3gs]

2010-06-28 03:15:43
どみにをん525 @Dominion525

あー暗号で使わないように書いてある >< >暗号論的乱数ではない。 (snip) 暗号用途で利用するには Blum-Blum-Shub のような非可逆なアルゴリズムをMTの出力に適用すべきである。

2010-06-28 03:18:22
(・∀・)キムティ♪@荒浪一城 @kimtea

PHPは、そもそもセキュアな状態を維持するメンテナンスコストが高くつくので採用すること自体、避けています。

2010-06-28 03:18:47
(・∀・)キムティ♪@荒浪一城 @kimtea

JavaのSecureRandom クラスは、強力な暗号化による乱数を生成する点が Random クラスとは異なるそうです QT @Dominion525: @kimtea Mersenne twister http://bit.ly/aaIYUt

2010-06-28 03:21:43
(・∀・)キムティ♪@荒浪一城 @kimtea

そもそも、CSRF対策において、第三者に推測できないことを保証できる、強力な擬似乱数生成クラスなりを、その言語自体が備え実装しているのか、IPAなどが検証すべきだと思う。

2010-06-28 03:25:39
どみにをん525 @Dominion525

@kimtea みたいですね。暗号論的疑似乱数生成器というものがあるようで。/dev/urandom とか。

2010-06-28 03:25:58
きしだൠ(K1S) @kis

@kimtea そのかわり、再現性がないよ > SecureRandom

2010-06-28 03:26:17
(・∀・)キムティ♪@荒浪一城 @kimtea

こうしたセキュリティー対策は、「予防保全」の考えを取り入れて、率先して取り組むべきで、そうした検証や啓蒙活動に国民の税金たる予算を使って欲しいと思った次第。

2010-06-28 03:28:42
(・∀・)キムティ♪@荒浪一城 @kimtea

さっき高木先生が言ってたよw QT @Dominion525: @kimtea みたいですね。暗号論的疑似乱数生成器というものがあるようで。/dev/urandom とか。

2010-06-28 03:32:39
Hiromitsu Takagi @HiromitsuTakagi

@kimtea それはsecureじゃないですよ。「暗号化の目的には全く向いていません。」と書いてありますね。まとめ→ http://www.st.ryukoku.ac.jp/~kjm/security/memo/2008/09.html#20080924__random

2010-06-28 03:33:19
(・∀・)キムティ♪@荒浪一城 @kimtea

@HiromitsuTakagi 確かにリファレンスには、はっきりと「この乱数生成器は全ての目的に合致しているわけではなく、 暗号化の目的には全く向いていません。」と記述されていますね。まとめ記事もはてブしました。Pythonは、利用経験がありませんが、大変勉強になります。

2010-06-28 03:52:06