跳过内容

MASWE-0027: 不安全的随机数生成

Beta 版内容

此内容处于 beta 版,仍在积极开发中,因此随时可能发生变化(例如结构、ID、内容、URL 等)。

发送反馈

概述

一个 伪随机数生成器 (PRNG) 算法根据熵不足的种子生成序列,这些序列可能是可预测的。常见的实现不具备加密安全性。例如,它们通常使用线性同余公式,允许攻击者在观察到足够多的输出后预测未来的输出。因此,它不适用于安全关键型应用程序或保护敏感数据。

影响

  • 绕过保护机制:在安全上下文中使用非密码安全的 PRNG(例如身份验证)会带来重大风险。攻击者可能会猜测生成的数字并获得对特权数据或功能的访问权限。预测或重新生成随机数可能导致加密漏洞、敏感用户信息泄露或用户冒充。

引入方式

  • 有风险的随机 API:应用程序可能使用许多现有 API 来生成熵不足的随机数。
  • 非随机源:应用程序可能使用自定义方法来创建“所谓的随机”值,方法是使用非随机源,例如当前时间。

缓解措施

对于安全相关的上下文,请使用密码安全的随机数。

总的来说,强烈建议不要以确定性方式使用任何随机函数,即使它是安全的,特别是那些涉及硬编码种子值(容易通过反编译暴露)的函数。

请参阅 RFC 1750 - 安全随机性建议OWASP 加密存储备忘单 - 安全随机数生成 以获取有关随机数生成的更多信息和建议。

测试

MASTG-TEST-0204: 不安全的随机 API 使用 MASTG-TEST-0205: 非随机源使用