博客專欄

EEPW首頁 > 博客 > 干貨 | MCU 芯片加密心得

干貨 | MCU 芯片加密心得

發(fā)布人:旺材芯片 時間:2021-04-02 來源:工程師 發(fā)布文章
自從上世紀七十年代 MCU 誕生以來,芯片的破解技術(shù)與防止芯片被破解方案就在不斷在上演著“道高一尺,魔高一丈”,一山更比一山高的追逐。本文將單片機在安全保護方面的發(fā)展歷程與大家分享。并在文章的最后,總結(jié)了現(xiàn)階段安全級別最高的智能卡芯片的優(yōu)點及其缺點。


一、單板機時代


上世紀 70 年代初期,嵌入式系統(tǒng)是由分離部件如:CPU、ROM、RAM、I/O 緩存、串口和其他通信與控制接口組成的控制板。如圖:這一時期除法律外,幾乎沒有保護措施來防止侵入者復制單板機上 ROM 區(qū)的數(shù)據(jù)。


二、單片機時代


隨著大規(guī)模集成電路技術(shù)的發(fā)展,中央處理單元(CPU)、數(shù)據(jù)存儲器(RAM)、程序存儲器(ROM)及其他 I/O 通信口都集成在一塊單片機芯片上了,微控制器 MCU 取代了單板機。如圖:
這一時期,內(nèi)部存儲器 EEPROM 和 MCU 是分開封在同一封裝內(nèi)部。侵入者可用微探針來獲取數(shù)據(jù)。


三、安全熔斷絲(Security Fuse)


隨著入侵者的增加,MCU 為了自身的安全,后來增加了安全熔斷絲(Security Fuse)來禁止訪問數(shù)據(jù)。如圖:
優(yōu)點:很容易做到,不需要完全重新設計 MCU 構(gòu)架,僅用熔斷絲來控制數(shù)據(jù)的訪問。缺點:熔斷絲容易被定位、攻擊。例如:熔絲的狀態(tài)可以通過直接把位輸出連到電源或地線上來進行修改。有些僅用激光或聚焦離子束來切斷熔絲的感應電路就可以了。用非侵入式攻擊也一樣成功,因為一個分離的熔絲版圖異于正常存儲陣列,可以用組合外部信號來使位處與不能被正確讀出的狀態(tài),那樣就可以訪問存在內(nèi)部芯片上信息了。用半侵入式攻擊可以使破解者快速取得成功,但需要打開芯片的封裝來接近晶粒。一個眾所周知方法就是用紫外線擦掉安全熔斷絲。


四、安全熔絲變成存儲器陣列的一部分


再后來 MCU 制造商將安全熔絲做成存儲器陣列的一部分,如圖:
一般的熔絲與主存儲器離得很近,或干脆共享些控制線,與主存儲器用相同的工藝來制造,熔斷絲很難被定位。非入侵試攻擊仍然可以用,可以用組合外部信號來使熔斷位處于不被正確讀出的狀態(tài)。同樣,半侵入式攻擊也可用。當然破解者需要更多的時間去尋找安全熔絲或控制電路負責安全監(jiān)視的部分,但這些可以自動完成。進行侵入式攻擊將是很困難需要手工操作,那將花費更多的成本來破解。


五、用主存儲器的一部分來控制外部對數(shù)據(jù)訪問


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


六、使用頂層金屬網(wǎng)絡


使用頂層金屬網(wǎng)絡設計,提升入侵難度。所有的網(wǎng)格都用來監(jiān)控短路和開路,一旦觸發(fā),會導致存儲器復位或清零。如圖:
普通的 MCU 不會使用這種保護方法,因為設計較難,且在異常運行條件下也會觸發(fā),如:高強度電磁場噪聲,低溫或高溫,異常的時鐘信號或供電不良。故有些普通的 MCU 使用更廉價的偽頂層金屬網(wǎng)格,會被非常高效的光學分析進行微探測而被攻擊。另外,這些網(wǎng)格不能防范非侵入式攻擊。同樣不能有效防范半侵入式攻擊,因為導線之間有電容,并且光線可以通過導線抵達電路的有效區(qū)域。在智能卡中,電源和地之間也鋪了一些這樣的網(wǎng)格線。部分可編程的智能卡走的更遠,干脆砍掉了標準的編程接口,甚至干掉了讀取EEPROM 接口,取而代之的是啟動模塊,可以在代碼裝入后擦掉或者屏蔽自己,之后只能響應使用者的嵌入軟件所支持的功能。有效的防范了非侵入式攻擊。


七、智能卡芯片安全設計


近些年,一些智能卡使用存儲器總線加密(Bus Encryption)技術(shù)來防止探測攻擊。如圖:

數(shù)據(jù)以密文方式存儲在存儲器中。即使入侵者獲得數(shù)據(jù)總線的數(shù)據(jù),也不可能知道密鑰或者別的敏感信息(如數(shù)據(jù)還原方法)。這種保護措施有效的防范了侵入式和半侵入式攻擊。有些智能卡甚至能夠做到每張卡片總線加密密鑰不同,這樣即使入侵者完全破解了,也無法生產(chǎn)出相同功能的芯片來,因為每個智能卡芯片有唯一的 ID 號,無法買到相同 ID 號的智能卡。另外值得一提的是,有些智能卡將標準的模塊結(jié)構(gòu)如****,寄存器文件,ALU 和 I/O 電路用類似 ASIC 邏輯來設計。這些設計成為混合邏輯(Gle Logic)設計?;旌线壿嬍沟脤嶋H上不可能通過手工尋找信號或節(jié)點來獲得卡的信息進行物理攻擊。大大提高了 CPU 內(nèi)核的性能和安全性?;旌线壿嬙O計幾乎不可能知道總線的物理位置,有效的防范了反向工程和微探測攻擊。


智能卡芯片加密方案優(yōu)缺點


對于開發(fā)者來講,選擇更為安全設計的微控制器或可以得到更好的保護。與大多數(shù)微控制器相比,即使是十年前設計的智能卡也能提供更好的保護?,F(xiàn)代的智能卡提供了更多的防攻擊保護,內(nèi)部電壓傳感器保護免受電源噪聲攻擊(Power Glitch attacks)、過壓和欠壓保護。時鐘頻率傳感器防止受到靜態(tài)分析(Static analysis)的降低時鐘頻率攻擊。同時也可以防止時鐘噪聲(Clock glitch attacks)進行提高時鐘頻率的攻擊。頂層金屬網(wǎng)格和內(nèi)部總線硬件加密使可以防止微探測攻擊。但是與微控制器相比,智能卡芯片也有劣勢,如:芯片價格昂貴,小批量的很難買到貨。開發(fā)工具昂貴,需要和制造商簽署保密協(xié)議,即使是說明書也要這樣。很多制造商僅向特定客戶銷售大批量的智能卡。另一個不足是 I/O 的功能受限,普通智能卡芯片通常只有ISO7816 接口,極少有單獨的 I/O 口。這使得多數(shù)應用中不能取代微控制器,而只能用于安全要求非常高的行業(yè),如:付費機頂盒,****,SIM 卡,二代身份證,高端加密芯片等領(lǐng)域。智能卡芯片在加密芯片領(lǐng)域的應用,將是個不錯的方向。因為智能卡芯片安全等級高,IO 資源少。而普通 MCU 的硬件資源非常豐富,安全程度卻不高,可以將 MCU 中一些關(guān)鍵算法及運行參數(shù),以特殊形式存放在智能卡芯片中,從而實現(xiàn)高安全強度的強大功能。


后記


堅持不懈的嘗試突破保護機制的破解團體和不斷引入新的安全防范方案的制造商之間的斗爭是沒有盡頭的?!暗栏咭怀?,魔高一丈”,又或是“邪不壓正”,將不停的在兩派之間上演!


*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。



關(guān)鍵詞:

相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉