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