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