10|弱随机数生成器:攻击者如何预测随机数?
王昊天
你好,我是王昊天。
上节课我们学习了密码算法的安全,有了设计优秀的密码算法,就像买了一扇牢固的防盗门,那么我们再也不用担心小偷了吗?
并不是这样,有了防盗门,我们还需要保管好钥匙才行。上节课我们一直在讨论防盗门的质量问题,而防盗门的钥匙,也就是密码算法所使用的密钥是如何生成的呢?这里就需要一个引入新的概念——随机数。
随机数的概念是很好理解的,但是实际操作起来却很难真的生成。
你一定玩过某一种棋牌类游戏,比如麻将、德州扑克这些,或者更简单的猜拳游戏也可以。考虑到每个人的游戏水平有高低,胜率一定会有些差异。在经常一起玩的朋友当中,一定有某个人在的时候你更容易赢,另外某个人在的时候你更容易输,而且这种输赢是具有统计意义上稳定性的,为什么呢?
因为在面对没有差异的选择时,你是有选择倾向性的,这种倾向性可能来自于你的回忆、你的幸运数字、你的生日等等。
所以,我们以为的随机数,往往没有那么随机。
随机数
我们来正式地认识一下随机数,这一概念在不同领域往往代表着不同的含义。我们一起来由浅入深地聊聊。
首先随机数最基本的概念是统计学意义上的伪随机数,对于给定的一个样本集,每个元素出现的概率是大概相似的,只要从人类的视角看上去一组数是随机的,就符合统计学意义上的伪随机数定义;因为统计学上的伪随机数,在给定随机样本和随机算法的情况下,能够有效地演算出随机样本的剩余部分,因此统计学上的伪随机数需要得到进一步地安全强化,密码学安全的伪随机数应运而生;而随机数的最终概念形态,则是真随机数,其定义是在满足前两个条件的基础上,再增加一个随机样本不可重现的条件。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
本文深入探讨了随机数在密码算法中的重要性以及随机数生成器的安全风险。首先介绍了随机数的概念和生成方法,包括伪随机数、密码学安全的伪随机数和真随机数。随机数的可预测性对密码算法的安全性至关重要。随后,文章详细讨论了伪随机数生成器和密码学伪随机数生成器的方法,并指出了开发过程中可能面临的随机数安全风险。文章还以漏洞CVE-2019-10908为例,分析了在实际应用中可能存在的随机数安全问题,以及攻击者如何利用这些问题进行攻击。通过实例分析,文章展示了攻击者如何利用随机数生成器的安全漏洞进行攻击,并提出了相应的攻击方案。最后,文章强调了密码学安全的伪随机数生成器的重要性,并建议在安全性敏感的应用中使用`java.security.SecureRandom`。整体而言,本文通过深入的技术分析和实例演示,帮助读者全面了解了随机数在密码算法中的重要性以及相关的安全风险。文章还提出了对随机数安全的建议,以及展望了未来课程的内容。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Web 漏洞挖掘实战》,新⼈⾸单¥59
《Web 漏洞挖掘实战》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(3)
- 最新
- 精选
- tracer很多高深的安全知识,讲出来似乎都十分有道理,但是实践起来往往不是那么回事。 说的太对了,都说能攻击,但只有你证明给我看了,太强了2022-11-18归属地:陕西1
- ifelse我们以为的随机数,往往没有那么随机。--记下来2023-03-09归属地:浙江
- leslie分析任何问题都是找到确定性和未知的,做好确定因素是基础,然后对未知的做好可能的风险控制与沙盘推演的Demo测试。2022-01-16
收起评论