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