在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

淺談加密芯片的一種破解方法和對(duì)應(yīng)加密方案改進(jìn)設(shè)計(jì)

jfm365 ? 來(lái)源:jfm365 ? 作者:jfm365 ? 2025-02-24 10:39 ? 次閱讀

目前市面上很多防抄板加密方案都是基于加密芯片的安全存儲(chǔ)和密文通訊來(lái)實(shí)現(xiàn)對(duì)主MCU方案的保護(hù)。比如把主MCU用到的一些參數(shù)、配置信息等存儲(chǔ)在加密芯片里面,然后通過(guò)芯片的ID、隨機(jī)數(shù)R等因子使用加密秘鑰Key計(jì)算臨時(shí)過(guò)程秘鑰Key’,再使用臨時(shí)過(guò)程秘鑰Key’對(duì)數(shù)據(jù)做加解密和密文通訊,這樣來(lái)做到每一顆芯片、每一次通訊的加密數(shù)據(jù)都是不一樣,防止數(shù)據(jù)在通訊線路上被破解。

wKgZO2dlFn6AW1FhAAFywgRJVVo394.png

如上圖,主MCU函數(shù)FUNC調(diào)用是的一些關(guān)鍵參數(shù)或數(shù)據(jù)Data沒(méi)有存儲(chǔ)在主MCU中,而是存儲(chǔ)在加密芯片里,主MCU要正確運(yùn)行函數(shù)FUNC需要使用到加密芯片里的Data數(shù)據(jù),這就需要先從加密芯片將Data數(shù)據(jù)讀取到主MCU。程序員為了增加加密方案可靠度,設(shè)計(jì)成讓主MCU的芯片序列號(hào)ID1、產(chǎn)生的隨機(jī)數(shù)R1和加密芯片的芯片序列號(hào)ID2、產(chǎn)生的隨機(jī)數(shù)R2參與計(jì)算臨時(shí)過(guò)程秘鑰,加密芯片使用秘鑰Key對(duì)(ID1⊕RAND1⊕ID2⊕RAND2)這些因子運(yùn)算得到臨時(shí)過(guò)程秘鑰Key’,再使用Key’對(duì)數(shù)據(jù)Data做加密得到密文數(shù)據(jù)Data’。主MCU在收到密文數(shù)據(jù)Data’和ID2和R2后,使用同樣的方法計(jì)算得到臨時(shí)過(guò)程秘鑰Key’,在使用Key’對(duì)密文數(shù)據(jù)Data’解密得到明文數(shù)據(jù)Data。主MCU的FUNC調(diào)用Data后程序就能正常使用了。

上述加密方案貌似安全可靠,但實(shí)際上對(duì)于經(jīng)驗(yàn)豐富的黑客來(lái)說(shuō)破解難度不大。

首先我們分析該方案最重要的技術(shù)點(diǎn)就是加解密使用的臨時(shí)秘鑰的因子由主MCU芯片和加密芯片的雙方的ID和隨機(jī)數(shù)參與,使得每次通訊線路上的密文都是變化的。但是主MCU反匯編程序和ID1、R1、Data’、ID2、R2還是很容易得到的,那么只要我們想辦法讓主MCU密文讀數(shù)據(jù)時(shí)固定發(fā)ID1和R1就行了,這時(shí)主MCU解密假加密芯片回的固定密文數(shù)據(jù)Data’是可以得到正確明文數(shù)據(jù)Data的。

實(shí)現(xiàn)上述破解方式的前提條件是主MCU的程序BIN或HEX碼是通過(guò)破解可以得到的,目前主流大多數(shù)MCU都是可以破解的,有很多專(zhuān)業(yè)的公司或團(tuán)體做這方面的服務(wù)。拿到破解得到的BIN或HEX碼后,接下來(lái)我們分兩步走來(lái)實(shí)現(xiàn)破解主MCU和加密芯片的聯(lián)動(dòng)的整體加密方案,分別是固定主MCU的ID1和隨機(jī)數(shù)R1。下面以STM32來(lái)模擬解析整個(gè)破解過(guò)程。

芯片的唯一ID一般都是存儲(chǔ)在一個(gè)固定地址上連續(xù)存放的,知道芯片型號(hào)后這個(gè)ID1的存放地址很容易得到,我們?cè)贖EX碼中很容易得到這個(gè)地址。比如STM32的UID地址在0x1FFFF7E8(小端模式),這時(shí)我們?cè)贖EX碼中搜索E8F7FF1F(大端模式),如果找不到,可能是因?yàn)榫幾g優(yōu)化了,可以嘗試搜索高3字節(jié)F7FF1F或其中幾個(gè)字節(jié),很容易就找到這個(gè)關(guān)鍵字,這時(shí)你只需要把HEX碼這個(gè)位置的UID地址值改成你的設(shè)定的Flash地址值0x00005000,再在這個(gè)地址上寫(xiě)上你的ID(比如1122334455667788)就能實(shí)現(xiàn)你想要的ID1值了。如下圖:

wKgZPGdlFpWAZOIxAAY_IeRnzEo231.png

固定隨機(jī)數(shù)相對(duì)于ID有些難度,如果有隨機(jī)數(shù)發(fā)生器,那么把隨機(jī)數(shù)發(fā)生器產(chǎn)生隨機(jī)數(shù)值的地址改成你的固定地址,方法可以完全參照上面固定ID值得方法。如果沒(méi)有隨機(jī)數(shù)發(fā)生器,無(wú)非也是使用ACDC等值作為因子,然后配合srand產(chǎn)生隨機(jī)數(shù),想辦法在產(chǎn)生隨機(jī)數(shù)前把這些因子固定,那么主MCU的隨機(jī)數(shù)也可以做到的特定時(shí)間特定的代碼處產(chǎn)生的隨機(jī)數(shù)也是固定值。這個(gè)需要破解者有一定的反匯編能力,想辦法找到這些作為隨機(jī)數(shù)發(fā)生因子寄存器,用上述一樣的方法把這些調(diào)用的地方改成你的固定的Flash地址,并在這個(gè)地址上寫(xiě)上你的目標(biāo)值。如下產(chǎn)生隨機(jī)數(shù)因子的樣例:

wKgZO2e72QWAYsGgAAMkDbV_fWY358.png

我們只需要在HEX里找到ADC1.DR的地址,把他改到一個(gè)固定的FLASH地址就可以了。如果找不到ADC1.DR的地址,可以嘗試去找ADC1的地址(0x40012400),把ADC1的地址改到一個(gè)固定地址(0x00005000),這樣就可以把該處調(diào)用ADC1產(chǎn)生隨機(jī)數(shù)因子的功能失效,這樣每次程序運(yùn)行時(shí)在該處調(diào)用ADC1產(chǎn)生的隨機(jī)數(shù)因子是固定值,以達(dá)到固定每次產(chǎn)生隨機(jī)數(shù)的值。

wKgZO2dlFyKAVkdXAAZUE4u3PWU782.png

通過(guò)上述方式把STM32的ID1和隨機(jī)數(shù)R1固定后,把新的HEX或BIN文件燒入到一顆新的STM32芯片,并把芯片貼裝的裝有原裝加密芯片的目標(biāo)板上,目標(biāo)板工作后,在線路上監(jiān)控通訊數(shù)據(jù),得到ID1,R1,ID2,R2和密文數(shù)據(jù)Data’。

得到數(shù)據(jù)后,再開(kāi)發(fā)一顆假加密芯片就可以了,假加密芯片收到的STM32發(fā)送固定的ID1和R1后只要回上述監(jiān)控得到的固定的ID2,R2和密文數(shù)據(jù)Data’就可以了,STM32收到ID2,R2和Data’后就可以解密得到正確的Data。破解者使用固定ID1、隨機(jī)數(shù)R1的HEX或BIN下載文件和自己制作的假加密芯片就可以批量生產(chǎn)破解的目標(biāo)板了。如下圖:

wKgZPGe72TeAeFayAAGUbkrwTdo290.png

看了上述破解方式后是不是覺(jué)得這種貌似很安全的加密方案很容易就破解了?事實(shí)就是現(xiàn)在很多破解公司對(duì)主流MCU和加密芯片的破解能力都很強(qiáng)大,特別是針對(duì)主流MCU的反匯編和對(duì)邏輯加密芯片。特別是針對(duì)邏輯加密芯片,加密方式就是固定的幾種方式,只要破解了一種方式,那么只要使用這種邏輯加密芯片和這種加密方式的產(chǎn)品都很容易破解,就像上述破解方式,破解者不需要去破解加密芯片,只需要通過(guò)固定ID和隨機(jī)數(shù)的方式就能繞開(kāi)加解密算法和秘鑰。如果那使用了上述加密方法的,趕緊去檢查下你的HEX或BIN下載碼吧,看看是不是自己就能輕松破解自己的方案了。。。

那么有沒(méi)有好的方法來(lái)保護(hù)產(chǎn)品呢,對(duì)于使用邏輯加密芯片的加密方案,開(kāi)發(fā)者可以通過(guò)以下的一些小技巧來(lái)增加被破解的難度,比如:

1、主MCU訪問(wèn)ID或隨機(jī)數(shù)因子時(shí),盡量不要使用常量直接訪問(wèn)目的地址,可以使用一個(gè)假地址再通過(guò)變量異或、加減或其他算法來(lái)得到目的地址,以防止破解者輕易找到這個(gè)地址來(lái)竄改。

2、程序里確保每次產(chǎn)生的隨機(jī)數(shù)只能使用一次,使用后隨機(jī)數(shù)失效,下次要使用隨機(jī)數(shù)必須重新產(chǎn)生。程序?qū)κ盏降耐庠O(shè)發(fā)來(lái)的隨機(jī)數(shù)做緩存,如果隨機(jī)數(shù)有重復(fù),做一些特殊處理,防反復(fù)跟蹤解析。

3、秘鑰值盡量不要連續(xù)存放在一個(gè)常量或變量數(shù)組里,盡量分開(kāi)存放,使用前通過(guò)一些算法計(jì)算再組成正確的秘鑰值。

4、主MCU程序做完整性校驗(yàn),完整性校驗(yàn)綁定UID,防止主MCU程序被破解者破解得到后竄改來(lái)跟蹤、分析、破解。上面講的破解方法就是利用主MCU沒(méi)有做程序完整性校驗(yàn)來(lái)固定ID和隨機(jī)數(shù)從而輕易破解的,如果有完整性校驗(yàn),破解難度就會(huì)增加。

5、設(shè)計(jì)加密方案時(shí)盡量不要使用判斷正確就繼續(xù)執(zhí)行錯(cuò)誤就報(bào)錯(cuò)這種簡(jiǎn)單的判斷邏輯,可以設(shè)計(jì)成錯(cuò)誤后繼續(xù)執(zhí)行,只是在后續(xù)執(zhí)行過(guò)程中在不特定的地方出不特定的錯(cuò)誤。

6、加密方案里使用的一些校驗(yàn)算法、加解密算法等,盡量不是用標(biāo)準(zhǔn)算法,可以使用這些算法的變異算法。

通過(guò)上述方式,設(shè)計(jì)的加密方案被破解的難度會(huì)大大提高。但是現(xiàn)在有很多專(zhuān)業(yè)的破解團(tuán)隊(duì),對(duì)主流芯片的反匯編能力超強(qiáng),反匯編后還提供C代碼服務(wù)供破解者二次開(kāi)發(fā),上述加密方式通過(guò)超強(qiáng)的反匯編能力,還是可以做到破解的,只是代價(jià)會(huì)大大提高。那有沒(méi)有更加安全的加密方式呢?答案是有的,那就是采用編程加密芯片

可編程加密芯片可以理解成一種安全MCU,采用智能卡安全核,芯片本身安全可靠。可編程加密芯片除了擁有邏輯加密芯片的功能外還具有可編程功能。把主MCU的部分功能或算法放到可編程加密芯片里去運(yùn)行,比如主MCU里有原來(lái)一個(gè)計(jì)算一個(gè)圓的面積的功能,這時(shí)我們把計(jì)算圓的面積的功能代碼放到加密芯片里去,主MCU需要計(jì)算面積時(shí),只需要把半徑r傳遞給加密芯片,加密芯片收到半徑r后自己運(yùn)算圓的面積S=πr2,然后把面積S返回給主MCU就可以了。這種方案相當(dāng)于整個(gè)加密方案是雙MCU模式,即使主MCU被反匯編破解了,只要加密芯片安全可靠,破解者就無(wú)法得到計(jì)算圓面積的功能。使用這種可編程加密芯片的加密方案,破解者除了完全破解加密芯片的方法外,反匯編能力再?gòu)?qiáng)也無(wú)法破解整個(gè)加密方案,比使用邏輯加密芯片加密安全系數(shù)極大的提高。

目前市場(chǎng)上邏輯加密芯片比較多,可編程加密芯片比較少,像SMEC98SP、SMEC80ST,就屬于可編程加密芯片。

wKgZPGdlF5OANTt4AAFWCceFikc360.png


審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 加密芯片
    +關(guān)注

    關(guān)注

    3

    文章

    122

    瀏覽量

    24104
收藏 0人收藏

    評(píng)論

    相關(guān)推薦

    在STM32微控制器中實(shí)現(xiàn)數(shù)據(jù)加密方法

    和普通任務(wù),從而保護(hù)整個(gè)系統(tǒng)的安全。通過(guò)將加密算法、密鑰和敏感操作限制在安全區(qū)域執(zhí)行,可以減少被攻擊的風(fēng)險(xiǎn)。 · 使用MPU進(jìn)行內(nèi)存保護(hù): · · MPU是一種內(nèi)存訪問(wèn)控制硬件,它可以限制CPU對(duì)特定
    發(fā)表于 03-07 07:30

    加密芯片一種破解方法對(duì)應(yīng)加密方案改進(jìn)設(shè)計(jì)

    ? ? ? 本文用實(shí)例描述了如何破 解、解密使用邏輯加密芯片保護(hù)的STM32方案,包括如果固定ID和固定隨機(jī)數(shù)。后面提出了加強(qiáng)加密方案
    發(fā)表于 12-30 14:04 ?1次下載

    STM32配合可編程加密芯片SMEC88ST的防抄板加密方案設(shè)計(jì)

    。 ③主MCU程序做完整性校驗(yàn),完整性校驗(yàn)綁定UID,防止STM32程序被破解破解得到后通過(guò)竄改來(lái)跟蹤、分析、破解加密方案。(可參考筆者另
    發(fā)表于 12-27 13:03

    EMMC數(shù)據(jù)加密技術(shù)與應(yīng)用

    EMMC簡(jiǎn)介 EMMC(Embedded Multi Media Card)是一種高速、高性能的存儲(chǔ)解決方案,廣泛應(yīng)用于智能手機(jī)、平板電腦、數(shù)碼相機(jī)等移動(dòng)設(shè)備中。它具有體積小、功耗低、讀寫(xiě)速度快等
    的頭像 發(fā)表于 12-25 09:51 ?818次閱讀

    淺談加密芯片一種破解方法對(duì)應(yīng)加密方案改進(jìn)設(shè)計(jì)

    ,只要破解一種方式,那么只要使用這種邏輯加密芯片和這種加密方式的產(chǎn)品都很容易破解,就像上述
    發(fā)表于 12-20 15:31

    淺談加密芯片一種破解方法加密方案改進(jìn)設(shè)計(jì)

    破解一種方式,那么只要使用這種邏輯加密芯片和這種加密方式的產(chǎn)品都很容易破解,就像上述
    發(fā)表于 12-20 15:10

    加密算法的選擇對(duì)于加密安全有多重要?

    加密算法容易被破解,導(dǎo)致敏感數(shù)據(jù)泄露。 抗攻擊能力: 不同的加密算法對(duì)各種攻擊(如暴力破解、已知明文攻擊、選擇明文攻擊等)的抵抗力不同。選擇
    的頭像 發(fā)表于 12-17 15:59 ?362次閱讀

    常見(jiàn)的加密算法有哪些?它們各自的優(yōu)勢(shì)是什么?

    常見(jiàn)的加密算法及其優(yōu)勢(shì)如下: AES(Advanced Encryption Standard): AES是一種對(duì)稱(chēng)加密算法,采用分組密碼體制,支持128位、192位和256位密鑰長(zhǎng)度。AES的優(yōu)勢(shì)
    的頭像 發(fā)表于 12-17 15:57 ?583次閱讀

    加密核心是基于Rijndael AES-128,具有192位可編程參數(shù)的加密芯片

    加密芯片 - ALPU-C,該款加密芯片是ALPU系列中的高端IC,其加密核心基于RijntradAES-128,具有192位可編程參數(shù)。它
    的頭像 發(fā)表于 12-04 09:32 ?480次閱讀
    <b class='flag-5'>加密</b>核心是基于Rijndael AES-128,具有192位可編程參數(shù)的<b class='flag-5'>加密</b><b class='flag-5'>芯片</b>

    aes加密的常見(jiàn)錯(cuò)誤及解決方案

    AES(Advanced Encryption Standard,高級(jí)加密標(biāo)準(zhǔn))是一種對(duì)稱(chēng)加密算法,它使用固定長(zhǎng)度的密鑰對(duì)數(shù)據(jù)進(jìn)行加密。在使用AES
    的頭像 發(fā)表于 11-14 15:13 ?3500次閱讀

    UID加密安全啟動(dòng)原理分析

    原理 ZDP14x0系列芯片具有64位全球唯UID,基于UID實(shí)現(xiàn)加密可以保證程序移植到另個(gè)芯片無(wú)法運(yùn)行,詳細(xì)
    的頭像 發(fā)表于 11-11 11:49 ?873次閱讀
    UID<b class='flag-5'>加密</b>安全啟動(dòng)原理分析

    安卓APP開(kāi)發(fā)中,如何使用加密芯片?

    加密芯片一種專(zhuān)門(mén)設(shè)計(jì)用于保護(hù)信息安全的硬件設(shè)備,它通過(guò)內(nèi)置的加密算法對(duì)數(shù)據(jù)進(jìn)行加密和解密,以防止敏感數(shù)據(jù)被竊取或篡改。如下圖HD-RK35
    的頭像 發(fā)表于 10-31 17:43 ?767次閱讀
    安卓APP開(kāi)發(fā)中,如何使用<b class='flag-5'>加密</b><b class='flag-5'>芯片</b>?

    AG32 芯片保護(hù)與加密

    AG32 芯片保護(hù)與加密 代碼安全有兩方式: 一種是 Lock flash,個(gè)是代碼加密
    發(fā)表于 09-19 16:01

    淺談PUF技術(shù)如何保護(hù)知識(shí)產(chǎn)權(quán)

    使用加密芯片來(lái)保護(hù)知識(shí)產(chǎn)權(quán),對(duì)設(shè)備進(jìn)行認(rèn)證或加密處理,但加密芯片中薄弱的環(huán)節(jié)在于密鑰。通過(guò)暴力剖析、側(cè)信道攻擊、逆向工程等
    發(fā)表于 07-24 09:43

    量子加密:安全通信的未來(lái)

    技術(shù)應(yīng)運(yùn)而生,一種基于量子力學(xué)原理的新型加密方式,被譽(yù)為“絕對(duì)安全”的通信手段。那么量子加密技術(shù)是什么呢,本文將帶你詳細(xì)了解。編輯搜圖請(qǐng)點(diǎn)擊輸入圖片描述(最多18字)
    的頭像 發(fā)表于 06-24 10:40 ?749次閱讀
    量子<b class='flag-5'>加密</b>:安全通信的未來(lái)
    主站蜘蛛池模板: 精品久久久久久婷婷 | 狠狠色丁香九九婷婷综合五月 | 人人爽天天爽夜夜爽qc | 国产黄色片网站 | 久久免费久久 | 国产乱辈通伦影片在线播放亚洲 | 最新大黄网站免费 | 婷婷四房播客五月天 | 色综合美国色农夫网 | a爱视频 | 黄色一级a毛片 | 黄色三级视频网站 | 人人干人人艹 | 欧美一级特黄aaaaaaa在线观看 | 天天摸天天看 | 一区二区美女视频 | 在线资源网 | 国产毛片毛片精品天天看 | 国产高清在线免费 | 久热首页 | 特级一级毛片视频免费观看 | 91久操 | 特级黄色淫片 | 色播基地 | 中文字幕卡二和卡三的视频 | 国内一区二区三区精品视频 | 超刺激gay腐文h文 | 免费午夜不卡毛片 | 久久午夜视频 | 欧美日韩a| 黄色视屏免费看 | 最新激情网 | 奇米四色777亚洲图 奇米影视四色首页手机在线 | 视频1区| 亚洲人成77777在线观看网 | 色多多www视频在线观看免费 | 欧美色图综合 | 奇米四色777亚洲图 奇米影视四色首页手机在线 | 六月丁香激情网 | 欧美日韩高清一区 | 性猛交╳xxx乱大交 性免费视频 |

    電子發(fā)燒友

    中國(guó)電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品