我需要在VM中设置Kerberos,但krb5_newrealm会永远挂起“加载随机数据”,因为系统没有生成任何数据.
有谁知道如何解决这个问题?有可能将主机的/ dev / random(非常繁琐)传递到vm中,以便vm可以使用它的随机数据吗?
我已经读到有一些软件替代品,但它们不适合密码学,因为它们不够随意.
编辑:似乎vm上的cat / dev / random确实产生输出,非常非常慢.我通过等待大约两个小时来获取我的领域设置,同时它是“加载随机数据”.最终它足以继续下去.我仍然对加速这种方式感兴趣.
类似的逻辑适用于网络流量.即使接口是虚拟化的,只要数据包来自物理网络(并且不是盒子本地,比如源于另一个vm),数据包时序取决于网卡上晶体振荡器之间的相位偏移以及驱动TSC的晶体振荡器.这取决于两个石英晶体中的微观区温度变化.这也是不可预测的.
如果由于某种原因它不起作用,最简单的解决方案是编写一个程序来挖掘熵并将其添加到系统池中.网络接口是您最可靠的来源.例如,您可以编写代码:
1) Query the TSC.
2) Issue a DNS query to a server known not to be on the same physical machine.
3) Query the TSC when the query completes.
4) Repeat this a few times,accumulating all the TSC values.
5) Perform a secure hash on the accumulated TSC functions.
6) Pass the secure hash function’s output to the system’s entropy pool.
7) Monitor the entropy pool level,and wait until it’s low. When it is,go back to step 1.
Linux有简单的IOCTL调用来向池中添加熵,检查池的级别,等等.你可能有rngd,它可以从管道获取熵并将其提供给系统池.您可以从任何所需的源填充管道,无论是来自您自己的熵源的TSC还是“wget”请求.