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