我们正在运行Fortify的扫描各种Drupal模块,以及一个共同的关键/高结果是“不安全的随机性”。它指出rand()函数不能承受加密攻击。地址不安全的随机数生成的PHP
我的问题 - 这是一个严重的问题?如何解决它在PHP中?
谢谢。
我们正在运行Fortify的扫描各种Drupal模块,以及一个共同的关键/高结果是“不安全的随机性”。它指出rand()函数不能承受加密攻击。地址不安全的随机数生成的PHP
我的问题 - 这是一个严重的问题?如何解决它在PHP中?
谢谢。
的这个问题的答案完全取决于你使用从兰特的结果是什么()调用。
如果你使用他们喜欢的事情加密密钥,该工具的安全性取决于你的随机数的随机性,那么,是的,这是一个严重的问题。在这种情况下,您不应该调用rand()或mt_rand(),因为它们都不会生成随机的数字,这些随机数字依赖于加密使用。您真的想要利用您在底层伪随机数生成器(PRNG)上运行的平台 - Unix/Linux系统上的/ dev/urandom或Windows系统上的crypto-api - 因为这些已广泛研究并产生真正适用于密码系统的随机数字。 PHP不会轻易访问这些随机源,但是如何做到这一点存在示例(例如 - >http://www.php.net/manual/en/function.mt-rand.php#83655)。
如果您使用的是别的东西随机量,想随机哪个选项呈现给用户至上,或类似的东西,在这里生产的是没有任何密码学的方式被使用的号码,那么你可以是能够使用rand()或mt_rand()离开。但是,如果您的应用程序/模块的安全性依赖于良好的随机数,那么您确实需要利用OS源,如上所述。
类似http://stackoverflow.com/questions/1182584/secure-random-number-generation-in-php – TheOx 2012-04-18 19:07:23