|
因為主MCU比較容易被破解所以才使用加密芯片,那么主MCU開發時也可以通過以下的一些小技巧來增加主芯片被分析破解的難度,比如: - 主MCU訪問ID或隨機數因子時,盡量不要使用常量直接訪問目的地址,可以使用一個假地址再通過變量異或、加減或其他算法來得到目的地址,以防止破解者輕易找到這個地址來竄改。
- 程序里確保每次產生的隨機數只能使用一次,使用后隨機數失效,下次要使用隨機數必須重新產生;程序對收到的外設發來的隨機數做一定次數的緩存,如果隨機數有重復,做一些特殊處理,防反復跟蹤解析。可參考《淺談加密芯片的一種破解方法和對應加密方案改進設計》
- 秘鑰值盡量不要連續存放在一個常量或變量數組里,盡量分開存放,使用前通過一些算法計算再組成正確的秘鑰值。
- 主MCU程序做完整性校驗,完整性校驗綁定UID,防止主MCU程序被破解者破解得到后竄改來跟蹤、分析、破解。上面講的破解方法就是利用主MCU沒有做程序完整性校驗來固定ID和隨機數從而輕易破解的,如果有完整性校驗,破解難度就會增加。
- 設計加密方案時盡量不要使用判斷正確就繼續執行錯誤就報錯這種簡單的判斷邏輯,可以設計成錯誤后繼續執行,只是在后續執行過程中在不特定的地方出不特定的錯誤。
- 加密方案里使用的一些校驗算法、加解密算法等,盡量不是用標準算法,可以使用這些算法的變異算法。
|
|