我最近遇到了一个错误,当我的 linux 服务器上的熵变得太低并且 /dev/urandom 的读取返回的字节数少于预期的字节数时,我没有正确处理。
如何通过测试重新创建它?有没有办法降低系统的熵或可靠地清空 /dev/urandom?
我希望能够进行回归测试来验证我的修复。我正在使用 Ubuntu 12.04。
根据random(4)手册页,
read from the /dev/urandom device will not block
如果你想让它阻塞,你应该从/dev/random
(没有任何)读取很多字节。u
(有多少取决于硬件和系统)。
所以你不能“exaust” /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
which 确实可以用尽,通过阻塞。但是你不应该从中读取超过 256 位。