3

最近、Linux サーバーのエントロピーが低くなりすぎて、/dev/urandom の読み取りが期待されるバイト数よりも少ない値を返したときに、適切に処理できないというバグがありました。

これをテストで再現するにはどうすればよいですか? システムのエントロピーを下げる方法や、確実に /dev/urandom を空にする方法はありますか?

修正を検証する回帰テストを実行できるようにしたいと考えています。Ubuntu 12.04 を使用しています。

4

1 に答える 1

8

random(4)のマニュアルページによると、

read from the /dev/urandom device will not block

ブロックしたい場合は、 /dev/random(なしで)から多くのバイトを読み取る必要があります。u(ハードウェアとシステムに依存する数)。

/dev/urandomだから、あなたは「吐き出す」ことができません。

 A read from the /dev/urandom device will not block waiting for 
 more entropy. As a result, if there is not sufficient entropy in 
 the entropy pool, the returned values are theoretically vulnerable 
 to a cryptographic attack on the algorithms used by the driver.

/dev/randomブロッキングすることで、実際に使い果たされる可能性のあるものを使用する必要があると思います。ただし、そこから約256ビットを超えて読み取ることはできません。

于 2012-10-22T18:27:55.793 に答える