Bugtraq ID: 47980 CVE ID:CVE-2011-0766 Erlang是一种通用的面向并发的编程语言,OTP是包装在Erlang中的一组库程序。 Erlang/OTP ssh库依靠强大的加密随机数实现多个加密操作,但是库使用的RNG加密不够强壮,而且使用了可预测种子数据而进一步削弱了加密强度。RNG(Wichman-Hill)没有与熵源进行混合处理。 库中所有ssh连接的种子使用当前时间(大约微秒分辨率),通过观察从这个库建立的连接时间,可猜测三个RNG种子中前两个组成部分,第三个可通过尝试每个可能的值(1..1000000)暴力破解恢复。 利用库以明文kexinit消息发送的16字节随机会话cookie可更方便的猜测准确种子,此cookie是RNG序列中的17-32字节。 如果能恢复会话RNG种子,攻击者可以简单的执行SSH库一样的DH密钥更换操作,并恢复会话密钥。此外,如果SSH库用于服务端连接并使用了DSA主机密钥,可从kex_dh消息中恢复私钥。私钥签名值k可从RNG种子中获取(序列中170-190字节),因此利用kex_dh_reply消息中的公告DSA密钥数据,通过转换签名操作可恢复私钥部分。 erlang.org Erlang/OTP R14B02 erlang.org Erlang/OTP R14B01 erlang.org Erlang/OTP R14B erlang.org Erlang/OTP R14A 厂商解决方案 Erlang/OTP R14B03已经修复此漏洞,建议用户下载使用: http://www.erlang.org/download.html 用户也可参考供应商提供的如下安全补丁: https://github.com/erlang/otp/commit/f228601de45c5b53241b103af6616453c50885a5
Bugtraq ID: 47980 CVE ID:CVE-2011-0766 Erlang是一种通用的面向并发的编程语言,OTP是包装在Erlang中的一组库程序。 Erlang/OTP ssh库依靠强大的加密随机数实现多个加密操作,但是库使用的RNG加密不够强壮,而且使用了可预测种子数据而进一步削弱了加密强度。RNG(Wichman-Hill)没有与熵源进行混合处理。 库中所有ssh连接的种子使用当前时间(大约微秒分辨率),通过观察从这个库建立的连接时间,可猜测三个RNG种子中前两个组成部分,第三个可通过尝试每个可能的值(1..1000000)暴力破解恢复。 利用库以明文kexinit消息发送的16字节随机会话cookie可更方便的猜测准确种子,此cookie是RNG序列中的17-32字节。 如果能恢复会话RNG种子,攻击者可以简单的执行SSH库一样的DH密钥更换操作,并恢复会话密钥。此外,如果SSH库用于服务端连接并使用了DSA主机密钥,可从kex_dh消息中恢复私钥。私钥签名值k可从RNG种子中获取(序列中170-190字节),因此利用kex_dh_reply消息中的公告DSA密钥数据,通过转换签名操作可恢复私钥部分。 erlang.org Erlang/OTP R14B02 erlang.org Erlang/OTP R14B01 erlang.org Erlang/OTP R14B erlang.org Erlang/OTP R14A 厂商解决方案 Erlang/OTP R14B03已经修复此漏洞,建议用户下载使用: http://www.erlang.org/download.html 用户也可参考供应商提供的如下安全补丁: https://github.com/erlang/otp/commit/f228601de45c5b53241b103af6616453c50885a5