該技(jì)術(shù)通(tōng)常使用處理(lǐ)器(qì)通(tōng)信接口并利用協議、加密算(suàn)法或這些(xiē)算(suàn)法中的安全漏洞來(lái)進行(xíng)攻擊。軟件攻擊取得(de)成功的一個(gè)典型事例是對早期ATMELAT89C系列單片機的攻擊。攻擊者利用了該系列單片機擦除操作(zuò)時(shí)序設計(jì)上(shàng)的漏洞,使用自編程序在擦除加密鎖定位後,停止下一步擦除片內(nèi)程序存儲器(qì)數(shù)據的操作(zuò),從而使加過密的單片機變成沒加密的單片機,然後利用編程器(qì)讀出片內(nèi)程序。
至于在其他加密方法的基礎上(shàng),可(kě)以研究出一些(xiē)設備,配合一定的軟件,來(lái)做(zuò)軟件攻擊。近期國內(nèi)出現了一種凱基迪科技(jì)51芯片解密設備(成都一位高(gāo)手搞出來(lái)的),這種解密器(qì)主要針對SyncMos.Winbond,在生(shēng)産工藝上(shàng)的漏洞,利用某些(xiē)編程器(qì)定位插字節,通(tōng)過一定的方法查找芯片中是否有(yǒu)連續空(kōng)位,也就是說查找芯片中連續的FFFF字節,插入的字節能夠執行(xíng)把片內(nèi)的程序送到片外的指令,然後用解密的設備進行(xíng)截獲,這樣芯片內(nèi)部的程序就被解密完成了。
2、過錯産生(shēng)技(jì)術(shù):
該技(jì)術(shù)使用異常工作(zuò)條件來(lái)使處理(lǐ)器(qì)出錯,然後提供額外的訪問來(lái)進行(xíng)攻擊。使用最廣泛的過錯産生(shēng)攻擊手段包括電(diàn)壓沖擊和(hé)時(shí)鍾沖擊。低(dī)電(diàn)壓和(hé)高(gāo)電(diàn)壓攻擊可(kě)用來(lái)禁止保護電(diàn)路工作(zuò)或強制(zhì)處理(lǐ)器(qì)執行(xíng)錯誤操作(zuò)。時(shí)鍾瞬态跳(tiào)變也許會(huì)複位保護電(diàn)路而不會(huì)破壞受保護信息。電(diàn)源和(hé)時(shí)鍾瞬态跳(tiào)變可(kě)以在某些(xiē)處理(lǐ)器(qì)中影(yǐng)響單條指令的解碼和(hé)執行(xíng)。
3、電(diàn)子探測攻擊:
該技(jì)術(shù)通(tōng)常以高(gāo)時(shí)間(jiān)分辨率來(lái)監控處理(lǐ)器(qì)在正常操作(zuò)時(shí)所有(yǒu)電(diàn)源和(hé)接口連接的模拟特性,并通(tōng)過監控它的電(diàn)磁輻射特性來(lái)實施攻擊。因為(wèi)單片機是一個(gè)活動的電(diàn)子器(qì)件,當它執行(xíng)不同的指令時(shí),對應的電(diàn)源功率消耗也相應變化。這樣通(tōng)過使用特殊的電(diàn)子測量儀器(qì)和(hé)數(shù)學統計(jì)方法分析和(hé)檢測這些(xiē)變化,即可(kě)獲取單片機中的特定關鍵信息。至于RF編程器(qì)可(kě)以直接讀出老的型号的加密MCU中的程序,就是采用這個(gè)原理(lǐ)。
4、利用芯片漏洞:
很(hěn)多(duō)芯片在設計(jì)的時(shí)候有(yǒu)加密的漏洞,這類芯片就可(kě)以利用漏洞來(lái)攻擊芯片讀出存儲器(qì)裏的代碼,比如我們以前的文章裏提到的利用芯片代碼的漏洞,如果能找到聯系的FF這樣的代碼就可(kě)以插入字節,來(lái)達到解密。還(hái)有(yǒu)的是搜索代碼裏是否含有(yǒu)某個(gè)特殊的字節,如果有(yǒu)這樣的字節,就可(kě)以利用這個(gè)字節來(lái)将程序導出。這類芯片解密以華邦、新茂的單片為(wèi)例的比較多(duō),如W78E516解密,N79E825解密等,ATMEL的51系列的AT89C51解密是利用代碼的字節漏洞來(lái)解密的。
另外有(yǒu)的芯片具有(yǒu)明(míng)顯的漏洞的,比如在加密後某個(gè)管腳再加電(diàn)信号的時(shí)候,會(huì)使加密的芯片變成不加密的芯片,由于涉及到國內(nèi)某家(jiā)單片機廠家(jiā),名稱就不列出來(lái)了。目前市場(chǎng)上(shàng)能看到的芯片解密器(qì)都是利用芯片或程序的漏洞來(lái)實現解密的。不過外面能買到的解密其基本上(shàng)是能解得(de)型号很(hěn)少(shǎo),因為(wèi)一般解密公司都不會(huì)将核心的東西對外公布或轉讓。而解密公司自己內(nèi)部為(wèi)了解密的方便,自己會(huì)使用自制(zhì)的解密工具,如果緻芯科技(jì)具有(yǒu)可(kě)以解密MS9S09AW32的解密器(qì)、能專門(mén)解密LPC2119LPC2368等ARM的解密器(qì),使用這樣的解密器(qì)解密速度快,客戶到公司基本上(shàng)立等可(kě)取。
5、探針技(jì)術(shù):
該技(jì)術(shù)是直接暴露芯片內(nèi)部連線,然後觀察、操控、幹擾單片機以達到攻擊目的。
6、FIB恢複加密熔絲方法:
這種方法适用于很(hěn)多(duō)的具有(yǒu)熔絲加密的芯片,最具有(yǒu)代表性的芯片就是TI的MSP430解密的方法,因為(wèi)MSP430加密的時(shí)候要燒熔絲,那(nà)麽隻要能将熔絲恢複上(shàng),那(nà)就變成了不加密的芯片了,如MSP430F1101A解密、MSP430F149解密、MSP430F425解密等。一般解密公司利用探針來(lái)實現,将熔絲位連上(shàng),也有(yǒu)的人(rén)因為(wèi)自己沒有(yǒu)太多(duō)的解密設備,需要交由其它半導體(tǐ)線路修改的公司來(lái)修改線路,一般可(kě)以使用FIB(聚焦離子束)設備來(lái)将線路連接上(shàng),或是用專用的激光修改的設備将線路恢複。這些(xiē)設備目前在國內(nèi)的二手設備很(hěn)多(duō),也價格很(hěn)便宜,一些(xiē)有(yǒu)實力的解密公司都配置了自己的設備。這種方法由于需要設備和(hé)耗材,不是好的方法,但(dàn)是很(hěn)多(duō)芯片如果沒有(yǒu)更好的方法的時(shí)候,就需要這種方法來(lái)實現。
7、修改加密線路的方法:
目前市場(chǎng)上(shàng)的CPLD以及DSP芯片設計(jì)複雜,加密性能要高(gāo),采用上(shàng)述方法是很(hěn)難做(zuò)到解密的,那(nà)麽就需要對芯片結構作(zuò)前面的分析,然後找到加密電(diàn)路,然後利用芯片線路修改的設備将芯片的線路做(zuò)一些(xiē)修改,讓加密電(diàn)路失效,讓加密的DSP或CPLD變成了不加密的芯片從而可(kě)以讀出代碼。如TMS320LF2407A解密,TMS320F28335解密、TMS320F2812解密就是采用這種方法。
8、紫外線攻擊方法:
紫外線攻擊也稱為(wèi)UV攻擊方法,就是利用紫外線照射芯片,讓加密的芯片變成了不加密的芯片,然後用編程器(qì)直接讀出程序。這種方法适合OTP的芯片,做(zuò)單片機的工程師(shī)都知道(dào)OTP的芯片隻能用紫外線才可(kě)以擦除。那(nà)麽要擦出加密也是需要用到紫外線。目前台灣生(shēng)産的大(dà)部分OTP芯片都是可(kě)以使用這種方法解密的,感興趣的可(kě)以試驗或到去下載一些(xiē)技(jì)術(shù)資料。OTP芯片的封裝有(yǒu)陶瓷封裝的一半會(huì)有(yǒu)石英窗口,這種事可(kě)以直接用紫外線照射的,如果是用塑料封裝的,就需要先将芯片開(kāi)蓋,将晶圓暴露以後才可(kě)以采用紫外光照射。由于這種芯片的加密性比較差,解密基本不需要任何成本,所以市場(chǎng)上(shàng)這種芯片解密的價格非常便宜,比如SONIX的SN8P2511解密,飛淩單片機解密等價格就非常便宜。