Insecure Randomness 和 Use of Cryptographically Weak PRNG 解决方案

本文探讨了Insecure Randomness和Cryptographically Weak PRNG的安全漏洞,指出在安全关键场景中使用可预测的随机数生成器的风险,例如密码、密钥和会话ID的可预测性。建议在Java中使用SecureRandom类以及在JavaScript中使用更安全的随机数生成方法来提高安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Insecure Randomness 和Use of Cryptographically Weak PRNG 其实是同一种漏洞,Insecure Randomness是由Fortify扫描出来的,Use of Cryptographically Weak PRNG是CheckMarx扫描出来的. 他们其实都是不安全的随机数漏洞.

下面是Fortify对漏洞的描述:

描述

标准的伪随机数值生成器不能抵挡各种加密攻击。

解释说明

在对安全性要求较高的环境中,使用能够生成可预测值的函数作为随机数据源,会产生 Insecure Randomness 错误。 电脑是一种具有确定性的机器,因此不可能产生真正的随机性。伪随机数生成器(PRNG) 近似于随机算法,始于一个能计算后续数值的种子。 PRNG 包括两种类型:统计学的 PRNG 和密码学的 PRNG。统计学的 PRNG 提供很多有用的统计属性,但其输出结果很容易预测,因此容易复制数值流。
在安全性所依赖的生成值不可预测的情况下,这种类型并不适用。密码学的 PRNG 生成的输出结果较难预测,可解决这一问题。为保证值的加密安全性,必须使攻击者根本无法、或几乎不可能鉴别生成的随机值和真正的随机值。通常情况下,如果并未声明 PRNG 算法带有加密保护,那么它很可能就是统计学的 PRNG,因此不应在对安全性要求较高的环境中使用,否则会导致严重的漏洞(如易于猜测的密码、可预测的加密密钥、Session Hijacking 和 DNS Spoofing)。 示例: 下面的代码可利用统计学的 PRNG 为购买产品后仍在有
效期内的收据创建一个 URL。

function genReceiptURL (baseURL){
var randNum = Math.random();
var re
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值