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