描述
伪随机数生成器(PRNG)使用一个相对较小的种子空间,这使得它更容易受到暴力攻击。
扩展描述
prng是完全确定的一次播种,所以它应该是极难猜的种子。如果攻击者可以收集PRNG的输出,然后蛮力种子通过每一种可能性,看看哪个种子与观察到的输出,那么攻击者就会知道任何后续调用PRNG的输出。一个小种子空间意味着攻击者将会有更少的可能值来耗尽所有可能性。
的关系
模式的介绍
不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
阶段 |
请注意 |
实现 |
实现:造成这一弱点在建筑安全策略的实施。 |
常见的后果
这个表指定不同的个人相关后果的弱点。标识应用程序范围的安全领域侵犯,而影响了负面的技术影响,如果敌人成功利用这个弱点。可能提供的信息如何可能的具体结果预计将看到列表中相对于其它后果。例如,可能会有高可能性,缺点将被利用来实现一定的影响,但较低的可能性,它将被利用来实现不同的影响。
示范例子
示例1
这段代码抓住一些随机字节PRNG和使用它们的种子,以生成一个新的密钥。
# 2字节的随机性对PRNG的播种
种子= os.urandom (2) random.seed(=种子) 关键= random.getrandbits (128)
因为只有2个字节作为种子,攻击者只需要猜2 ^ 16(65536)值之前能够复制PRNG的状态。
观察到的例子
参考 |
描述 |
|
产品通过org.apache.commons.lang.RandomStringUtils生成密码,使用java.util。随机的内部。这PRNG只有48比特位的种子。 |
潜在的缓解措施
阶段:体系结构和设计
使用好审查伪随机数生成算法有适当长度的种子。伪随机数发生器可以产生可预测的数字如果知道发电机和种子可以猜到了。一个256位的种子是一个好的起点生产一个足够“随机”的数字。 |
阶段:体系结构和设计;需求
|
脆弱性映射笔记
用法:允许
(CWE ID可以用来映射到现实世界的漏洞) |
原因:可接受的使用 |
理由是: 这个CWE条目是变体的抽象级别,这是一个首选的抽象级别映射到漏洞的根本原因。 |
评论: 仔细阅读这两个名称和描述,以确保此映射是一个适当的配合。不要试图“力”映射到底层基础/变体只是遵守这首选的抽象级别。 |
笔记
维护
CWE 4.5,相关术语随机性,熵,和可预测性可以相差很大。在开发人员和其他社区,使用“随机性”。然而,在密码学,“熵”是不同的,通常隐含的测量。没有常用的定义,甚至在标准文件和加密文件。CWE的未来版本将试图定义这些术语,如果有必要,区分他们的方式适合不同的社区,但不会减少可用性CWE的映射,理解,或者其他场景。
分类法映射
映射分类名称 |
节点ID |
适合 |
映射节点名 |
千鸟 |
|
|
小种子在PRNG空间 |
引用
更多的信息是可用的,请编辑自定义过滤器或选择一个不同的过滤器。
|