MCU解密全攻略 為何所有MCU都能被破解(二)
圖1-5 意法ST 某型32位MCU打開封裝后的SEM圖片
一些MCU始終沒有任何特殊的硬件安全保護(hù)。它們僅僅是基于不公開編程算法來保護(hù)。這可能有偽裝回讀功能,或用校驗(yàn)功能來代替。一般這些MCU不會(huì)提供非常好的保護(hù)能力。實(shí)際上,在一些智能卡中,適當(dāng)使用校驗(yàn)功能能夠起到很強(qiáng)的保護(hù)作用。
下一步增強(qiáng)安全保護(hù)的措施就是增加一個(gè)硬件安全熔絲(security fuse譯者注:安全熔絲就是寄存器)來禁止訪問數(shù)據(jù)。這很容易做到,不需要完全重新設(shè)計(jì)MCU架構(gòu),僅利用熔絲來控制編程接口的回讀功能,如圖1-6所示。缺點(diǎn)是熔絲位很容易被定位并進(jìn)行入侵攻擊。
例如:熔絲的狀態(tài)可以通過直接把熔絲位的輸出連到電源或地線上來進(jìn)行修改。有些例子中僅僅用激光或聚焦離子束來切斷熔絲的感應(yīng)電路就可以了。用非侵入式攻擊也一樣可以成功。因?yàn)橐粋€(gè)分離的熔絲版圖異于正常的存儲(chǔ)陣列。可以用組合外部信號(hào)來使熔絲位處與不能被正確讀出的狀態(tài),那樣就可以訪問存在內(nèi)部芯片上的信息了。用半侵入式攻擊可以使破解者快速取得成功但需要打開芯片的封裝來接近晶粒。一個(gè)眾所周知的方法就是用紫外線來擦掉安全熔絲。
圖1-6 微芯PIC12C508微控制器的安全熔絲位于程序存儲(chǔ)器陣列的外部。
再下一步就是將安全熔絲做成存儲(chǔ)器陣列的一部分,如果已設(shè)好熔絲,可禁止外部讀寫數(shù)據(jù)。一般的熔絲與主存儲(chǔ)器離得很近,或干脆與主存儲(chǔ)器共享一些控制線。因?yàn)榫A廠使用與主存儲(chǔ)器相同的工藝來制造,熔絲很難被定位和復(fù)位。非侵入式攻擊仍然可用,但需要時(shí)間去尋找。同樣,半侵入式攻擊也可用。當(dāng)然破解者需要更多的時(shí)間去尋找安全熔絲或控制電路負(fù)責(zé)安全監(jiān)視的部分,但這些可以自動(dòng)完成的。進(jìn)行侵入式攻擊將是很困難的,需要手工操作,那將花費(fèi)更多的成本來破解。
圖1-7 飛思卡爾Freescale的MC68HC705C9A微控制器在200倍顯微鏡下可見安全熔絲是存儲(chǔ)器讀寫控制邏輯的一部分
更進(jìn)一步的是用主存儲(chǔ)器的一部分來控制外部對(duì)數(shù)據(jù)的訪問。這可以用上電時(shí)鎖定特定區(qū)域地址的信息,將它作為安全熔絲。或用密碼來控制對(duì)存儲(chǔ)器的訪問。例如德儀的MSP430F112,只有輸入正確的32字節(jié)密碼后才能進(jìn)行回讀操作。如果沒輸入密碼,只有擦掉芯片后才能操作。盡管這個(gè)保護(hù)方法看上去比先前的更有效,它有一些缺點(diǎn)可以用低成本的非侵入式攻擊如時(shí)序分析和功耗分析來破解。如果安全熔絲的狀態(tài)是上電或復(fù)位后的存儲(chǔ)器的一部分,這就給破解者用電源噪聲來破解的機(jī)會(huì),強(qiáng)制電路進(jìn)入存儲(chǔ)器中的錯(cuò)誤狀態(tài)。
圖1-8 PIC16F648A偽頂層金屬層圖案使得對(duì)芯片進(jìn)行微探測(cè)攻擊更困難,200X
別的一些使入侵攻擊開銷更多的措施包括使用頂層金屬網(wǎng)格。所有的網(wǎng)格都用來監(jiān)控短路和開路,一旦觸發(fā),會(huì)導(dǎo)致存儲(chǔ)器復(fù)位或清零。普通的MCU不會(huì)使用這種保護(hù)方法,因?yàn)樵O(shè)計(jì)較難,且在異常運(yùn)行條件下也會(huì)觸發(fā),如:高強(qiáng)度電磁場(chǎng)噪聲,低溫或高溫,異常的時(shí)鐘信號(hào)或供電不良。故有些普通的MCU使用更廉價(jià)的偽頂層金屬網(wǎng)格,但這也有非常高效的光學(xué)分析進(jìn)行微探測(cè)攻擊的方法。在智能卡中,電源和地之間鋪了一些這樣的網(wǎng)格線。在這些方法中發(fā)現(xiàn)一些設(shè)計(jì)缺陷使得可以進(jìn)行微探測(cè)攻擊。同樣,這些網(wǎng)格不能保護(hù)非侵入式攻擊。因?yàn)閷?dǎo)線之間有電容,并且光線可以通過導(dǎo)線抵達(dá)電路的有效區(qū)域,半侵入式攻擊仍然可能。
存儲(chǔ)器相關(guān)文章:存儲(chǔ)器原理
離子色譜儀相關(guān)文章:離子色譜儀原理
評(píng)論