本文主要是介绍【悟空云课堂】第十六期:使用不安全的随机值漏洞(CWE-330: Use of Insufficiently Random Values),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
关注公众号“中科天齐软件安全中心”(id:woocoom),一起涨知识!
该栏目为中科天齐全新规划的悟空云课堂,每周五下午18:00准时上线,旨在科普软件安全相关知识,助力企业有效防范软件安全漏洞,提升网络安全防护能力。
【悟空云课堂】第十六期:使用不安全的随机值漏洞(CWE-330: Use of Insufficiently Random Values)
什么是使用不安全的随机值?
软件依赖于不可预测的数值使用了不充分的随机数导致的安全性降低。
**产生原因:**计算机是一种按照既定算法运行的机器,因此不可能产生真正的随机性。伪随机数生成器 (PRNG) 近似于随机算法,始于一个能计算后续数值的种子。
PRNG包括两种类型:统计学的PRNG和密码学的PRNG。统计学的PRNG可提供有用的统计资料,但其输出结果很容易预测,因此数据流容易复制。若安全性取决于生成数值的不可预测性,则此类型不适用。密码学的PRNG通过可产生较难预测的输出结果来应对这一问题。为了使加密数值更为安全,必须使攻击者根本无法、或极不可能将它与真实的随机数加以区分。通常情况下,如果并未声明PRNG算法带有加密保护,那么它有可能就是一个统计学的PRNG,不应在对安全性要求较高的环境中使用。
Java API中提供了java.util.Random类实现PRNG(),该PRNG是可移植和可重复的,如果两个java.util.Random类的实例使用相同的种子,会在所有Java实现中生成相同的数值
这篇关于【悟空云课堂】第十六期:使用不安全的随机值漏洞(CWE-330: Use of Insufficiently Random Values)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!