如何防止破解?MCU加密技術進化史
自從上世紀70年代MCU誕生以來,芯片的破解技術與防止芯片被破解方案就在不斷地上演著“道高一尺,魔高一丈”,一山更比一山高的追逐。
本文將單片機在安全保護方面的發展歷程與大家分享,并在文章的最后,總結了現階段安全級別最高的智能卡芯片的優點及其缺點。
單板機時代
上世紀70年代初期,嵌入式系統是由分離部件如:CPU、ROM、RAM、I/O緩存、串口和其他通信與控制接口組成的控制板。
這一時期除法律外,幾乎沒有保護措施來防止侵入者復制單板機上ROM區的數據。
單片機時代
隨著大規模集成電路技術的發展,中央處理單元(CPU)、數據存儲器(RAM)、程序存儲器(ROM)及其他I/O通信口都集成在一塊單片機芯片上了,微控制器MCU取代了單板機。如圖:
安全熔斷絲
隨著入侵者的增加,MCU為了自身的安全,后來增加了安全熔斷絲(Security Fuse)來禁止訪問數據。如圖:
安全熔絲變成存儲器陣列的一部分
再后來MCU制造商將安全熔絲做成存儲器陣列的一部分,如圖:
用主存儲器的一部分來控制外部對數據訪問
利用上電時鎖定特定區域地址的信息,將它作為安全熔絲。或用密碼來控制對存儲器訪問。例如:德州儀器的MSP430F112只有輸入正確的32字節密碼后才能進行回讀操作。
如果沒輸入,只有擦字節密碼后才能進行回讀操作。盡管這個保護方法看上去比先前的更有效,但它有一些缺點可以用低成本的非侵入式攻擊,如時序分析和功耗來破解。
如果安全熔絲狀態是上電或復位后存儲器的一部分,這就給破解者用電源噪聲來破解的機會,強制路進入存儲中錯誤狀態。
使用頂層金屬網絡
使用頂層金屬網絡設計,提升入侵難度。所有的網格都用來監控短路和開路,一旦觸發,會導致存儲器復位或清零。如圖:
智能卡芯片安全設計
近些年,一些智能卡使用存儲器總線加密(Bus Encryption)技術來防止探測攻擊。如圖:
智能卡芯片加密方案優缺點
對于開發者來講,選擇更為安全設計的微控制器或可以得到更好的保護。與大多數微控制器相比,即使是十年前設計的智能卡也能提供更好的保護。現代的智能卡提供了更多的防攻擊保護,內部電壓傳感器保護免受電源噪聲攻擊(Power Glitch attacks)、過壓和欠壓保護。
時鐘頻率傳感器防止受到靜態分析(Static analysis)的降低時鐘頻率攻擊;同時也可以防止時鐘噪聲(Clock glitch attacks)進行提高時鐘頻率的攻擊。頂層金屬網格和內部總線硬件加密可以防止微探測攻擊。
但是,與微控制器相比,智能卡芯片也有劣勢,如:芯片價格昂貴,小批量的很難買到貨。開發工具昂貴,需要和制造商簽署保密協議,即使是說明書也要這樣。很多制造商僅向特定客戶銷售大批量的智能卡。
另一個不足是I/O的功能受限,普通智能卡芯片通常只有ISO7816接口,極少有單獨的I/O口。
這使得多數應用中不能取代微控制器,而只能用于安全要求非常高的行業,如:付費機頂盒, 銀 行 卡 ,SIM卡,二代 身 份 證 ,高端加密芯片等領域。智能卡芯片在加密芯片領域的應用,將是個不錯的方向。因為智能卡芯片安全等級高,IO資源少。
而普通MCU的硬件資源非常豐富,安全程度卻不高,可以將MCU中一些關鍵算法及運行參數,以特殊形式存放在智能卡芯片中,從而實現高安全強度的強大功能。
后記
堅持不懈的嘗試突破保護機制的破解團體和不斷引入新的安全防范方案的制造商之間的斗爭是沒有盡頭的。“道高一尺,魔高一丈”,又或是“邪不壓正”,將不停地在兩派之間上演!
工程師必備
- 項目客服
- 培訓客服
- 平臺客服
TOP




















