0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

MCU的防破解技術(shù)詳解!

MCU開發(fā)加油站 ? 來源:未知 ? 作者:李建兵 ? 2018-03-15 13:44 ? 次閱讀

要破解MCU,學(xué)校里不會有人講這個,大概很多老師們也不會。為什么要破解,為了興趣?研究?掙錢?還可能是太無聊了。不管怎樣,學(xué)習(xí)下MCU的防破解技術(shù),就像了解你家的門鎖一樣有價值。

本文雖然來自于一篇老帖子,但是內(nèi)容卻并不過時,下面就開始正傳。

微控制器硬件安全措施與嵌入式系統(tǒng)同時開始發(fā)展。三十年前的系統(tǒng)是由分離的部件如CPU,ROMRAM,I/O緩沖器,串口和其他通信與控制接口組成的。

在早期,除法律和經(jīng)濟(jì)外,幾乎沒有保護(hù)措施來防止復(fù)制這些設(shè)備。例如,ROM是用低成本的掩模技術(shù)制造的,可用EPROM輕易復(fù)制,但后者通常要貴3-10倍或更多?;蚨ㄖ蒲谀OM,那就需要很長的時間和很大的投資。另一種是在游戲機(jī)中廣泛使用的簡易ASIC。這些ASIC主要用于I/O部分來取代數(shù)十個邏輯器件,在降低成本的同時防止競爭者的復(fù)制,使之不得不應(yīng)用更大且更貴的解決方案。實(shí)際上ASIC不會更安全,用示波器來簡單分析信號或窮舉所有可能的引腳組合就可以在數(shù)小時內(nèi)得知它的具體功能。

從七十年代后期開始,微控制器提供一種非常好的取代基于CPU的控制板的方法。它們不僅有內(nèi)部存儲器和通用I/O接口,還有一些保護(hù)措施以防止未經(jīng)授權(quán)訪問內(nèi)部存儲器的內(nèi)容。

不幸的是,早期的MCU沒有提供非易失存儲能力,重要的數(shù)據(jù)不得不存在MCU外部的分離芯片上,因此很容易被讀出數(shù)據(jù)。一些廉價USB狗也用此法來進(jìn)行軟件保護(hù)。

圖1:Aladdin HASP4 USB狗

下一步進(jìn)展就是把EEPROM芯片放在與MCU同一封裝的內(nèi)部。破解這些芯片是不容易的。一種專業(yè)的方法是打開樣品的封裝,用微探針來獲得數(shù)據(jù)?;?qū)⑿酒匦潞冈谝粋€分開的封裝內(nèi)。這兩種設(shè)備都不是低級破解者所能擁有的。這些破解者會嘗試用自制的微探針(舊芯片的焊線區(qū)域是相當(dāng)大的)或利用軟件上的缺陷來讀出數(shù)據(jù)。

圖2:PIC12CE518微控制器打開封裝后的照片,可見非易失數(shù)據(jù)存儲器和MCU是分開封在同一封裝內(nèi)部的。

圖3:某型32位MCU打開封裝后的SEM圖

一些MCU始終沒有任何特殊的硬件安全保護(hù)。它們僅僅是基于不公開編程算法來保護(hù)。這可能有偽裝回讀功能,或用校驗(yàn)功能來代替。一般這些MCU不會提供非常好的保護(hù)能力。實(shí)際上,在一些智能卡中,適當(dāng)使用校驗(yàn)功能能夠起到很強(qiáng)的保護(hù)作用。

下一步增強(qiáng)安全保護(hù)的措施就是增加一個硬件安全熔絲(security fuse——安全熔絲就是寄存器)來禁止訪問數(shù)據(jù)。這很容易做到,不需要完全重新設(shè)計(jì)MCU架構(gòu),僅利用熔絲來控制編程接口的回讀功能。缺點(diǎn)是熔絲位很容易被定位并進(jìn)行入侵攻擊。例如:熔絲的狀態(tài)可以通過直接把熔絲位的輸出連到電源或地線上來進(jìn)行修改。有些例子中僅僅用激光或聚焦離子束來切斷熔絲的感應(yīng)電路就可以了。用非侵入式攻擊也一樣可以成功。

因?yàn)橐粋€分離的熔絲版圖異于正常的存儲陣列??梢杂媒M合外部信號來使熔絲位處與不能被正確讀出的狀態(tài),那樣就可以訪問存在內(nèi)部芯片上的信息了。用半侵入式攻擊可以使破解者快速取得成功但需要打開芯片的封裝來接近晶粒。一個眾所周知的方法就是用紫外線來擦掉安全熔絲。

圖4:PIC12C508微控制器的安全熔絲位于程序存儲器陣列的外部。

再下一步就是將安全熔絲做成存儲器陣列的一部分,如果已設(shè)好熔絲,可禁止外部讀寫數(shù)據(jù)。一般的熔絲與主存儲器離得很近,或干脆與主存儲器共享一些控制線。因?yàn)榫A廠使用與主存儲器相同的工藝來制造,熔絲很難被定位和復(fù)位。非侵入式攻擊仍然可用,但需要時間去尋找。同樣,半侵入式攻擊也可用。當(dāng)然破解者需要更多的時間去尋找安全熔絲或控制電路負(fù)責(zé)安全監(jiān)視的部分,但這些可以自動完成的。進(jìn)行侵入式攻擊將是很困難的,需要手工操作,那將花費(fèi)更多的成本來破解。

圖5:MC68HC705C9A微控制器在200倍顯微鏡下可見安全熔絲是存儲器讀寫控制邏輯的一部分

更進(jìn)一步的是用主存儲器的一部分來控制外部對數(shù)據(jù)的訪問。這可以用上電時鎖定特定區(qū)域地址的信息,將它作為安全熔絲?;蛴妹艽a來控制對存儲器的訪問。例如德儀的MSP430F112,只有輸入正確的32字節(jié)密碼后才能進(jìn)行回讀操作。如果沒輸入密碼,只有擦掉芯片后才能操作。盡管這個保護(hù)方法看上去比先前的更有效,它有一些缺點(diǎn)可以用低成本的非侵入式攻擊如時序分析和功耗分析來破解。如果安全熔絲的狀態(tài)是上電或復(fù)位后的存儲器的一部分,這就給破解者用電源噪聲來破解的機(jī)會,強(qiáng)制電路進(jìn)入存儲器中的錯誤狀態(tài)。

圖6:PIC16F648A偽頂層金屬層圖案使得對芯片進(jìn)行微探測攻擊更困難,200倍放大

別的一些使入侵攻擊開銷更多的措施包括使用頂層金屬網(wǎng)格。所有的網(wǎng)格都用來監(jiān)控短路和開路,一旦觸發(fā),會導(dǎo)致存儲器復(fù)位或清零。普通的MCU不會使用這種保護(hù)方法,因?yàn)樵O(shè)計(jì)較難,且在異常運(yùn)行條件下也會觸發(fā),如:高強(qiáng)度電磁場噪聲,低溫或高溫,異常的時鐘信號或供電不良。故有些普通的MCU使用更廉價的偽頂層金屬網(wǎng)格,但這也有非常高效的光學(xué)分析進(jìn)行微探測攻擊的方法。在智能卡中,電源和地之間鋪了一些這樣的網(wǎng)格線。在這些方法中發(fā)現(xiàn)一些設(shè)計(jì)缺陷使得可以進(jìn)行微探測攻擊。同樣,這些網(wǎng)格不能保護(hù)非侵入式攻擊。因?yàn)閷?dǎo)線之間有電容,并且光線可以通過導(dǎo)線抵達(dá)電路的有效區(qū)域,半侵入式攻擊仍然可能。

可編程的智能卡制造商走得更遠(yuǎn),干脆砍掉標(biāo)準(zhǔn)的編程接口。取而代之的是啟動模塊,可以在代碼載入后擦掉或屏蔽掉自己。這些卡只能在初始化時被編程一次,之后只能響應(yīng)使用者的嵌入軟件所支持的讀寫存在卡里的數(shù)據(jù)或程序。

圖7:ST16系列智能卡芯片表面金屬層的敏感網(wǎng)格

近期的一些智能卡使用存儲器總線編碼(Bus encryption)技術(shù)來防止微探測攻擊。即使破解者獲得數(shù)據(jù)總線的數(shù)據(jù)也不可能知道密碼或別的敏感信息。這種保護(hù)措施直指侵入式和半侵入式攻擊。但非侵入式攻擊仍然可以像正常的CPU一樣訪問控制非編碼信息。事實(shí)上,幾年前就發(fā)現(xiàn)廉價地破解編碼信息的方法。

圖8:100倍顯微鏡下的SLE66系列的智能卡芯片上的硬件總線編碼模塊,保護(hù)存儲器免受微探測攻擊。

另外一些需要提及的改進(jìn)是將標(biāo)準(zhǔn)的模塊結(jié)構(gòu)如解碼器,寄存器文件,ALU和I/O電路用類似ASIC邏輯來設(shè)計(jì)。這些設(shè)計(jì)稱為混合邏輯(Glue logic),廣泛用于智能卡。混合邏輯使得實(shí)際上不可能通過手工尋找信號或節(jié)點(diǎn)來獲得卡的信息進(jìn)行物理攻擊。這種技術(shù)廣泛用于盜版,并可提升常見CPU內(nèi)核的性能和安全性。例如,SX28微控制器的引腳和程序都兼容于微芯的PIC16C57,但它使用了混合邏輯設(shè)計(jì),閃存,大容量RAM使它的性能獲得大幅提升。在PIC微控制器中,破解者很容易跟蹤內(nèi)存到CPU的數(shù)據(jù)總線,但在SX微控制器中,幾乎不可能知道總線的物理位置,反向工程和微探測攻擊將是非常困難且耗費(fèi)時間。

圖9:SX28微控制器引入混合邏輯設(shè)計(jì),提升了性能和安全性。

更常用的是芯片由不同模塊組成,但每個模塊使用混合邏輯設(shè)計(jì)。如CY7C63001A微控制器。在這種情況下,破解者更容易跟蹤模塊之間的總線和控制線,并對芯片進(jìn)行侵入式和半侵入式攻擊?;旌线壿嬙O(shè)計(jì)不能防止非侵入式攻擊,但需要更快更昂貴的設(shè)備。半侵入式攻擊面臨偽設(shè)計(jì)模塊的問題。當(dāng)然破解者可以自動操作來進(jìn)行窮舉搜索并嘗試攻擊所有可能區(qū)域。結(jié)果很可能是花了很長時間并沒有取得成功。另一方面,破解者可以直接攻擊存儲器器或它的控制電路。

圖10:的CY7C63001A微控制器使用部分混合邏輯設(shè)計(jì),但內(nèi)部總線很容易被訪問。

技術(shù)的進(jìn)步增加了入侵攻擊的成本。十年前很容易使用激光切割器和簡單的探針臺就可以讀寫芯片表面的任何點(diǎn),但對于現(xiàn)代的深亞微米半導(dǎo)體芯片就需要用到不一般的且昂貴的技術(shù),這難倒了很多潛在的破解者。如PIC16F877很容易在顯微鏡下觀察并進(jìn)行反向工程,藏在頂層金屬下的第二層金屬和多晶硅層仍然可見。但在PIC16F887A微控制器中使用了平坦化工藝,使得不會顯示更深的層。唯一的方法是用物理或化學(xué)的方法除去頂層金屬。

圖11:500倍顯微鏡下,通過PIC16F877的頂層看到第二層金屬和多晶硅層。

圖12:500倍顯微鏡下,看不到PIC16F877A的頂層金屬下有什么特別的。

安全保護(hù)的類型

通過編程接口對片上存儲器進(jìn)行寫,校驗(yàn),讀和擦除操作,這可以用硬件(JTAG)或軟件(bootloader)來實(shí)現(xiàn)。在硬件接口方面,安全保護(hù)通常是使用安全熔絲來控制接口的操作,如,阻止存儲器中的數(shù)據(jù)發(fā)送到輸出緩沖器里。至于軟件接口,一般使用密碼保護(hù),但通常軟件會檢測某個硬件安全熔絲的狀態(tài)。一些微控制器使用了這兩種方法,軟件啟動載入模塊控制系統(tǒng)的編程,另一個快速的硬件接口用來大批量生產(chǎn)的編程。每一種都有它的優(yōu)勢和劣勢。通過軟件,有更好的靈活性和更好的編程控制能力,但會在時間延遲和功耗方面泄漏一些信息。硬件的執(zhí)行速度更快,對噪聲攻擊不敏感,不會通過功耗泄漏信息。在硅芯片的資源上,兩者都占用類似大小的空間,對于現(xiàn)代的微控制器,與其它較大的部分如程序存儲器,處理器模擬接口相比,這部分幾乎可以忽略不計(jì)。制造商就可以在同一個芯片上放置兩種或更多的編程接口。如通過異步接口進(jìn)行在線串行編程,標(biāo)準(zhǔn)的并行編程,軟件啟動模塊通過異步接口編程。

一些制造商故意不提供它們的微控制器的編程規(guī)格。這對它本身并沒有提供很好的保護(hù),只是給破解稍稍增加成本而已。這些信息可以通過在開發(fā)板上或通用編程器對芯片進(jìn)行編程而獲得。

很明顯,對于最高等級的安全,系統(tǒng)沒有任何編程接口,并且不能讀寫所存儲的數(shù)據(jù)。這通常用于掩模ROM微控制器和智能卡。對這種保護(hù),實(shí)用破解方法是用微探針接觸數(shù)據(jù)總線來恢復(fù)信息或使用功耗分析和噪聲攻擊來利用軟件的缺陷。當(dāng)微控制器進(jìn)行編程但不提供任何返回信息,只有校驗(yàn)和寫檢查,這可以提供相對高的安全等級。當(dāng)然,這需要完全執(zhí)行以避免破解者強(qiáng)制系統(tǒng)一次只校驗(yàn)一個字節(jié)。

大部分現(xiàn)代的微控制器有一個或多個安全熔絲來控制片上存儲器的讀寫。這些熔絲可以用軟件或硬件來實(shí)現(xiàn)。軟件的方法就是密碼存儲在存儲器中或一個特定的存儲器位置當(dāng)作一個安全熔絲。例如,在MC68HC908系列,使用了密碼保護(hù)。

MC68HC705B系列的熔絲位于數(shù)據(jù)EEPROM存儲器的第一個字節(jié)。兩種方法的安全性都較高,因?yàn)楹茈y從物理上找到熔絲和密碼的位置并復(fù)位它們。同時,破解者會嘗試使用噪聲攻擊來跳過安全檢查,或使用功耗分析來觀察猜測的密碼正確與否。

硬件執(zhí)行方面,安全熔絲物理上位于芯片上。這可以是主存儲器陣列邊上的分離的單個單元,甚至更遠(yuǎn)。所有的PIC和AVR微控制器都這樣。這兩者的安全性能并不高,熔絲很容易被找到并被屏蔽。

安全熔絲在主存儲器中可以提供提供更好的保護(hù),這很難找到并屏蔽它們。主存儲器和熔絲可以通過位線(Bit line)接在一起。如Z86E33微控制器,或通過字線(Word line)接在一起,如意法的ST62T60。有趣的是MC68HC705C9A使用了多種安全措施。熔絲單元放在主存儲器單元之間,合用位線。如果熔絲被紫外線擦除了,主存儲器也會被擦掉。對存儲器進(jìn)行反向工程,發(fā)現(xiàn)很難分辨哪部分屬于存儲器,哪部分屬于熔絲。但同時,半侵入式攻擊可以很好工作,因?yàn)槿劢z有分開的控制電路,這很容易被破解而不影響主存儲器。

圖13:200倍顯微鏡下,Z86E33微控制器的熔絲沿位線緊挨著主存儲器

圖14:200倍顯微鏡下,ST62T60微控制器的熔絲沿字線緊挨著主存儲器

硬件安全保護(hù)方面的新進(jìn)展是將熔絲區(qū)域嵌入到主存儲器陣列中,共享控制或數(shù)據(jù)線,這樣的安全性能更好,熔絲已經(jīng)成為存儲器的一部分,很難進(jìn)行定位。將某一部分存儲器作為安全熔絲可以達(dá)到更高的安全性能。這種情況下,不擾亂其它部分存儲器的內(nèi)容,找到位置并復(fù)位是異常困難的。這并不意味著別的破解方法不能湊效。但可以減少成功的機(jī)會。

安全熔絲可以通過多種方法來監(jiān)控。最簡單的方法就是在上電時;復(fù)位時;進(jìn)入編程模式時檢查熔絲的狀態(tài)。使用電源噪聲或激光脈沖,可以用很短的時間就改變?nèi)劢z地狀態(tài)。熔絲狀態(tài)保存在觸發(fā)器或寄存器中并不好,因?yàn)橛|發(fā)器的狀態(tài)可以通過缺陷注入攻擊來改變。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    16667

    瀏覽量

    347799
  • 破解
    +關(guān)注

    關(guān)注

    2

    文章

    23

    瀏覽量

    14208

原文標(biāo)題:怎樣防住那些想破解MCU的人

文章出處:【微信號:mcugeek,微信公眾號:MCU開發(fā)加油站】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    KW36 MCU HardFault問題查找和破解方法

    KW36 MCU HardFault問題查找和破解方法
    的頭像 發(fā)表于 10-31 16:57 ?887次閱讀
    KW36 <b class='flag-5'>MCU</b> HardFault問題查找和<b class='flag-5'>破解</b>方法

    安芯一號——國內(nèi)首款程序防護(hù)型MCU破解單片機(jī)

    的熱捧。“安芯一號”為產(chǎn)品芯片內(nèi)置程序代碼提供了強(qiáng)有力的保護(hù),為知識產(chǎn)權(quán)保護(hù)提供了全新技術(shù)支持。破解手段:SLH系列單片機(jī)擁有多種破解
    發(fā)表于 09-13 17:42

    參加活動要首先了解破解技術(shù)破解技術(shù)?

    參加活動要首先了解破解技術(shù)破解技術(shù)?
    發(fā)表于 10-26 08:47

    轉(zhuǎn):淺談MCU破解技術(shù)

    MCU中,這樣就完成了MCU破解。 至此,硬件破解法成功完成。第三種:采用軟件和硬件結(jié)合的方法,需要對芯片的內(nèi)部結(jié)構(gòu)非常的熟悉。另外還有其他一些
    發(fā)表于 08-23 10:14

    有什么抄板方式破解?

    `想問下,目前有什么好的抄板的方式了嗎?新產(chǎn)品馬上要出來了,很擔(dān)心被破解,怎樣保護(hù)呢?`
    發(fā)表于 09-30 10:07

    請問破解MCU技術(shù)的方法有哪幾種?

    就不大清楚了,我在這里結(jié)合網(wǎng)上一些前輩整理的資料和自己的經(jīng)驗(yàn),對MCU破解技術(shù)做個簡單分析。  大家不要把解密想的很復(fù)雜,他不像研發(fā)一款產(chǎn)品那樣,先確定客戶需求或者新產(chǎn)品主要功能,然后立項(xiàng)確定
    發(fā)表于 11-25 06:12

    MCU破解技術(shù)分析

    MCU破解技術(shù)分析
    發(fā)表于 02-03 07:17

    MCU破解技術(shù)看了就知道

    簡單分析MCU破解技術(shù)
    發(fā)表于 03-04 08:42

    技術(shù)基礎(chǔ)知識名詞詳解大全

    技術(shù)基礎(chǔ)知識名詞詳解大全 垂直同步、彩色視頻復(fù)合信號同步、外同步、直流線鎖定和完
    發(fā)表于 12-29 12:19 ?785次閱讀

    PC辦公軟件與網(wǎng)絡(luò)疑難破解方法及技巧的分析(1000例詳解

    本文詳細(xì)介紹了PC辦公軟件與網(wǎng)絡(luò)疑難的破解方法及技巧的1000例詳解。
    發(fā)表于 11-26 09:50 ?16次下載
    PC辦公軟件與網(wǎng)絡(luò)疑難<b class='flag-5'>破解</b>方法及技巧的分析(1000例<b class='flag-5'>詳解</b>)

    MCU破解技術(shù)做個簡單分析

    大家可能都知道破解51單片機(jī)是很容易的,但為什么容易,又是如何來破解的,可能很多人就不大清楚了,我在這里結(jié)合網(wǎng)上一些前輩整理的資料,和自己的經(jīng)驗(yàn),對MCU破解
    的頭像 發(fā)表于 12-26 09:16 ?6195次閱讀

    簡單的MCU加密方法,破解、抄襲、山寨

    前言目前MCU程序破解非常容易,最簡單粗暴的方法就是直接將MCU內(nèi)部flash整塊copy走,再copy下你的硬件和結(jié)構(gòu),這樣很快就能山寨出你的產(chǎn)品。這樣很不尊重你的勞動成果,為了保護(hù)開發(fā)者的權(quán)益
    發(fā)表于 11-05 19:21 ?16次下載
    簡單的<b class='flag-5'>MCU</b>加密方法,<b class='flag-5'>防</b><b class='flag-5'>破解</b>、<b class='flag-5'>防</b>抄襲、<b class='flag-5'>防</b>山寨

    MCU破解技術(shù)簡單分析

    利用軟件破解目標(biāo)單片機(jī)的方法,利用這種方法,不會對目標(biāo)MCU元器件造成物理損傷。主要是對WINBONGD,SYNCMOS單片機(jī)和GAL門陣列,這種利用軟件解密設(shè)備,按照一定的步驟操作,執(zhí)行片內(nèi)的程序送到片外的指令
    的頭像 發(fā)表于 07-05 09:39 ?1177次閱讀

    STM32 ID加密,破解讀id最關(guān)鍵的注意點(diǎn)

    STM32 ID加密破解讀id最關(guān)鍵的注意點(diǎn)
    的頭像 發(fā)表于 08-20 09:35 ?6484次閱讀
    STM32 ID加密,<b class='flag-5'>防</b><b class='flag-5'>破解</b>讀id最關(guān)鍵的注意點(diǎn)

    快來看看你的MCU是怎么被破解

    大家可能都知道破解 51 單片機(jī)是很容易的,但為什么容易,又是如何來破解的,可能很多人就不大清楚了。其實(shí)對于MCU破解從簡單來講,它并不像我們開發(fā)項(xiàng)目那樣復(fù)雜,有時候一個漏洞被發(fā)現(xiàn),
    發(fā)表于 05-16 11:10 ?4743次閱讀
    快來看看你的<b class='flag-5'>MCU</b>是怎么被<b class='flag-5'>破解</b>的