当前位置: 首页 > 科技观察

严重随机数生成器漏洞披露,数十亿物联网设备受影响

时间:2023-03-12 13:43:48 科技观察

研究人员披露了用于数十亿物联网(IoT)设备的随机数生成器的严重漏洞,这意味着大量用户面临潜在的攻击风险.“事实证明,在物联网设备中,这些‘随机’选择的数字并不总是按照你想要的方式运行,”网络安全组织BishopFox的研究人员DanPetro和AllanCecil在上周发表的一份分析报告中表示。随机地,在许多情况下,设备会随机选择一个0或更弱的加密密钥,这可能会导致任何上游服务器崩溃,从而面临安全问题。”随机数生成(RNG)是支撑加密应用程序的关键过程,其中包括密钥生成、随机数和加盐。在传统操作系统中,RNG源自加密安全伪随机数生成器(CSPRNG),它使用来自高质量种子源的熵。在物联网设备中,片上系统(SoC)内置了一个称为真随机数生成器(TRNG)的专用硬件RNG外围设备,用于从物理过程或现象中捕获“随机性”。研究人员指出,目前调用外部设备的方式是不正确的,他们指出,缺乏对错误代码响应的全面检查会产生随机数,这些随机数不仅是随机的,而且更难预测,包含部分熵、未初始化的内存,甚至是加密密钥包含纯零的被破坏。“RNG外围设备的HAL功能可能会因各种原因而失败,但到目前为止,最常见或最可利用的设备已经耗尽了熵。硬件RNG外围设备可能会通过各种方式耗尽,例如模拟传感器或电磁场读数)摘录来自宇宙的熵,但没有无限的供应。”RNG每秒只能生成这么多随机位。如果在没有任何随机数可以给你的情况下调用RNGHAL函数,它将失败并返回一个错误代码。因此,如果设备试图过快地获取过多的随机数,调用将会失败。这是物联网领域特有的问题。由于物联网设备通常缺少具有随机性API的操作系统(例如,类Unix操作系统中的“/dev/random”或Windows中的BCryptGenRandom),研究人员认为与CSPRNG子系统相关联的熵池具有更大的好处,从而消除“熵源中的任何单点故障”。虽然这些问题可以通过软件更新来解决,但理想的解决方案是物联网设备制造商和开发人员从不同的熵源集生成CSPRNGAPI,并确保代码不会忽略错误条件,或者在没有更多信息时失败当熵可用时,可以阻止对RNG的调用。研究人员强调:“这不是一个简单的漏洞。为了防止这种风险,物联网操作系统确实需要类似CSPRNG的复杂功能设计。”