打开网易新闻 查看更多图片

英国Unix系统安全研究人员警告说,通过浏览器生成的旧比特币地址、或是通过基于JavaScript生成的钱包应用程序可能会受到加密漏洞的影响,这种漏洞能够让黑客攻击者暴力破解私钥,继而控制用户钱包并窃取资金。

该漏洞存在于使用JavaScript SecureRandom()函数来生产随机比特币地址、及其相应私钥(相当于密码)之中。

SecureRandom()并不是真正的随机

这个漏洞的问题在于,SecureRandom()这个函数其实并不会生成真正的随机数据。最近,Linux Foundation邮件列表中有一位匿名用户和英国Unix系统管理员David Gerard指出:

“这个函数可以生成加密密钥,尽管它们长度小于48比特的熵,因此它的输出将不会超过48比特的熵,即便其种子数量超过了48比特。”
“然后,SecureRandom()运行的数字,也是通过早已过时的RC4算法得到的,所以密钥其实是可预测、也更容易预测的,因为它们熵的比特较少。”

结论就是,使用SecureRandom()函数生成的所有比特币地址都很容易被暴力攻击,并破解出比特币私钥。

建议用户将资金转移到新地址

Gerard发现,一些基于浏览器或客户端的数字货币钱包应用程序使用了SecureRandom()函数。据悉,这个问题其实在2013年的BitcoinTalk论坛上有过披露。

Gerard表示,2013年之前使用BitAddress客户端钱包,以及2014年之前使用Bitcoinjs生成的所有比特币地址都可能受到该漏洞的影响。

此外,根据伦敦大学学院计算机科学系博士研究员Mustafa Al-Bassam的说法,许多旧的浏览器和客户端的比特币钱包应用程序也都使用jsbn.js加密库来生成比特币地址,而该加密库2013年之前的版本也使用了SecureRandom()函数。

使用这些交旧版本的jsbn.js电子钱包应用生成的比特币私钥,都可能被破解。根据Gerard透露,破解这样的私钥通常需要一周时间。

因此,建议所有使用这些工具生成比特币地址的用户使用新工具生成新的比特币地址,并将资金从旧账户转移到新账户。