91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(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ù)在通訊線(xiàn)路上被破解。

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ù)參與,使得每次通訊線(xiàn)路上的密文都是變化的。但是主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ú)非也是使用AC、DC等值作為因子,然后配合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)板工作后,在線(xiàn)路上監(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訪(fǎng)問(wèn)ID或隨機(jī)數(shù)因子時(shí),盡量不要使用常量直接訪(fǎng)問(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)載。文章觀(guā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

    文章

    138

    瀏覽量

    24885
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    使用凌科芯安LKT4304加密芯片打造版權(quán)保護(hù)解決方案

    在消費(fèi)電子、物聯(lián)網(wǎng)、智能硬件等領(lǐng)域,“辛辛苦苦研發(fā),夜之間被抄”的故事屢見(jiàn)不鮮。某無(wú)人機(jī)企業(yè)的飛控算法被破解后,仿制品以半價(jià)沖擊市場(chǎng);某醫(yī)療設(shè)備廠(chǎng)商的核心固件遭逆向工程,導(dǎo)致數(shù)百萬(wàn)研發(fā)投入付諸東流
    的頭像 發(fā)表于 02-02 11:09 ?491次閱讀
    使用凌科芯安LKT4304<b class='flag-5'>加密</b><b class='flag-5'>芯片</b>打造版權(quán)保護(hù)解決<b class='flag-5'>方案</b>

    如何正確配置AG32 MCU,實(shí)現(xiàn)FLASH或者代碼加密?

    功能主要包括兩方式:Lock fash(鎖定Flash)和代碼加密(Code Encryption),它們可以在燒錄過(guò)程中通過(guò)特定工具和配置啟用。 方式:Lockflash Lockflash
    發(fā)表于 01-22 15:01

    凌科芯安32位低功耗加密芯片LCS4110R介紹

    LCS4110R 32位IIC接口防盜版加密芯片,是我司研發(fā)的款以32位安全芯片平臺(tái)為基礎(chǔ)的較低功耗加密產(chǎn)品,內(nèi)嵌LKCOS智能操作系統(tǒng),
    的頭像 發(fā)表于 01-21 13:02 ?577次閱讀
    凌科芯安32位低功耗<b class='flag-5'>加密</b><b class='flag-5'>芯片</b>LCS4110R介紹

    請(qǐng)問(wèn)CW32的code加密方法有哪些?

    芯源的CW32單片機(jī)芯片,對(duì)于code加密方法和手段都有哪些方式?
    發(fā)表于 12-26 08:09

    軟件加密中有哪些常用的加密算法?

    軟件加密中,有哪些常用的加密算法?
    發(fā)表于 12-26 06:00

    極簡(jiǎn)XXTEA加密解密:5分鐘代碼速學(xué)!

    Encryption Algorithm)是一種輕量級(jí)的對(duì)稱(chēng)分組加密算法,由David Wheeler和Roger Needham在1998年提出,旨在改進(jìn)其前身TEA和XTEA算法的安全性。 ? 核心特點(diǎn)
    的頭像 發(fā)表于 11-12 14:49 ?349次閱讀
    極簡(jiǎn)XXTEA<b class='flag-5'>加密</b>解密:5分鐘代碼速學(xué)!

    加密算法的應(yīng)用

    加密一種保護(hù)信息安全的重要手段,近年來(lái)隨著信息技術(shù)的發(fā)展,加密技術(shù)的應(yīng)用越來(lái)越廣泛。本文將介紹加密算法的發(fā)展、含義、分類(lèi)及應(yīng)用場(chǎng)景。 1.
    發(fā)表于 10-24 08:03

    AES加密流程

    AES(Advanced Encryption Standard)是一種對(duì)稱(chēng)密鑰加密算法,它是當(dāng)前最常用的加密標(biāo)準(zhǔn)之。AES是一種可靠、高
    發(fā)表于 10-23 06:13

    VPP加密芯片撐起虛擬電廠(chǎng)安全

    算法(SM2/SM3/SM4),并采用通過(guò)認(rèn)證的密碼產(chǎn)品,因此,加密芯片是滿(mǎn)足這些要求的重要硬件基礎(chǔ)。 ? 而在實(shí)際應(yīng)用中,包括保障數(shù)據(jù)安全,以及確保設(shè)備身份認(rèn)證的準(zhǔn)確性等,都需要用到安全加密
    的頭像 發(fā)表于 09-28 08:13 ?4259次閱讀

    凌科芯安LCSHA204安全加密芯片介紹

    驗(yàn)證可移除、可更換或可消耗的客戶(hù)端是否可信。通過(guò)預(yù)存共享密鑰,主控芯片加密芯片進(jìn)行雙向認(rèn)證。主控芯片生成隨機(jī)數(shù)發(fā)送至加密
    的頭像 發(fā)表于 09-24 10:16 ?908次閱讀
    凌科芯安LCSHA204安全<b class='flag-5'>加密</b><b class='flag-5'>芯片</b>介紹

    為什么內(nèi)網(wǎng)穿透必須加密?

    對(duì)于企業(yè)而言,選擇支持 TLS 加密的內(nèi)網(wǎng)穿透工具(如ZeroNews),并定期更新加密協(xié)議與證書(shū),是保障業(yè)務(wù)安全、避免法律風(fēng)險(xiǎn)的最有效手段。
    的頭像 發(fā)表于 08-19 15:47 ?820次閱讀
    為什么內(nèi)網(wǎng)穿透必須<b class='flag-5'>加密</b>?

    用樹(shù)莓派挖掘5頂級(jí)加密貨幣!

    加密貨幣是用于在線(xiàn)交易的數(shù)字貨幣。挖掘這些貨幣通常需要專(zhuān)門(mén)的硬件,如ASIC礦機(jī)或高性能GPU。然而,有些加密貨幣仍可用樹(shù)莓派來(lái)挖掘。在本文中,我將為您介紹可在樹(shù)莓派上挖掘的最佳加密貨幣。適合用樹(shù)莓
    的頭像 發(fā)表于 07-21 16:34 ?1442次閱讀
    用樹(shù)莓派挖掘5<b class='flag-5'>種</b>頂級(jí)<b class='flag-5'>加密</b>貨幣!

    安芯半導(dǎo)體發(fā)布全新防復(fù)制加密芯片RJGT28E30

    ECC橢圓曲線(xiàn)加密算法是一種非對(duì)稱(chēng)加密算法,相對(duì)于對(duì)稱(chēng)加密算法,更便于密鑰的管理,且相對(duì)于等密鑰長(zhǎng)度的RSA算法更安全。
    的頭像 發(fā)表于 06-10 17:53 ?1332次閱讀
    安芯半導(dǎo)體發(fā)布全新防復(fù)制<b class='flag-5'>加密</b><b class='flag-5'>芯片</b>RJGT28E30

    加密芯片的功能原理和應(yīng)用領(lǐng)域

    部分。而加密芯片作為加密技術(shù)的核心實(shí)現(xiàn)方案,在信息安全領(lǐng)域占據(jù)著非常重要的地位。本文將重
    的頭像 發(fā)表于 05-19 16:45 ?1625次閱讀
    <b class='flag-5'>加密</b><b class='flag-5'>芯片</b>的功能原理和應(yīng)用領(lǐng)域

    在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)存訪(fǎng)問(wèn)控制硬件,它可以限制CPU對(duì)特定
    發(fā)表于 03-07 07:30