如何防止破解?MCU加密技術進化史

自從上世紀70年代MCU誕生以來,芯片的破解技術與防止芯片被破解方案就在不斷地上演著“道高一尺,魔高一丈”,一山更比一山高的追逐。


本文將單片機在安全保護方面的發展歷程與大家分享,并在文章的最后,總結了現階段安全級別最高的智能卡芯片的優點及其缺點。

01

單板機時代


上世紀70年代初期,嵌入式系統是由分離部件如:CPU、ROM、RAM、I/O緩存、串口和其他通信與控制接口組成的控制板。


這一時期除法律外,幾乎沒有保護措施來防止侵入者復制單板機上ROM區的數據。

02

單片機時代


隨著大規模集成電路技術的發展,中央處理單元(CPU)、數據存儲器(RAM)、程序存儲器(ROM)及其他I/O通信口都集成在一塊單片機芯片上了,微控制器MCU取代了單板機。如圖:

如何防止破解?MCU加密技術進化史的圖1

這一時期,內部存儲器EEPROM和MCU是分開封在同一封裝內部。侵入者可用微探針來獲取數據。

03

安全熔斷絲


隨著入侵者的增加,MCU為了自身的安全,后來增加了安全熔斷絲(Security Fuse)來禁止訪問數據。如圖:


如何防止破解?MCU加密技術進化史的圖2

優點:很容易做到,不需要完全重新設計MCU構架,僅用熔斷絲來控制數據的訪問。

缺點:熔斷絲容易被定位、攻擊。

例如:熔絲的狀態可以通過直接把位輸出連到電源或地線上來進行修改。有些僅用激光或聚焦離子束來切斷熔絲的感應電路就可以了。用非侵入式攻擊也一樣成功,因為一個分離的熔絲版圖異于正常存儲陣列,可以用組合外部信號來使位處與不能被正確讀出的狀態,那樣就可以訪問存在內部芯片上信息了。用半侵入式攻擊可以使破解者快速取得成功,但需要打開芯片的封裝來接近晶粒。一個眾所周知方法,就是用紫外線擦掉安全熔斷絲。

04

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


再后來MCU制造商將安全熔絲做成存儲器陣列的一部分,如圖:

如何防止破解?MCU加密技術進化史的圖3

一般的熔絲與主存儲器離得很近,或干脆共享些控制線,與主存儲器用相同的工藝來制造,熔斷絲很難被定位。非入侵試攻擊仍然可以用,可以用組合外部信號來使熔斷位處于不被正確讀出的狀態。同樣,半侵入式攻擊也可用。

當然,破解者需要更多的時間去尋找安全熔絲或控制電路負責安全監視的部分,但這些可以自動完成。進行侵入式攻擊將是很困難需要手工操作,那將花費更多的成本來破解。

05

用主存儲器的一部分來控制外部對數據訪問


利用上電時鎖定特定區域地址的信息,將它作為安全熔絲。或用密碼來控制對存儲器訪問。例如:德州儀器的MSP430F112只有輸入正確的32字節密碼后才能進行回讀操作。

如果沒輸入,只有擦字節密碼后才能進行回讀操作。盡管這個保護方法看上去比先前的更有效,但它有一些缺點可以用低成本的非侵入式攻擊,如時序分析和功耗來破解。


如果安全熔絲狀態是上電或復位后存儲器的一部分,這就給破解者用電源噪聲來破解的機會,強制路進入存儲中錯誤狀態。

06

使用頂層金屬網絡


使用頂層金屬網絡設計,提升入侵難度。所有的網格都用來監控短路和開路,一旦觸發,會導致存儲器復位或清零。如圖:

如何防止破解?MCU加密技術進化史的圖4

普通的MCU不會使用這種保護方法,因為設計較難,且在異常運行條件下也會觸發,如:高強度電磁場噪聲,低溫或高溫,異常的時鐘信號或供電不良。故有些普通的MCU使用更廉價的偽頂層金屬網格,會被非常高效的光學分析進行微探測而被攻擊。

另外,這些網格不能防范非侵入式攻擊。同樣不能有效防范半侵入式攻擊,因為導線之間有電容,并且光線可以通過導線抵達電路的有效區域。在智能卡中,電源和地之間也鋪了一些這樣的網格線。部分可編程的智能卡走得更遠,干脆砍掉了標準的編程接口,甚至干掉了讀取EEPROM接口,取而代之的是啟動模塊,可以在代碼裝入后擦掉或者屏蔽自己,之后只能響應使用者的嵌入軟件所支持的功能。有效地防范了非侵入式攻擊。

07

智能卡芯片安全設計


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


如何防止破解?MCU加密技術進化史的圖5

數據以密文方式存儲在存儲器中。即使入侵者獲得數據總線的數據,也不可能知道密鑰或者別的敏感信息(如數據還原方法)。這種保護措施有效地防范了侵入式和半侵入式攻擊。

有些智能卡甚至能夠做到每張卡片總線加密密鑰不同,這樣即使入侵者完全破解了,也無法生產出相同功能的芯片來,因為每個智能卡芯片有唯一的ID號,無法買到相同ID號的智能卡。

另外值得一提的是,有些智能卡將標準的模塊結構如解碼器,寄存器文件,ALU和I/O電路用類似ASIC邏輯來設計。這些設計成為混合邏輯(Gle Logic)設計。

混合邏輯使得實際上不可能通過手工尋找信號或節點來獲得卡 的信息進行物理攻擊。 大大提高了CPU內核的性能和安全性。 混合邏輯設計幾乎不可能知道總線的物理位置,有效地 防范了反向工程和微探測攻擊。

08

智能卡芯片加密方案優缺點


對于開發者來講,選擇更為安全設計的微控制器或可以得到更好的保護。與大多數微控制器相比,即使是十年前設計的智能卡也能提供更好的保護。現代的智能卡提供了更多的防攻擊保護,內部電壓傳感器保護免受電源噪聲攻擊(Power Glitch attacks)、過壓和欠壓保護。

時鐘頻率傳感器防止受到靜態分析(Static analysis)的降低時鐘頻率攻擊;同時也可以防止時鐘噪聲(Clock glitch attacks)進行提高時鐘頻率的攻擊。頂層金屬網格和內部總線硬件加密可以防止微探測攻擊。

但是,與微控制器相比,智能卡芯片也有劣勢,如:芯片價格昂貴,小批量的很難買到貨。開發工具昂貴,需要和制造商簽署保密協議,即使是說明書也要這樣。很多制造商僅向特定客戶銷售大批量的智能卡。

另一個不足是I/O的功能受限,普通智能卡芯片通常只有ISO7816接口,極少有單獨的I/O口。


這使得多數應用中不能取代微控制器,而只能用于安全要求非常高的行業,如:付費機頂盒, 銀  行  卡 ,SIM卡,二代  身  份  證  ,高端加密芯片等領域。智能卡芯片在加密芯片領域的應用,將是個不錯的方向。因為智能卡芯片安全等級高,IO資源少。

而普通MCU的硬件資源非常豐富,安全程度卻不高,可以將MCU中一些關鍵算法及運行參數,以特殊形式存放在智能卡芯片中,從而實現高安全強度的強大功能。

09

后記


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


登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP