嵌入式通用MCU多數(shù)不具備安全防護(hù)機制,因此越來越多的人采用MCU + 加密芯片的方案來實現(xiàn)對MCU中代碼的保護(hù)。這里有個誤區(qū),使用加密芯片并不會直接對MCU中代碼做加密防護(hù),只是多了一道防破解的功能,而加密芯片中的加密二字是個概念,主要因為其在產(chǎn)品中起到了防護(hù)作用,且自身有加密功能,故簡稱加密芯片。 本次針對已經(jīng)使用了加密芯片的用戶做特別說明,要想達(dá)到更安全的效果,一定不能忽略MCU端的編程細(xì)節(jié)。加密芯片作為從設(shè)備,會接收MCU發(fā)出的指令并返回相應(yīng)的數(shù)據(jù)。不論加密芯片返回的數(shù)據(jù)是否進(jìn)行了線路加密,但在MCU端處理后最終都將以“明文”形態(tài)出現(xiàn),這就要求編程者小心使用該“明文”。應(yīng)注意以下細(xì)節(jié): 1、“明文”不要存儲在連續(xù)的內(nèi)存地址上 2、“明文”盡量參與更多的程序處理環(huán)節(jié) 3、 如果可以,“明文”要做到每次變化 4、“明文”使用完成后要馬上銷毀,不在內(nèi)存中存留。銷毀的方法有很多種,例如將“明文”重新賦值,變成新的干擾數(shù)據(jù),或者重新置零。否則容易被跟蹤竊取。有很多盜版人員都是通過這種方法對MCU進(jìn)行帶電分析,從ram中獲取到很多重要數(shù)據(jù),從而實現(xiàn)了對MCU的破解。
|