51Testing软件测试论坛

标题: 安全开发测试中改进的Linux随机数生成器如何进行测试? [打印本页]

作者: 海上孤帆    时间: 2022-9-26 13:12
标题: 安全开发测试中改进的Linux随机数生成器如何进行测试?
Linux 加密技术核心 /dev/random 的一个替代方案—Linux 随机数生成器(LRNG),依赖于多个计算函数来充当熵源—经过五年的开发,已经准备好进行测试。
该技术旨在提供 API(应用程序编程接口)和 ABI(应用程序二进制接口)并在保证与 /dev/random 兼容的同时,提供若干性能和实用性方面的优势。
LRNG 比 /dev/random 函数性能提高了一倍(130%)。
LRNG 中的数据处理仅使用加密原语,其特点是更现代和可配置的设计。该技术架构支持安全研究人员和其他人员对其功能的多个方面进行测试。
开发者 Stephan Müller 在接受 The Daily Swig 采访时表示,/dev/random 是 Linux 加密技术的“基础”,如果 /dev/random 出问题,那么会影响 Linux 上的整个密码系统。
“由于供应商希望 /dev/random 满足的新的或者特定的要求,这导致每个供应商都在编写自己的补丁,以绕过或增强现有的 /dev/random。在我看来,这是一个非常具有挑战性的情况。”
Müller 对此的回应是制定下一代技术的发展线路,他认为下一代的技术需要接受全面的测试,“始终需要对新的实现进行仔细的测试和评估”。
  1. <font size="3">自从我开始这项工作以来,/dev/random 的维护者一直保持沉默。包括核心开发人员在内的其他 Linux 开发人员对此发表了一些评论,一些评论已被采纳。

  2. 也就是说,目前完全不清楚代码是否或何时进入主线。通过将 LRNG 新闻发布到其他渠道,如加密邮件列表,我希望能让其维护人员做出反应。</font>
复制代码
根据 Müller 的说法,LPRG 包含四个熵的来源,它们完全独立运行,包括执行时间抖动和中断到达时间。


“每个熵源都有自己的熵率和测量,” Müller 解释道。


Müller 补充道:“LRNG 仅使用加密操作进行数据处理,而 DRNG(数字随机数生成器)或哈希是进行了数据压缩。LRNG 允许指定加密算法,例如 SHA256 、SHA512、ChaCha20-DRNG 或 SP800-90A DRBG,同时 LRNG 提供了一个定义良好的 API,以允许定义其他加密实现。”


Müller 在 2021 的 Linux 安全峰会上发表了关于 LRNG 主题为 /dev/random A New Approach 的演讲(对此感兴趣的读者可以自行搜索观看)。


现代的新技术将更好地支持开放源代码开发和其他领域的供应商。


“最近,使用 Linux 的供应商在使用现有的 /dev/random 时遇到了严峻的挑战,因为它不符合现代对随机数的要求,” Müller说,“LRNG 将满足所有这些要求,包括为供应商提供解决其特定场景的灵活性。”


Müller 接着解释了他开发 Linux 随机数生成器的工作起源。


“LRNG 的想法是在我为德国 BSI 分析在虚拟环境中收集熵的行为和熵的运算产生的。此外,我为 BSI 编写的另一项研究进一步推动我决定开发 LRNG 并将其投入生产。”


Linux 随机数生成器实际上是从计算函数派生的伪随机数生成器。生成器的输出用于为加密算法和函数提供种子。


相关信息
Windows 已经采取了类似的方法来处理种子和熵的来源。


萨里大学的计算机科学家艾伦·伍德沃德教授在接受 The Daily Swig 采访时说:“MS 熵源于中断定时、启动时提供的 TPM 随机字符串以及随机性函数,因此看起来 LRNG 遵循的是类似的路径。”。


PRNG 的问题是密码系统设计中的一个致命弱点。


伍德沃德教授解释说:“关于什么是真正的随机数以及它有多重要,有很多争论,但当‘随机’数是可预测和/或可再现时,麻烦就显现出来了。”


例如,自动取款机使用时间戳作为随机性的来源,这个例子实际上描述的唯一性,而不是随机性。


所有这些都促进基于硬件的随机性源的发展,这些源从物理控制的操作测量中获得随机性,例如牛津大学螺旋输出量子骰子。


伍德沃德教授总结道:“硬件 RNG 没有真正站稳脚跟的一个原因是,人们认为现存的已经足够好了。”







欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2