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