防芯片解密方法

發表時間:2020-09-02 13:15:39 人氣:712

芯片解密與防解密一直處于相互斗智斗勇的狀態;成都子程電子推薦幾種防破解方法:更改芯片可識別外表標識、多級和多點保護、燒斷讀寫電路以及破壞測試端口、智能卡和防篡改保護、異步邏輯。


更改芯片可識別外表標識

不印芯片型號,更改索引芯片型號和重新封裝,這是一種較為簡單初級的防解密手段。


多級和多點保護

在產品中使用不同的安全特性可以達到相對好的保護。與使用一個熔絲相比,使用多個熔絲可以提升微控制器的安全性。例如:在PIC16F84中,單個安全熔絲控制對程序和數據的讀寫。在PIC16F628中,兩個熔絲決定對程序存儲器的訪問,數據存儲器使用單獨的安全熔絲。熔絲的位置彼此距離較遠,使得缺陷注入攻擊異常困難。


燒斷讀寫電路以及破壞測試端口

把普通MCU編程用的某些引腳燒斷是增加破解成本的一個極為有效的方法。大多微控制器是被破解者屏蔽掉安全熔絲后自由讀寫存儲器的。燒斷其中的一個引腳后,即使安全熔絲被除去,也可阻止外部訪問存儲器。同時,在很多基于閃存的微控制器可以通過用戶代碼區的啟動模塊來更新程序,無需外部并行燒寫器。在燒斷之前就把啟動模塊寫入,燒斷后不影響程序的升級。

燒斷的方法很簡單,加電壓,不論正負,大約是欲燒斷引腳所能承受的最大值,就會有約1A的電流通過。這會造成連到該引腳的晶體管永久的損壞:高端的正電壓損壞的是PMOS,低端的負電壓損壞的是NMOS。

因為燒斷會導致內部結構和鈍化層的損傷,在大批量生產中不太適合。芯片的參數會隨著時間的流逝而變化,因為水和空氣會緩慢的從損傷處滲進芯片,導致芯片性能的劣化。如功耗偏大,壽命縮短,抗ESD電壓下降。

高壓燒過的芯片引出線焊點。左側是打開封裝后的照片,右側是化學腐蝕后的照片。200X。黑色的是碳化后的封裝樹醋。


智能卡和防篡改保護

智能卡為芯片提供多種防攻擊保護,內部電壓傳感保護免受電源噪聲攻擊的過壓和欠壓。時鐘頻率傳感器防止受到靜態分析的降低時鐘頻率攻擊。同時也可防止時鐘噪聲進行提高時鐘頻率的攻擊。芯片上的隨機數發生器使得對密碼進行攻擊很困難。頂層金屬網格和內部總線硬件加密。光傳感器從功能上防止打開芯片的封裝。訪問內部存儲器需要密碼。多種層次的保護使得芯片很難被解密。


異步邏輯

自同步雙線邏輯是最近才發展起來的防破解技術。傳統的數字邏輯使用一個時鐘來同步操作。但時鐘速度的上升使之變得更復雜,這就導致不用時鐘的自同步或異步電路設計的興起。一種方法是在數據線上使用冗余技術。在雙線邏輯中,信號0或1不再是單根線上的高或低電壓,而是一對線上信號的組合。例如0可能是LH,1可能是HL。使用自同步電路時,LL信號表示靜止。這些簡單排列的主要缺點是很脆弱:電路缺陷會導致出現不想要得HH狀態,它會通過電路迅速蔓延并鎖住元器件。

一種創新是利用這個缺陷,將HH看作錯誤信號。這個信號可以通過篡改傳感器來獲得,導致元器件鎖定。更感興趣的是元器件的失效會阻止敏感信息的輸出,在將來可能是高安全等級的元器件所要求的。

雙線編碼的另一個進展是減少功率消耗,使所有狀態有同樣的權重。雙線編碼不能充分保證數據獨立于功率信號,不同的線路負荷會有不同的結果,這個可以通過版圖布局來控制。自同步設計可以抵抗時鐘噪聲攻擊。如果串口需要時鐘,用敏感電路分離出時鐘是相對容易的。電源噪聲攻擊對異步電路很少能夠成功,但是如EEPROM之類的就不能受到保護,可能會被破解。

雙線設計可以可靠地從篡改傳感器得到報警信號,并且阻止元器件運行。結果可以是刪除敏感數據并發出全局報警,這可以防止缺陷注入攻擊。為了獲得成功,破解者必須同時注入兩個失效狀態,使傳輸線的狀態從LH切換到HL,這會導致傳輸線瞬間進入HH狀態并且立即觸發報警電路。


此文關鍵字: 芯片解密