使用NEC單片機(jī)保護(hù)您的設(shè)計(jì)
如今,一款新產(chǎn)品剛推出不久,市場上往往就會(huì)出現(xiàn)仿冒的產(chǎn)品,給先期研發(fā)的企業(yè)和個(gè)人造成知識產(chǎn)權(quán)的侵犯和經(jīng)濟(jì)利益的損害。作為工程師,在產(chǎn)品設(shè)計(jì)初期應(yīng)該盡量考慮到產(chǎn)品被抄襲的可能,選擇一款具有良好保密性的單片機(jī)并對單片機(jī)系統(tǒng)進(jìn)行加密設(shè)計(jì),防止競爭對手的抄襲。
本文引用地址:http://butianyuan.cn/article/172999.htm破解單片機(jī)程序的方法
對單片機(jī)內(nèi)的程序竊取主要有兩種方法:侵入式和非侵入式。侵入式的方法是破壞芯片的封裝,并利用半導(dǎo)體測試設(shè)備、顯微鏡和微定位器等儀器找到芯片內(nèi)保護(hù)熔絲的位置并將其擦除,使其變成未經(jīng)加密的芯片,然后用編程器將程序讀出,或者直接將探針放在芯片內(nèi)部總線上讀出存儲器中的程序。非侵入式的方法是利用芯片設(shè)計(jì)或芯片編程時(shí)序中的某些漏洞對芯片進(jìn)行解密,例如針對早期的AT89C系列芯片在擦除操作時(shí)序設(shè)計(jì)上的漏洞,使用自編程序在擦除加密鎖定位后停止下一步擦除片內(nèi)程序存儲器數(shù)據(jù)的操作,從而使加密的單片機(jī)變成沒加密似的,然后利用普通編程器就可讀出片內(nèi)的程序了。
可以看到,使用侵入式的解密方法需要使用昂貴的設(shè)備,并且需要花費(fèi)較長的時(shí)間,其解密成本較高;而使用非侵入式的解密方法需要的設(shè)備相對較廉價(jià),只要能找出芯片設(shè)計(jì)中的漏洞就有可能實(shí)現(xiàn)解密,但是需要解密者有深厚的專業(yè)知識。
圖1:NEC 78K系列單片機(jī)的保密功能。
NEC單片機(jī)的保密設(shè)計(jì)
理論上來說,單片機(jī)的程序不可能做到百分之百的保密,對單片機(jī)程序進(jìn)行加密只是為了提高破解成本。當(dāng)一個(gè)產(chǎn)品的破解成本高到和自主設(shè)計(jì)一個(gè)相同產(chǎn)品的成本相當(dāng)?shù)臅r(shí)候,便沒人會(huì)有興趣破解此產(chǎn)品。
產(chǎn)品設(shè)計(jì)中,為了避免增加外圍硬件從而增加產(chǎn)品成本,產(chǎn)品軟件的保密通常主要依靠所選用單片機(jī)的保密性來保證,因此選用一款保密性良好的單片機(jī)來提高抄襲者的破解成本就顯得尤為重要。NEC(日電電子)在其FLASH型的78K系列單片機(jī)中設(shè)計(jì)了充足的保護(hù)措施來保證單片機(jī)程序代碼的安全。
通常除了開發(fā)者的原因外,單片機(jī)程序目標(biāo)文件的泄露無外乎三個(gè)原因:1.量產(chǎn)時(shí)程序燒寫過程中目標(biāo)文件被竊??;2.產(chǎn)品上市后被竊密者拿到,利用侵入式或非侵入式的方法獲取單片機(jī)內(nèi)的目標(biāo)文件;3.使用BootLoader程序通過串口、CAN接口等進(jìn)行產(chǎn)品現(xiàn)場升級時(shí)應(yīng)用程序目標(biāo)文件被竊取。
圖2:量產(chǎn)編程器的加密設(shè)置。
量產(chǎn)編程時(shí)的程序保密
第三方為NEC設(shè)計(jì)的量產(chǎn)編程器FL-G03可以支持對8片芯片的同時(shí)燒寫。開發(fā)工程師使用128位密鑰將原始HEX文件加密,并將該密鑰固化到編程中用于燒寫時(shí)的解密,工程師還可在編程器上設(shè)置燒寫芯片的數(shù)量限制,然后將編程器和加密過的HEX文件提供給程序燒寫人員。這樣避免了其它人員接觸原始HEX文件,且最多只能燒寫設(shè)定數(shù)量的芯片。
圖3:即使保密位被破壞也無法讀出程序。
防止侵入式和非侵入式的程序竊取
侵入式的破解方法可以將加密過的芯片變成非加密的芯片,然后用編程器讀出程序,當(dāng)然也可以用探針從芯片內(nèi)部總線讀取程序,但這樣做的成本相當(dāng)之高;非侵入式的破解方法最后一般都要通過編程器將程序讀出。NEC的78K系列單片機(jī)沒有PROGRAM READ功能,因此無法利用編程器將程序讀出。(注:用編程器給芯片編程時(shí)的校驗(yàn)功能并不是將程序讀出來進(jìn)行校驗(yàn),而是編程器將數(shù)據(jù)送給芯片,由芯片內(nèi)核獨(dú)立完成與存儲區(qū)數(shù)據(jù)的比較,然后將比較結(jié)果返回給編程器)。
圖4:使用加密的目標(biāo)文件進(jìn)行現(xiàn)場升級。
評論