硬件錢(qián)包最重要的點(diǎn)是對(duì)于設(shè)備端(冷端)自身的安全保護(hù)复局,這里就會(huì)涉及到硬件錢(qián)包的安全性判斷標(biāo)準(zhǔn):
1赘被、 設(shè)備端(冷端)是否本身會(huì)被攻擊和破解。操作系統(tǒng)和應(yīng)用本身是保存在開(kāi)放性的存儲(chǔ)器(SDRAM)中還是存放在進(jìn)行安全保護(hù)的芯片中肖揣,是不是有被篡改的可能性民假。
2、 私鑰的保存是不是得到了安全的保護(hù)龙优,加密或者未加密過(guò)的密鑰(或種子密碼文件)是否可導(dǎo)出羊异。有沒(méi)有辦法通過(guò)包括破拆、破解在內(nèi)的手段從設(shè)備端(冷端)得到私鑰彤断。如果經(jīng)過(guò)加密存放的密鑰野舶,可以被導(dǎo)出(直接拆出SDRAM),則有可能針對(duì)導(dǎo)出的加密文件進(jìn)行暴力破解宰衙。
注:對(duì)于使用分層確定性(HD)的錢(qián)包平道,所有的私鑰都是通過(guò)一個(gè)種子密碼生成出來(lái)的,這個(gè)種子密碼對(duì)用戶(hù)的展現(xiàn)形式就是助記詞供炼,所以HD錢(qián)包的種子密碼就相當(dāng)于用戶(hù)錢(qián)包的所有幣種的私鑰一屋。得到種子密碼就得到了所有的私鑰。
3袋哼、 私鑰有沒(méi)有進(jìn)入到內(nèi)存和開(kāi)放性的存儲(chǔ)器冀墨。所有開(kāi)放性存儲(chǔ)器(內(nèi)存、FLASH)內(nèi)的內(nèi)容都是可以被讀出的涛贯,以明文方式進(jìn)入內(nèi)存的私鑰(或種子密鑰)有無(wú)數(shù)的辦法可以導(dǎo)出诽嘉,因此也是不安全的。
4弟翘、 涉及到私鑰的運(yùn)算過(guò)程是否進(jìn)入了開(kāi)放性存儲(chǔ)器(內(nèi)存虫腋、Flash),一旦進(jìn)入內(nèi)存進(jìn)行運(yùn)算稀余,整個(gè)的運(yùn)算過(guò)程都是可以被黑客更容易定位和截獲悦冀。
5、 是否可以通過(guò)反編譯來(lái)模擬應(yīng)用程序的邏輯滚躯。如果程序存儲(chǔ)在開(kāi)放性的編譯器中雏门,則可以輕易的獲取程序,并通過(guò)反編譯獲得應(yīng)用程序邏輯掸掏,并通過(guò)模擬程序的運(yùn)行來(lái)獲得用戶(hù)的私鑰茁影。
6、 防止偽造交易的核心是針對(duì)一個(gè)經(jīng)過(guò)用戶(hù)確認(rèn)的真實(shí)的交易信息進(jìn)行簽名丧凤,在這個(gè)過(guò)程中防止交易信息在傳遞的過(guò)程中被篡改募闲。在哪一端輸入交易信息并不是重點(diǎn),重點(diǎn)在于在冷端要進(jìn)行安全的用戶(hù)的交易信息顯示和確認(rèn)愿待,并且保證冷端自身的安全性浩螺。如果冷端被攻破,交易信息在冷端就是一個(gè)偽冒信息仍侥,即使在冷端輸入也會(huì)發(fā)生偽造交易要出。
只要計(jì)算過(guò)程流出了安全芯片的內(nèi)部,在內(nèi)存中運(yùn)行农渊,這樣的攻擊漏洞在非安全芯片的錢(qián)包中都存在患蹂,黑客是有辦法獲得SDRAM中的內(nèi)容的。包括芯片錢(qián)包中沒(méi)有使用安全芯片的Trezor和KeepKey就曾經(jīng)被這樣攻擊過(guò)砸紊,可以百度一下就知道了传于。
針對(duì)某硬錢(qián)包的攻擊方式一(軟件方式):
1、 Root冷端的系統(tǒng)
2醉顽、 對(duì)系統(tǒng)做內(nèi)存導(dǎo)出
3沼溜、 對(duì)內(nèi)存進(jìn)行分析,從中獲得明文密鑰數(shù)據(jù)
針對(duì)某硬錢(qián)包的攻擊方式二(破拆方式):
1游添、 在硬錢(qián)包中安裝監(jiān)聽(tīng)芯片系草,監(jiān)聽(tīng)進(jìn)入內(nèi)存的信息。
2唆涝、 對(duì)監(jiān)聽(tīng)的數(shù)據(jù)通訊進(jìn)行密鑰分析并導(dǎo)出密鑰悄但。
針對(duì)類(lèi)安卓錢(qián)包:
1、 設(shè)備端(冷端)存儲(chǔ)了種子密碼石抡,而這個(gè)種子密碼能夠計(jì)算出所有幣種的錢(qián)包私鑰和地址檐嚣。根據(jù)分層確定性(HD)錢(qián)包協(xié)議的規(guī)范,只要獲得種子密碼啰扛,可以在任何地方用標(biāo)準(zhǔn)算法來(lái)算出用戶(hù)的所有幣種的私鑰嚎京。所以在開(kāi)放性的存儲(chǔ)器中存儲(chǔ)了種子密碼相當(dāng)于在開(kāi)放性的存儲(chǔ)器中已經(jīng)存儲(chǔ)了私鑰。
2隐解、 私鑰簽名會(huì)以明文的方式在內(nèi)存中進(jìn)行運(yùn)算是系統(tǒng)的鞍帝。對(duì)于一個(gè)強(qiáng)調(diào)安全的硬件錢(qián)包而言,進(jìn)入內(nèi)存進(jìn)行運(yùn)算就可能會(huì)被抓取煞茫,無(wú)關(guān)乎在內(nèi)存中是持續(xù)保存了還是用完后清除帕涌,只要出現(xiàn)了就可能已經(jīng)泄露了摄凡。
3、 防止偽造交易的核心是針對(duì)一個(gè)經(jīng)過(guò)用戶(hù)確認(rèn)的真實(shí)的交易信息進(jìn)行簽名蚓曼,在這個(gè)過(guò)程中防止交易信息在傳遞的過(guò)程中被篡改亲澡,用戶(hù)發(fā)送的是一個(gè)經(jīng)過(guò)確認(rèn)的真實(shí)交易,雙端驗(yàn)證的必要性在于:需要假定熱端(PC/手機(jī)端)被偽造或者冷端(設(shè)備端)被偽造的情況下都能夠保證交易的安全纫版。
說(shuō)了這么多床绪,大家估計(jì)多數(shù)人都沒(méi)有看懂,只要記住一個(gè)結(jié)論其弊,硬錢(qián)包是比軟錢(qián)包和交易所賬戶(hù)都安全幾個(gè)數(shù)量級(jí)的癞己,但并非所有硬錢(qián)包都是安全的,哪怕是目前主流的硬錢(qián)包梭伐,國(guó)內(nèi)國(guó)外產(chǎn)品皆是如此痹雅。
作者:袁曄,水木清華TBC執(zhí)行董事(Fcoin保薦機(jī)構(gòu))糊识,盜火者區(qū)塊鏈應(yīng)用聯(lián)盟發(fā)起人练慕。