如何在js中js获取对象SecureRandom对象

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

该漏洞存在于使用JavaScript 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透露,破解这样的私钥通常需要一周时间

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

参考资料

 

随机推荐