免責聲明:請在訪問相關(guān)連接時替換HXXP為HTTP,僅供安全研究與教學實例,風險自負!
Android 4.4之前版本的Java加密架構(gòu)(JCA)中使用的Apache Harmony 6.0M3及其之前版本的SecureRandom實現(xiàn)存在安全漏洞,具體位于classlib/modules/security/src/main/java/common/org/apache/harmony/security/provider/crypto/SHA1PRNG_SecureRandomImpl.java文件的engineNextBytes函數(shù)里。當用戶沒有提供用于產(chǎn)生隨機數(shù)的種子時,程序不能正確調(diào)整偏移量,導致偽隨機數(shù)生成器(PRNG)生成隨機序列的過程可被預測。漏洞文件參見文后鏈接1。
2013年8月份的比特幣應用被攻擊也與這個漏洞相關(guān)。比特幣應用里使用了ECDSA算法,這個算法需要一個隨機數(shù)來生成簽名,然而生成隨機數(shù)的算法存在本文提到的安全漏洞。同時這個ECDSA算法本身也有漏洞,在這個事件之前索尼的PlayStation 3 master key事件也是利用的這個算法漏洞。
本文主要介紹SecureRandom漏洞,關(guān)于ECDSA算法漏洞讀者可以自行閱讀下面的資料:
hxxp://en.wikipedia.org/wiki/Elliptic_Curve_Digital_Signature_Algorithm#Security
hxxp://tools.ietf.org/html/rfc6979
Google group上關(guān)于PlayStation 3 master key事件如何利用ECDSA算法漏洞獲取私鑰的討論:
hxxps://groups.google.com/forum/?fromgroups=#!topic/sci.crypt/3isJl28Slrw
在java里,隨機數(shù)是通過一個初始化種子來生成的。兩個PRNG實例,如果使用相同的種子來初始化,就會得到相同的隨機序列。Java Cryptography Architecture里提供了幾個加密強度更大的PRNGs,這些PRNGs都是通過SecureRandom接口實現(xiàn)的。
java.security.SecureRandom這個類本身并沒有實現(xiàn)偽隨機數(shù)生成器,而是使用了其他類里的實現(xiàn)。因此SecureRandom生成的隨機數(shù)的隨機性、安全性和性能取決于算法和熵源的選擇。
小編推薦閱讀國產(chǎn)工具PKAV HTTP Fuzzer滲透測試助手最新發(fā)布
閱讀惠普漏洞:惠普ArcSight企業(yè)安全系列產(chǎn)品曝高危安全漏洞
閱讀蘋果Mac OS X系統(tǒng)被發(fā)現(xiàn)存在DLL劫持漏洞
閱讀D-Link(友訊)路由器曝遠程文件上傳及命令注入漏洞(已發(fā)布安全更新)
閱讀Win10將使用P2P進行系統(tǒng)更新,引發(fā)安全擔憂
閱讀美國最大的無卡ATM網(wǎng)絡(luò)即將推出,從此告別刷卡!
閱讀谷歌應用漏洞泄漏超過28萬條私人WHOIS數(shù)據(jù)
閱讀使命召喚、魔獸世界、英雄聯(lián)盟……專攻游戲的勒索軟件TeslaCrypt
閱讀本站所有軟件,都由網(wǎng)友上傳,如有侵犯你的版權(quán),請發(fā)郵件[email protected]
湘ICP備2022002427號-10 湘公網(wǎng)安備:43070202000427號© 2013~2025 haote.com 好特網(wǎng)