首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux如何在启动时生成随机数

Linux如何在启动时生成随机数
EN

Unix & Linux用户
提问于 2022-09-27 21:30:36
回答 1查看 137关注 0票数 3

目前,我正在使用XINU学习一个OS类,在那里我可以控制运行在操作系统上的每个进程,因此,我可以完全预测它的随机数生成器的输出。这里是代码。

很明显,即使在桌面操作系统上使用这种简单的方法,也可以创建真正的随机数字,因为有太多的进程根据用户、位置或时间的不同行为。但是,在启动时,在没有任何用户输入之前,如何处理呢?

Linux的密码随机数生成器要复杂得多,但它似乎仍然依赖于用户的输入。OpenSSH在许多Linux系统中都是在启动时运行的。我敢肯定,有很多公司运行的配置非常接近股票,如果你可以模拟相同的硬件,软件,并设置相同的时间和地点的服务器,你攻击,你不能利用这一点吗?

在许多托管服务上也有预先制定的部署,其中devs可以上传他们的代码(dockerfile、rails项目等),服务器只需设置它。这些服务器已经预先制作了软件、已知的硬件、位置和时间。我假设他们在现实世界中有硬件的随机性,但如果他们没有呢?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2022-09-27 22:38:01

缺乏熵一直是一个问题,特别是对于那些没有随机设备或其他API可用的旧操作系统,或者对于云或克隆的操作系统来说,它们几乎都有完全相同的种子。而且,尽管有熵源的存在,人们仍然在做一些愚蠢的事情(例如CVE-2020-27020)。

一种解决方案是在启动时从各种随机数源读取,例如某些芯片的RDRAND特性,并希望在任何一个源被破坏或损坏时从多个这样的源读取。这可能会推迟启动,直到获得“足够”的熵。您可能会发现各种开放源码操作系统在启动时是如何通过挖掘它们的源代码来实现这一点的。

另一种解决方案是为系统或虚拟主机添加一些预先生成的随机数据,可能是由安装程序或主机操作系统生成的。然后,该数据在第一次启动时由后续系统使用。这允许任意数量相同的虚拟系统具有不同的熵集,前提是主机操作系统为每个主机生成合适的熵。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/718952

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档