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