我目前正在使用 XINU 学习操作系统课程,我可以控制操作系统上运行的每个进程,因此,我可以完全预测其随机数生成器的输出。这是代码。
我很清楚,即使是这种简单的方法,在桌面操作系统上使用时,也能够创建真正的随机数,因为有很多进程根据用户、位置或时间的不同而表现不同。但是,在启动时,在有任何用户输入之前呢?
Linux 的加密随机数生成器要复杂得多,但它似乎仍然依赖于用户输入。OpenSSH 在许多 Linux 系统中在启动时运行。我敢肯定有很多公司运行的配置非常接近库存,如果您可以模拟相同的硬件、软件,并设置与您正在攻击的服务器相同的时间和位置,您就不能利用它吗?
在许多托管服务上也有预制部署,开发人员可以在其中上传他们的代码(dockerfile、ruby on rails 项目等),服务器会设置它。这些服务器具有预制软件、已知硬件、位置和时间。我假设他们在现实世界中具有硬件随机性,但如果他们没有呢?