一、加密方案選擇
1、對比認(rèn)證(身份認(rèn)證)
實(shí)現(xiàn)原理:MCU和加密芯片兩端在出廠階段分別設(shè)置一條相同的認(rèn)證密鑰。在運(yùn)行階段,MCU端和加密芯片端基于對稱加密算法對同一組隨機(jī)數(shù)加密后產(chǎn)生兩組密文,最后在MCU端進(jìn)行比對,只有結(jié)果一致后,認(rèn)證才能通過。
安全性:安全性偏低。通過對主板MCU的剖片分析,破解者可以拿到程序,反匯編之后繞過MCU中的認(rèn)證對比部分代碼(屏蔽掉對比點(diǎn)),然后將程序重新下載到MCU中即完成破解。此方案不論加密芯片自身的安全等級多高,整個系統(tǒng)的弱點(diǎn)在于MCU端,而該方案并不能提升MCU的安全等級,所以防盜版效果偏低。
2、數(shù)據(jù)安全存儲(參數(shù)保護(hù))
實(shí)現(xiàn)原理:在開發(fā)階段將MCU存儲的一些參數(shù)和數(shù)據(jù)刪除,將其轉(zhuǎn)移到加密芯片中存儲。在出廠階段,將參數(shù)和數(shù)據(jù)寫入到加密芯片中。應(yīng)用階段,當(dāng)MCU需要使用這部分缺失的參數(shù)時(shí),通過IIC/UART等通信接口與加密芯片交互,讀回參數(shù)和數(shù)據(jù)(明文、固定密文或變化的密文)。
安全性:如果MCU與加密芯片通信線路上傳遞的是明文參數(shù),則沒有安全性。如果傳遞的是固定密文,也沒有安全性,因?yàn)槊芪谋唤孬@后,通過一個單片機(jī)就能輕松模擬出與加密芯片同樣的通信時(shí)序欺騙MCU。只有傳遞隨機(jī)變化的密文參數(shù),才能起到防御線路重放攻擊,保護(hù)參數(shù)安全的效果。
3、算法移植方案(推薦)
實(shí)現(xiàn)原理:在開發(fā)階段把MCU端一部分程序刪除掉,將其轉(zhuǎn)移到加密芯片中編程實(shí)現(xiàn)。在應(yīng)用階段,當(dāng)MCU端程序運(yùn)行到這部分缺失的程序時(shí),發(fā)送指令給加密芯片,后者運(yùn)行程序后,將運(yùn)行結(jié)果返回給MCU端使用。
安全性:這一方案相較前兩種安全等級高很多。因?yàn)樗嬲鉀Q了MCU沒有安全性的短板。整個系統(tǒng)的弱點(diǎn)是MCU端,里面的程序和數(shù)據(jù)都有可能被暴露分析,本方案巧妙的一點(diǎn)是雖然沒辦法直接對MCU進(jìn)行安全加固,但是引導(dǎo)破解人員去攻擊安全等級非常高的加密芯片。
4、混合加密方案(推薦)
實(shí)現(xiàn)原理:將對比認(rèn)證、數(shù)據(jù)存儲、算法移植方案結(jié)合起來使用,就形成了混合加密方案。
安全性:此方案結(jié)合了各單一方案的優(yōu)點(diǎn),因此安全性最高,破解難度最大。