几年前,我可以通过设置以下内容在 FreeBSD 中手动设置随机数生成器的种子:
sysctl -w kern.random.sys.seeded=0
... 然后,如果我删除了我的 SSH 密钥(故意的)并重新启动 sshd,我将不得不猛击键盘一两页来播种 RNG。然后 sshd 将根据该种子创建新的 ssh 密钥。
这不再可能 - sysctl 不再存在,并且每次我擦除现有密钥时,sshd 都会愉快地创建新密钥。
我并不是说手动播种 RNG 更安全——它可能更糟——但我在问为什么不再可能这样做,或者,如果可以的话,我在 2019 年(FreeBSD 12)如何做到这一点。
答案1
我不是这个领域的专家,但据我所知,FreeBSD 维护一个熵池,并用来自各种来源(CPU、网络接口、鼠标和键盘输入等)的随机数据为其播种。
因此,为了“播种”,您只需立即“按下键盘”即可,然后将随机性添加到池中。
有点相关的问题:https://crypto.stackexchange.com/questions/56390/seeding-the-fortuna-prng-for-the-first-time