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

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

    文章

    120

    瀏覽量

    23867
收藏 人收藏

    評論

    相關推薦

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

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

    STM32配合可編程加密芯片SMEC88ST的防抄板加密方案設計

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

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

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

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

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

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

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

    常見的加密算法有哪些?它們各自的優勢是什么?

    常見的加密算法及其優勢如下: AES(Advanced Encryption Standard): AES是一種對稱加密算法,采用分組密碼體制,支持128位、192位和256位密鑰長度。AES的優勢
    的頭像 發表于 12-17 15:57 ?309次閱讀

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

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

    aes加密的常見錯誤及解決方案

    AES(Advanced Encryption Standard,高級加密標準)是一種對稱加密算法,它使用固定長度的密鑰對數據進行加密。在使用AES
    的頭像 發表于 11-14 15:13 ?2445次閱讀

    UID加密安全啟動原理分析

    原理 ZDP14x0系列芯片具有64位全球唯UID,基于UID實現加密可以保證程序移植到另芯片無法運行,詳細
    的頭像 發表于 11-11 11:49 ?607次閱讀
    UID<b class='flag-5'>加密</b>安全啟動原理分析

    安卓APP開發中,如何使用加密芯片?

    加密芯片一種專門設計用于保護信息安全的硬件設備,它通過內置的加密算法對數據進行加密和解密,以防止敏感數據被竊取或篡改。如下圖HD-RK35
    的頭像 發表于 10-31 17:43 ?548次閱讀
    安卓APP開發中,如何使用<b class='flag-5'>加密</b><b class='flag-5'>芯片</b>?

    AG32 芯片保護與加密

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

    淺談PUF技術如何保護知識產權

    使用加密芯片來保護知識產權,對設備進行認證或加密處理,但加密芯片中薄弱的環節在于密鑰。通過暴力剖析、側信道攻擊、逆向工程等
    發表于 07-24 09:43

    量子加密:安全通信的未來

    技術應運而生,一種基于量子力學原理的新型加密方式,被譽為“絕對安全”的通信手段。那么量子加密技術是什么呢,本文將帶你詳細了解。編輯搜圖請點擊輸入圖片描述(最多18字)
    的頭像 發表于 06-24 10:40 ?591次閱讀
    量子<b class='flag-5'>加密</b>:安全通信的未來

    AES加密協議是什么?AES加密協議的應用

    AES(Advanced Encryption Standard,高級加密標準)是一種廣泛使用的對稱密鑰加密協議,它被設計用于保護電子數據的安全。以下是對AES加密協議的詳細概述: 歷
    的頭像 發表于 04-15 15:34 ?1019次閱讀

    指紋加密移動硬盤詳細方案解析

    全盤數據硬件SM4/AES加密存儲,即使拆出存儲芯片,也無法通過探針攻擊、功率攻擊等手段來破解存儲的密文數據。  全數字密碼鍵盤,口令長度范圍6~32位。  支持密鑰備份和恢復功能,密鑰備份采用
    的頭像 發表于 03-18 15:23 ?861次閱讀
    指紋<b class='flag-5'>加密</b>移動硬盤詳細<b class='flag-5'>方案</b>解析
    主站蜘蛛池模板: 亚洲成人伊人网 | 欧美日穴| 一区二区三区精品视频 | 国产福利午夜自产拍视频在线 | 天堂网在线最新版www中文网 | 我不卡老子影院午夜伦我不卡四虎 | 亚洲αv久久久噜噜噜噜噜 亚洲аv电影天堂网 | 丁香六月啪 | 中文字幕一二三四区 | 欧美在线高清视频 | 你懂的免费在线视频 | 黄色大秀| 欧美色老头 | 国产一级特黄的片子 | 天堂资源站 | 偷偷操不一样的久久 | 国产精品丝袜在线观看 | 国产精品欧美一区二区三区不卡 | 2021国内精品久久久久影院 | 国产精品亚洲玖玖玖在线靠爱 | 午夜高清免费观看视频 | 国产精品www视频免费看 | 男女一进一出抽搐免费视频 | 亚洲 欧美 精品专区 极品 | 人人人人干 | 天天射天天爱天天干 | 中文字幕亚洲一区二区v@在线 | 婷婷综合丁香 | 午夜久久久久久 | 欧美成人三级伦在线观看 | 天堂va欧美ⅴa亚洲va一国产 | 偷偷要色偷偷 | 男人视频网 | 在线精品国产第一页 | 99r8这里精品热视频免费看 | 18美女扒开尿口无遮挡 | 成人免费aaaaa毛片 | 好爽好深太大了再快一点 | 午夜一级毛片免费视频 | 欧美成人看片一区二区三区 | 久久精品免费观看 |