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