近日,一些树莓派设备正在遭受Raspbian操作系统产生的漏洞和可预测的SSH host key的安全问题的影响。
Raspberry Pi树莓派论坛的一个帖子上,开发人员“oittaa”披露硬件随机号生成器在Raspbian系统默认设置下不能激活,这将直接导致第一次开机时产生一些可预测的SSH host key。他还建议该安全问题属于系统在生成SSH key之前没有执行seed/dev/urandom。
他说:“Raspbian系统在默认设置下不能启动硬件随机号生成器。这导致了可预测的SSH host keys在第一次开机时的生成。只要系统开始启动,systemd-random-seed 就执行到seed/dev/urandom,但是/var/lib/systemd/random-seed丢失,因为它还没创建。/etc/rc2.d/S01regenerate_ssh_host_keys执行了,然而/dev/urandom pool在这一点没有足够的熵而可预测的SSH host key就被创建了。”
基于Debian系统,这个免费的平台为树莓派进行了优化演化成 Raspbian,利用了/dev/urandom函数来生成随机数,就像Linux一样。这个函数不应该依赖于用户的熵数据,因此这使得它与 /dev/random相比更为普遍,后者基于user-generated熵而能够产生更好的随机数。
显然地,Raspbian系统中的/dev/urandom函数没有足够多的熵数据来运行,因为平台在启动时尝试生成SSH host key了,然后序列失败了。操作系统生成了可预测的值,使得SSH key比可获得的熵数据足够的情况更为不安全。
然而,似乎Raspbian的开发者们已经意识熵的问题到并且已经开始着手解决它,不久将计划给它打补丁并更新新的版本,一位论坛管理者这样说。鉴于该安全漏洞在内部已经开始分析,相关的补充细节近日可能不会提供了。
为了保证他们的设备的安全,运行Raspbian系统的树莓派的用户被被建议一旦新的镜像出来就更新系统,该更新会解决这次的问题。
正如F5 Networks的安全解决方案的作者David Holmes于今年早些时候在一个SecurityWeek专栏上所解释的,熵是密码学必备的因为密钥是由随机数生成的。然而,他也解释了组成随机数来为系统的随机数生成器(random number generator,RNG)生成熵也不是一个好办法,因为如果初始的seed值被猜出,数据流也能得出。
Holmes还引述了一个2009年的研究报告,关于网络上所有SSL key中的1%到2%是可分解因子的(因此是可恢复的),很大一部分原因在于不好的熵。在2008年,Debian系统之一所分配的RNG中的混乱情况影响了他们的密钥中仅仅15位的熵。这个密钥产生漏洞已经有很多年都没引起注意了。他还补充说“这个问题还会继续发生”。
文章原文链接:https://www.anquanke.com/post/id/83024