delphij's Chaos

选择chaos这个词是因为~~实在很难找到一个更合适的词来形容这儿了……

17 Feb 2015

FreeBSD -CURRENT随机数发生器问题

今天 John-Mark Gurney 修正了一个影响过去4个月左右的 FreeBSD -CURRENT 的随机数发生器问题,具体受影响的版本是 r273872(引入问题)到 r278907 (修正)。

由于问题只影响 -CURRENT,因此我们不会就此发表安全公告。

问题的影响:在对随机数发生器 (/dev/random)进行重构的过程中,原先为内核 arc4random(9) API 进行初始化(seeding)的部分没有正确地在新的随机数处理器上线(randomdev_init_reader)时进行配置,导致内核一直使用 dummy RNG 来生成 arc4random(9) 的种子。由于 dummy RNG 的输出范围有限(大约 2^30),导致 arc4random(9) 的输出容易预测。

由于 arc4random(9) 同时也用来在用户态代码中产生随机数种子,因此这个问题也连带影响了用户态的随机数生成(由于 arc4random(9) 在内核中被广泛使用,因此或多或少地减弱了这个问题的实际影响,但我们建议用户不要因此而产生侥幸心理)。

我们建议使用这些版本的 FreeBSD -CURRENT 的用户 立即 升级到最新的 -CURRENT,同时销毁并重新生成在这段时间内生成的全部私钥。