常見的IC芯片解密方法與原理解析!
其實(shí)了解芯片解密方法之前先要知道什么是芯片解密,網(wǎng)絡(luò)上對(duì)芯片解密的定義很多,其實(shí)芯片解密就是通過(guò)半導(dǎo)體反向開發(fā)技術(shù)手段,將已加密的芯片變?yōu)椴患用艿男酒?,進(jìn)而使用編程器讀取程序出來(lái)。
本文引用地址:http://www.ex-cimer.com/article/201702/344370.htm芯片解密所要具備的條件是:
第一、你有一定的知識(shí),懂得如何將一個(gè)已加密的芯片變?yōu)椴患用堋?/p>
第二、必須有讀取程序的工具,可能有人就會(huì)說(shuō),無(wú)非就是一個(gè)編程器。是的,就是一個(gè)編程器,但并非所有的編程器是具備可以讀的功能。這也是就為什么我們有時(shí)候?yàn)榱私饷芤粋€(gè)芯片而會(huì)去開發(fā)一個(gè)可讀編程器的原因。具備有一個(gè)可讀的編程器,那我們就講講,芯片解密常有的一些方法。
1、軟件攻擊:
該技術(shù)通常使用處理器通信接口并利用協(xié)議、加密算法或這些算法中的安全漏洞來(lái)進(jìn)行攻擊。軟件攻擊取得成功的一個(gè)典型事例是對(duì)早期ATMELAT89C系列單片機(jī)的攻擊。攻擊者利用了該系列單片機(jī)擦除操作時(shí)序設(shè)計(jì)上的漏洞,使用自編程序在擦除加密鎖定位后,停止下一步擦除片內(nèi)程序存儲(chǔ)器數(shù)據(jù)的操作,從而使加過(guò)密的單片機(jī)變成沒(méi)加密的單片機(jī),然后利用編程器讀出片內(nèi)程序。
至于在其他加密方法的基礎(chǔ)上,可以研究出一些設(shè)備,配合一定的軟件,來(lái)做軟件攻擊。近期國(guó)內(nèi)出現(xiàn)了一種凱基迪科技51芯片解密設(shè)備(成都一位高手搞出來(lái)的),這種解密器主要針對(duì)SyncMos.Winbond,在生產(chǎn)工藝上的漏洞,利用某些編程器定位插字節(jié),通過(guò)一定的方法查找芯片中是否有連續(xù)空位,也就是說(shuō)查找芯片中連續(xù)的FFFF字節(jié),插入的字節(jié)能夠執(zhí)行把片內(nèi)的程序送到片外的指令,然后用解密的設(shè)備進(jìn)行截獲,這樣芯片內(nèi)部的程序就被解密完成了。
2、電子探測(cè)攻擊 :
該技術(shù)通常以高時(shí)間分辨率來(lái)監(jiān)控處理器在正常操作時(shí)所有電源和接口連接的模擬特性,并通過(guò)監(jiān)控它的電磁輻射特性來(lái)實(shí)施攻擊。因?yàn)閱纹瑱C(jī)是一個(gè)活動(dòng)的電子器件,當(dāng)它執(zhí)行不同的指令時(shí),對(duì)應(yīng)的電源功率消耗也相應(yīng)變化。這樣通過(guò)使用特殊的電子測(cè)量?jī)x器和數(shù)學(xué)統(tǒng)計(jì)方法分析和檢測(cè)這些變化,即可獲取單片機(jī)中的特定關(guān)鍵信息。 至于RF編程器可以直接讀出老的型號(hào)的加密MCU中的程序,就是采用這個(gè)原理。
3、過(guò)錯(cuò)產(chǎn)生技術(shù):
該技術(shù)使用異常工作條件來(lái)使處理器出錯(cuò),然后提供額外的訪問(wèn)來(lái)進(jìn)行攻擊。使用最廣泛的過(guò)錯(cuò)產(chǎn)生攻擊手段包括電壓沖擊和時(shí)鐘沖擊。低電壓和高電壓攻擊可用來(lái)禁止保護(hù)電路工作或強(qiáng)制處理器執(zhí)行錯(cuò)誤操作。時(shí)鐘瞬態(tài)跳變也許會(huì)復(fù)位保護(hù)電路而不會(huì)破壞受保護(hù)信息。電源和時(shí)鐘瞬態(tài)跳變可以在某些處理器中影響單條指令的解碼和執(zhí)行。
4、探針技術(shù):
該技術(shù)是直接暴露芯片內(nèi)部連線,然后觀察、操控、干擾單片機(jī)以達(dá)到攻擊目的。
5、紫外線攻擊方法:
紫外線攻擊也稱為UV攻擊方法,就是利用紫外線照射芯片,讓加密的芯片變成了不加密的芯片,然后用編程器直接讀出程序。這種方法適合OTP的芯片,做單片機(jī)的工程師都知道OTP的芯片只能用紫外線才可以擦除。那么要擦出加密也是需要用到紫外線。目前臺(tái)灣生產(chǎn)的大部分OTP芯片都是可以使用這種方法解密的,感興趣的可以試驗(yàn)或到去下載一些技術(shù)資料。OTP芯片的封裝有陶瓷封裝的一半會(huì)有石英窗口,這種事可以直接用紫外線照射的,如果是用塑料封裝的,就需要先將芯片開蓋,將晶圓暴露以后才可以采用紫外光照射。由于這種芯片的加密性比較差,解密基本不需要任何成本,所以市場(chǎng)上這種芯片解密的價(jià)格非常便宜,比如SONIX的SN8P2511解密,飛凌單片機(jī)解密等價(jià)格就非常便宜。
6、利用芯片漏洞:
很多芯片在設(shè)計(jì)的時(shí)候有加密的漏洞,這類芯片就可以利用漏洞來(lái)攻擊芯片讀出存儲(chǔ)器里的代碼,比如我們以前的文章里提到的利用芯片代碼的漏洞,如果能找到聯(lián)系的FF這樣的代碼就可以插入字節(jié),來(lái)達(dá)到解密。還有的是搜索代碼里是否含有某個(gè)特殊的字節(jié),如果有這樣的字節(jié),就可以利用這個(gè)字節(jié)來(lái)將程序?qū)С觥_@類芯片解密以華邦、新茂的單片為例的比較多,如W78E516解密,N79E825解密等,ATMEL的51系列的AT89C51解密是利用代碼的字節(jié)漏洞來(lái)解密的。另外有的芯片具有明顯的漏洞的,比如在加密后某個(gè)管腳再加電信號(hào)的時(shí)候,會(huì)使加密的芯片變成不加密的芯片,由于涉及到國(guó)內(nèi)某家單片機(jī)廠家,名稱就不列出來(lái)了。目前市場(chǎng)上能看到的芯片解密器都是利用芯片或程序的漏洞來(lái)實(shí)現(xiàn)解密的。不過(guò)外面能買到的解密其基本上是能解得型號(hào)很少,因?yàn)橐话憬饷芄径疾粫?huì)將核心的東西對(duì)外公布或轉(zhuǎn)讓。而解密公司自己內(nèi)部為了解密的方便,自己會(huì)使用自制的解密工具,如果致芯科技具有可以解密MS9S09AW32的解密器、能專門解密LPC2119LPC2368等ARM的解密器,使用這樣的解密器解密速度快,客戶到公司基本上立等可取。
7、FIB恢復(fù)加密熔絲方法:
這種方法適用于很多的具有熔絲加密的芯片,最具有代表性的芯片就是TI的MSP430解密的方法,因?yàn)镸SP430加密的時(shí)候要燒熔絲,那么只要能將熔絲恢復(fù)上,那就變成了不加密的芯片了,如MSP430F1101A解密、MSP430F149解密、MSP430F425解密等。一般解密公司利用探針來(lái)實(shí)現(xiàn),將熔絲位連上,也有的人因?yàn)樽约簺](méi)有太多的解密設(shè)備,需要交由其它半導(dǎo)體線路修改的公司來(lái)修改線路,一般可以使用FIB(聚焦離子束)設(shè)備來(lái)將線路連接上,或是用專用的激光修改的設(shè)備將線路恢復(fù)。這些設(shè)備目前在國(guó)內(nèi)的二手設(shè)備很多,也價(jià)格很便宜,一些有實(shí)力的解密公司都配置了自己的設(shè)備。這種方法由于需要設(shè)備和耗材,不是好的方法,但是很多芯片如果沒(méi)有更好的方法的時(shí)候,就需要這種方法來(lái)實(shí)現(xiàn)。
8、修改加密線路的方法:
目前市場(chǎng)上的CPLD以及DSP芯片設(shè)計(jì)復(fù)雜,加密性能要高,采用上述方法是很難做到解密的,那么就需要對(duì)芯片結(jié)構(gòu)作前面的分析,然后找到加密電路,然后利用芯片線路修改的設(shè)備將芯片的線路做一些修改,讓加密電路失效,讓加密的DSP或CPLD變成了不加密的芯片從而可以讀出代碼。如TMS320LF2407A解密,TMS320F28335解密、TMS320F2812解密就是采用這種方法。
評(píng)論