【DEF CON】数十亿物联网设备受严重随机数生成器缺陷影响
编译:奇安信代码卫士
Bishop Fox 公司的研究员 Dan Petro 和 Allan Cecil 指出,“事实证明这些‘随机’选取的数字并不总是随机的。在很多情况下,这些物联网选择的是密钥0或更糟糕的密钥。这可能为上游使用造成灾难性安全后果。”
随机数生成器 (RNG) 是加固多款加密应用程序的关键过程,包括密钥生成器、随机数和 salting。在传统操作系统上,它衍生自加面前的伪随机数生成器 (CSPRNG),使用获取自高质量种子来源的熵。而在物联网设备中,该熵由片上系统提供,该片上系统提供了名为真正随机数生成器 (TRNG)的专用硬件 RNG 外设,用于捕获来自物理过程或现象的随机性。
研究人员表示,外设当前被调用的方式是不正确的,由于缺乏对错误代码响应的检查,导致生成的随机数并不随机,而且更糟糕的是,它们是可被预测的,从而导致熵不完整、内存未清理甚至密钥由0组成。
他们认为,虽然RNG 外设的 HAL 函数可能会因多种原因失败,但到目前为止最常见(和可被利用)的是设备缺少熵。硬件 RNG 外设通过多种方式(如模拟传感器或EMF读数)获取熵但无法无限供应,“它们每秒只能生成这么多随机位。如果在它无法提供任何随机数的情况下试图调用 RNG HAL 函数,则它会失败并返回错误代码。因此,如果该设备试图以太快的速度获取太多的随机数,则调用将开始失败。”
这个问题是物联网设备独有的,因为它们缺少通常伴随随机性API的操作系统(如 Unix 类操作系统中的 “/dev/random”或Windows 中的 BCryptGenRandom)。研究人员强调了和 CSPRNG 子系统相关联的更大的熵池,从而删除了“熵来源的任意单点失败”。
尽管可通过软件更新的方式修复这些问题,但理想的解决方案是物联网设备制造商和开发商包含源自多样化熵来源的 CSPRNG API并确保代码不会忽视错误条件,或在不存在更多熵的情况下确保不会拦截RNG调用。
研究人员指出,该漏洞并不容易修复,而是需要在物联网操作系统中实现 CSPRNG,“要修复这个问题,必须在物联网设备中投入庞大且复杂的特性“。
详解ThroughTek P2P 供应链漏洞对数百万物联网设备的安全新风险
三大制造商物联网设备遭恶意软件感染,疑似源自供应链攻击
https://thehackernews.com/2021/08/a-critical-random-number-generator-flaw.html
题图:Pixabay License
本文由奇安信编译,不代表奇安信观点。转载请注明“转自奇安信代码卫士 https://codesafe.qianxin.com”。
奇安信代码卫士 (codesafe)
国内首个专注于软件开发安全的产品线。