MCU解密全攻略 為何所有MCU都能被破解(一)
背景知識(shí):
硅芯片安全措施的演變
工業(yè)控制器的硬件安全措施與嵌入式系統(tǒng)同時(shí)開始發(fā)展。三十年前的系統(tǒng)是由分離的部件如CPU,ROM,RAM,I/O緩沖器,串口和其他通信與控制接口組成的。如圖1-1所示:
圖1-1 通用的嵌入式控制器。PCB上的每個(gè)部件很容易辨別且極易被復(fù)制。
在早期,除法律和經(jīng)濟(jì)外,幾乎沒有保護(hù)措施來防止別人復(fù)制這些設(shè)備。例如:ROM是用低成本的掩膜技術(shù)制造的,可用EPROM輕易復(fù)制,但后者通常要貴3-10倍或更多,或通過定制掩膜ROM,那就需要很長(zhǎng)的時(shí)間和很大的投資。另一種是在游戲機(jī)中廣泛使用的簡(jiǎn)易ASIC,如圖1-2。這些ASIC主要用于I/O部分來取代數(shù)十個(gè)邏輯器件,在降低成本的同時(shí)防止競(jìng)爭(zhēng)者的復(fù)制,使之不得不應(yīng)用更大且更貴的解決方案。實(shí)際上ASIC不會(huì)更安全,用示波器來簡(jiǎn)單分析信號(hào)或窮舉所有可能的引腳組合就可以在數(shù)小時(shí)內(nèi)得知它的具體功能。
圖1-2 游戲機(jī)中的專用集成電路(ASIC)
從七十年代后期開始,微控制器提供一種基于CPU的控制板的非常好的取代方法。它們不僅有內(nèi)部存儲(chǔ)器和通用I/O接口,還有一些保護(hù)措施以防止未經(jīng)授權(quán)訪問內(nèi)部存儲(chǔ)器的內(nèi)容。
不幸的是,早期的MCU沒有提供非易失存儲(chǔ)能力,重要的數(shù)據(jù)不得不存在MCU外部的分離芯片上,因此很容易被讀出數(shù)據(jù)。最近銷售的一些廉價(jià)USB狗也用此法來進(jìn)行軟件保護(hù),如圖1-3所示。
圖1-3 Aladdin HASP4 USB狗
安全領(lǐng)域的下一步進(jìn)展就是把EEPROM芯片放在與MCU同一封裝的內(nèi)部。如圖1-4。破解這些芯片是不容易的。一種專業(yè)的方法是打開樣品的封裝,用微探針來獲得數(shù)據(jù)。或?qū)⑿酒匦潞冈谝粋€(gè)分開的封裝內(nèi)。這兩種設(shè)備都不是低級(jí)破解者所能擁有的。這些破解者會(huì)嘗試用自制的微探針(舊芯片的焊線區(qū)域是相當(dāng)大的)或利用軟件上的缺陷來讀出數(shù)據(jù)。
圖1-4 微芯Microchip的PIC12CE518微控制器打開封裝后的照片,可見非易失數(shù)據(jù)存儲(chǔ)器和MCU是分開封在同一封裝內(nèi)部的。
(譯者注:近來的堆疊芯片,如手機(jī)中用的Flash+SRAM的combo存儲(chǔ)器,結(jié)構(gòu)與之類似,不同的是在垂直方向疊加。破解方法亦類似。結(jié)構(gòu)見圖1-5。)
評(píng)論