谷歌確認(rèn)Android漏洞導(dǎo)致用戶比特幣被竊
8月16日消息,谷歌的開(kāi)發(fā)人員確認(rèn),Android系統(tǒng)中存在一個(gè)密碼漏洞,可能會(huì)在大量終端應(yīng)用中導(dǎo)致嚴(yán)重的安全問(wèn)題。這些應(yīng)用主要與比特幣交易有關(guān)。
上周有報(bào)道稱,黑客從一個(gè)數(shù)字錢(qián)包中竊取了價(jià)值5720美元的比特幣。這一黑客攻擊正是利用了Android這一Java密碼架構(gòu)的漏洞。谷歌信息安全工程師埃里克斯·克柳賓(Alex Klyubin)在一篇博客中正式確認(rèn)了Android的這一漏洞。克柳賓同時(shí)警告稱,除非開(kāi)發(fā)者改變?cè)L問(wèn)偽隨機(jī)碼生成器的方式,否則其他應(yīng)用也可能被攻擊。
他表示:“我們已經(jīng)確認(rèn),由于底層偽隨機(jī)碼生成器不恰當(dāng)?shù)某跏蓟?,使用Java密碼架構(gòu)來(lái)進(jìn)行密鑰生成、簽名,或隨機(jī)碼生成的應(yīng)用可能無(wú)法通過(guò)Android設(shè)備獲得足夠強(qiáng)的密碼值。如果應(yīng)用在Android設(shè)備上直接調(diào)用系統(tǒng)提供的OpenSSL偽隨機(jī)碼生成器,而沒(méi)有進(jìn)行明確的初始化,那么也將受到影響。”
幾小時(shí)之前,賽門(mén)鐵克的信息安全研究員警告稱,數(shù)十萬(wàn)Android應(yīng)用都可能存在這一漏洞。根據(jù)賽門(mén)鐵克的統(tǒng)計(jì),最多有36萬(wàn)款應(yīng)用依賴SecureRandom服務(wù)。這是一個(gè)由Java密碼架構(gòu)提供的用于生成隨機(jī)數(shù)的程序服務(wù)。與此前報(bào)道不同,這一漏洞影響了所有版本的Android,而不僅僅是Android 4.2等少數(shù)幾個(gè)版本。
偽隨機(jī)碼生成器使計(jì)算機(jī)生成很長(zhǎng)的數(shù)列,而這樣的數(shù)列是不可預(yù)測(cè)的。這是許多加密應(yīng)用對(duì)系統(tǒng)的核心要求。這就像是擲骰子,最終出現(xiàn)的點(diǎn)數(shù)是不可預(yù)知的。偽隨機(jī)碼生成器生成的隨機(jī)數(shù)列可以確保,用于加密的密鑰或數(shù)字簽名數(shù)據(jù)不會(huì)被輕易獲得。
賽門(mén)鐵克的研究員表示,在近期的比特幣被竊事件中,受到攻擊的Android應(yīng)用有可能使用了同一個(gè)數(shù)列對(duì)多筆交易簽名,但這一數(shù)列被應(yīng)用認(rèn)為是隨機(jī)的。報(bào)告稱:“由于交易在比特幣網(wǎng)絡(luò)中是公開(kāi)的,攻擊者掃描了交易記錄,查找特定的交易,獲得了這一私有的密鑰,從而在用戶未授權(quán)的情況下從比特幣錢(qián)包中轉(zhuǎn)移了資金。”
谷歌在博客中建議開(kāi)發(fā)者升級(jí)所有使用Java密碼架構(gòu)的應(yīng)用,同時(shí)重新生成此前使用Java密碼架構(gòu)接口生成的加密密鑰或其他隨機(jī)值。這些Java密碼架構(gòu)接口包括SecureRandom、KeyGenerator、KeyPairGenerator、KeyAgreement和Signthature。谷歌同時(shí)提供了示范代碼。
谷歌同時(shí)表示,谷歌的開(kāi)發(fā)者已向手機(jī)廠商發(fā)布了補(bǔ)丁,但沒(méi)有說(shuō)明這些升級(jí)將如何被安裝至終端用戶設(shè)備。谷歌在博客中強(qiáng)調(diào)了第三方開(kāi)發(fā)者應(yīng)當(dāng)采取的措施。目前,已有至少4個(gè)比特幣錢(qián)包服務(wù)進(jìn)行了升級(jí),修復(fù)了這一漏洞。未來(lái)幾天中,預(yù)計(jì)大量應(yīng)用都將進(jìn)行同樣的升級(jí)。(張帆)