国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

淺談加密芯片的一種破解方法和對應加密方案改進設計

jfm365 ? 來源:jfm365 ? 作者:jfm365 ? 2025-02-24 10:39 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

wKgZO2dlFn6AW1FhAAFywgRJVVo394.png

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

上述加密方案貌似安全可靠,但實際上對于經驗豐富的黑客來說破解難度不大。

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

實現上述破解方式的前提條件是主MCU的程序BIN或HEX碼是通過破解可以得到的,目前主流大多數MCU都是可以破解的,有很多專業的公司或團體做這方面的服務。拿到破解得到的BIN或HEX碼后,接下來我們分兩步走來實現破解主MCU和加密芯片的聯動的整體加密方案,分別是固定主MCU的ID1和隨機數R1。下面以STM32模擬解析整個破解過程。

芯片的唯一ID一般都是存儲在一個固定地址上連續存放的,知道芯片型號后這個ID1的存放地址很容易得到,我們在HEX碼中很容易得到這個地址。比如STM32的UID地址在0x1FFFF7E8(小端模式),這時我們在HEX碼中搜索E8F7FF1F(大端模式),如果找不到,可能是因為編譯優化了,可以嘗試搜索高3字節F7FF1F或其中幾個字節,很容易就找到這個關鍵字,這時你只需要把HEX碼這個位置的UID地址值改成你的設定的Flash地址值0x00005000,再在這個地址上寫上你的ID(比如1122334455667788)就能實現你想要的ID1值了。如下圖:

wKgZPGdlFpWAZOIxAAY_IeRnzEo231.png

固定隨機數相對于ID有些難度,如果有隨機數發生器,那么把隨機數發生器產生隨機數值的地址改成你的固定地址,方法可以完全參照上面固定ID值得方法。如果沒有隨機數發生器,無非也是使用ACDC等值作為因子,然后配合srand產生隨機數,想辦法在產生隨機數前把這些因子固定,那么主MCU的隨機數也可以做到的特定時間特定的代碼處產生的隨機數也是固定值。這個需要破解者有一定的反匯編能力,想辦法找到這些作為隨機數發生因子寄存器,用上述一樣的方法把這些調用的地方改成你的固定的Flash地址,并在這個地址上寫上你的目標值。如下產生隨機數因子的樣例:

wKgZO2e72QWAYsGgAAMkDbV_fWY358.png

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

wKgZO2dlFyKAVkdXAAZUE4u3PWU782.png

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

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

wKgZPGe72TeAeFayAAGUbkrwTdo290.png

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

那么有沒有好的方法來保護產品呢,對于使用邏輯加密芯片的加密方案,開發者可以通過以下的一些小技巧來增加被破解的難度,比如:

1、主MCU訪問ID或隨機數因子時,盡量不要使用常量直接訪問目的地址,可以使用一個假地址再通過變量異或、加減或其他算法來得到目的地址,以防止破解者輕易找到這個地址來竄改。

2、程序里確保每次產生的隨機數只能使用一次,使用后隨機數失效,下次要使用隨機數必須重新產生。程序對收到的外設發來的隨機數做緩存,如果隨機數有重復,做一些特殊處理,防反復跟蹤解析。

3、秘鑰值盡量不要連續存放在一個常量或變量數組里,盡量分開存放,使用前通過一些算法計算再組成正確的秘鑰值。

4、主MCU程序做完整性校驗,完整性校驗綁定UID,防止主MCU程序被破解者破解得到后竄改來跟蹤、分析、破解。上面講的破解方法就是利用主MCU沒有做程序完整性校驗來固定ID和隨機數從而輕易破解的,如果有完整性校驗,破解難度就會增加。

5、設計加密方案時盡量不要使用判斷正確就繼續執行錯誤就報錯這種簡單的判斷邏輯,可以設計成錯誤后繼續執行,只是在后續執行過程中在不特定的地方出不特定的錯誤。

6、加密方案里使用的一些校驗算法、加解密算法等,盡量不是用標準算法,可以使用這些算法的變異算法。

通過上述方式,設計的加密方案被破解的難度會大大提高。但是現在有很多專業的破解團隊,對主流芯片的反匯編能力超強,反匯編后還提供C代碼服務供破解者二次開發,上述加密方式通過超強的反匯編能力,還是可以做到破解的,只是代價會大大提高。那有沒有更加安全的加密方式呢?答案是有的,那就是采用編程加密芯片

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

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

wKgZPGdlF5OANTt4AAFWCceFikc360.png


審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 加密芯片
    +關注

    關注

    3

    文章

    138

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    使用凌科芯安LKT4304加密芯片打造版權保護解決方案

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

    如何正確配置AG32 MCU,實現FLASH或者代碼加密?

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

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

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

    請問CW32的code加密方法有哪些?

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

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

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

    極簡XXTEA加密解密:5分鐘代碼速學!

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

    加密算法的應用

    加密一種保護信息安全的重要手段,近年來隨著信息技術的發展,加密技術的應用越來越廣泛。本文將介紹加密算法的發展、含義、分類及應用場景。 1.
    發表于 10-24 08:03

    AES加密流程

    AES(Advanced Encryption Standard)是一種對稱密鑰加密算法,它是當前最常用的加密標準之。AES是一種可靠、高
    發表于 10-23 06:13

    VPP加密芯片撐起虛擬電廠安全

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

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

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

    為什么內網穿透必須加密

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

    用樹莓派挖掘5頂級加密貨幣!

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

    安芯半導體發布全新防復制加密芯片RJGT28E30

    ECC橢圓曲線加密算法是一種非對稱加密算法,相對于對稱加密算法,更便于密鑰的管理,且相對于等密鑰長度的RSA算法更安全。
    的頭像 發表于 06-10 17:53 ?1330次閱讀
    安芯半導體發布全新防復制<b class='flag-5'>加密</b><b class='flag-5'>芯片</b>RJGT28E30

    加密芯片的功能原理和應用領域

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

    在STM32微控制器中實現數據加密方法

    和普通任務,從而保護整個系統的安全。通過將加密算法、密鑰和敏感操作限制在安全區域執行,可以減少被攻擊的風險。 · 使用MPU進行內存保護: · · MPU是一種內存訪問控制硬件,它可以限制CPU對特定
    發表于 03-07 07:30