四、加密芯片的軟件安全性
在加密芯片硬件不可破解的基礎(chǔ)上,我們?cè)僬務(wù)劶用苄酒能浖桨浮<用苄酒?理硬件不可破解后,并不是就萬事大吉了,軟件設(shè)計(jì)的好壞,同樣會(huì)影響到整套方案的 安全。加密芯片的軟件工作原理,我分為三個(gè)類型:1. 真值點(diǎn)判斷類型; 2. 數(shù)據(jù)加解 密類型; 3. 功能運(yùn)算類型。下面列舉一些簡單的例子,解釋其軟件工作原理。
1. 真值點(diǎn)判斷工作模式
主控 MCU 在工作時(shí),判斷一下外部的加密芯片是否合法,然后決定自身是否要正 常工作,我把這一類加密芯片工作方式,統(tǒng)稱為真值點(diǎn)判斷類型。
這類判斷加密芯片是否合法的方式有:PIN 碼驗(yàn)證,對(duì)稱算法運(yùn)算(AES,DES 等), 非對(duì)稱算法運(yùn)算(RSA,ECC 等),散列算法(HMAC-MD5, HMAC-SHA,HMAC-SM3 等), 挑戰(zhàn)碼方式(如 ATMEL 的 AT88SC 系列芯片)……
真值點(diǎn)判斷方式,操作簡單,對(duì)主控芯片原有代碼改動(dòng)較小。加密芯片提供者甚至 可以提供簡單配置一下密鑰,就能工作起來。但這類方式有個(gè)致命弱點(diǎn),如果侵入者將 主控 MCU 的代碼,反匯編,并作改動(dòng)就可以繞過加密芯片,實(shí)現(xiàn)破解。如下面的反匯 編代碼中,將 C:0x0420 地址代碼,改成直接挑磚指令:SJMP 0x042C,將完美繞過加密 芯片。
所有這類型工作方式,都存在被破解的可能性,破解難度取決于找到對(duì)應(yīng)真值點(diǎn)的 位置,一旦找到,整套方案就被破解了。
圖 4:加密芯片工作在真值點(diǎn)判斷模式下的原代碼