產(chǎn)品在出廠后往往都會對芯片進(jìn)行軟硬件加密,要想山寨產(chǎn)品需要破解芯片,然而對已加密的芯片進(jìn)行解密,一般需要拆解芯片,分析其內(nèi)部總線結(jié)構(gòu),破解周期長,費用昂貴。但很多時候代碼往往是在生產(chǎn)時泄漏的,本文將介紹如何在生產(chǎn)時防止代碼泄漏。
有很多企業(yè)在產(chǎn)品研發(fā)完成后,一般選擇代工廠進(jìn)行批量生產(chǎn),代碼的安全性尤為重要。為了避免工廠直接接觸代碼,一般會在編程器上建立加密工程,對燒錄文件進(jìn)行加密保護(hù),再將加密后的工程發(fā)給代工廠生產(chǎn),杜絕了文件被直接泄漏的可能。
圖1 工程加密
傳統(tǒng)的燒錄方式為擦除—編程—校驗—加密,該方式可以保障芯片在燒錄完成后處于加密狀態(tài),在一定程度上杜絕了代碼泄漏的可能性,但并非無懈可擊,只要一個小動作就可以輕易盜取芯片內(nèi)部的代碼,例如,燒錄執(zhí)行完擦除—燒寫后,在校驗的時候?qū)遄?芯片)從編程器的連接中斷開,使燒錄沒有執(zhí)行到加密階段,此時的芯片處于燒寫完成但未加密的狀態(tài),隨便一個編程器就可以讀取其內(nèi)部的代碼,從而導(dǎo)致代碼泄漏。
圖2 傳統(tǒng)燒錄方式
為了解決這個問題,P800isp編程器提供了靈活編輯的組合配置,組合中的操作可以任意增減、調(diào)整執(zhí)行順序。為了避免生產(chǎn)中代碼泄漏,可以將組合順序調(diào)整為擦除—加密—編程—校驗,在編程之前先加密,這樣可以保證編程完成后,芯片一旦發(fā)生復(fù)位(或掉電),加密就會生效,禁止讀取內(nèi)部代碼。當(dāng)然,該方式也需要芯片本身的支持,有些芯片一旦執(zhí)行加密,就會立即生效,如MicroChip的PIC系列芯片、ATMEL的ATSAM4C系列芯片等等,只能使用傳統(tǒng)的燒錄方式。
圖3 自定義安全加密方式