8月16日消息,谷歌的开发人员确认,Android系统中存在一个密码漏洞,可能会在大量终端应用中导致严重的安全问题。这些应用主要与比特币交易有关。
上周有报道称,黑客从一个数字钱包中窃取了价值5720美元的比特币。这一黑客攻击正是利用了Android这一Java密码架构的漏洞。谷歌信息安全工程师埃里克斯·克柳宾(Alex Klyubin)在一篇博客中正式确认了Android的这一漏洞。克柳宾同时警告称,除非开发者改变访问伪随机码生成器的方式,否则其他应用也可能被攻击。
他表示:“我们已经确认,由于底层伪随机码生成器不恰当的初始化,使用Java密码架构来进行密钥生成、签名,或随机码生成的应用可能无法通过Android设备获得足够强的密码值。如果应用在Android设备上直接调用系统提供的OpenSSL伪随机码生成器,而没有进行明确的初始化,那么也将受到影响。”
几小时之前,赛门铁克的信息安全研究员警告称,数十万Android应用都可能存在这一漏洞。根据赛门铁克的统计,最多有36万款应用依赖SecureRandom服务。这是一个由Java密码架构提供的用于生成随机数的程序服务。与此前报道不同,这一漏洞影响了所有版本的Android,而不仅仅是Android 4.2等少数几个版本。
伪随机码生成器使计算机生成很长的数列,而这样的数列是不可预测的。这是许多加密应用对系统的核心要求。这就像是掷骰子,最终出现的点数是不可预知的。伪随机码生成器生成的随机数列可以确保,用于加密的密钥或数字签名数据不会被轻易获得。
赛门铁克的研究员表示,在近期的比特币被窃事件中,受到攻击的Android应用有可能使用了同一个数列对多笔交易签名,但这一数列被应用认为是随机的。报告称:“由于交易在比特币网络中是公开的,攻击者扫描了交易记录,查找特定的交易,获得了这一私有的密钥,从而在用户未授权的情况下从比特币钱包中转移了资金。”
谷歌在博客中建议开发者升级所有使用Java密码架构的应用,同时重新生成此前使用Java密码架构接口生成的加密密钥或其他随机值。这些Java密码架构接口包括SecureRandom、KeyGenerator、KeyPairGenerator、KeyAgreement和Signthature。谷歌同时提供了示范代码。
谷歌同时表示,谷歌的开发者已向手机厂商发布了补丁,但没有说明这些升级将如何被安装至终端用户设备。谷歌在博客中强调了第三方开发者应当采取的措施。目前,已有至少4个比特币钱包服务进行了升级,修复了这一漏洞。未来几天中,预计大量应用都将进行同样的升级。(张帆)