如果我在Ubuntu中运行此命令
sudo cat /proc/sys/kernel/random/entropy_avail
它返回一个数字,表示内核可以使用多少“熵”,但这就是我所知道的.这个熵测量的单位是多少?它是干什么用的?我被告知如果这个数字是“低”的话,那就是“糟糕”. “低”有多低,如果有的话会发生什么“坏”的事情?这是一个很好的范围?它是如何确定的?
解决方法
您的系统通过关注不同事件来收集一些“真实”随机数:网络活动,硬件随机数生成器(如果可用;例如VIA处理器通常具有“真实”随机数生成器),依此类推.如果将它们提供给内核熵池,则由/ dev / random使用.需要一些极端安全性的应用程序倾向于使用/ dev / random作为其熵源,或者换句话说,使用随机源.
如果/ dev / random耗尽可用熵,则无法提供更多随机性,等待随机性的应用程序会停止,直到有更多随机内容可用.我在职业生涯中看到的例子是Cyrus IMAP守护进程想要使用/ dev / random进行随机性,其POP会话想要在/ dev / random的APOP连接中生成随机字符串.在繁忙的环境中,有多次登录尝试而不是用于提供/ dev / random的流量 – >一切都停滞不前.在那种情况下,我安装了rng-tools并激活了它的rngd – 将/ dev / urandom中的半随机数推送到/ dev / random,以防/ dev / random耗尽“真实”熵.