使用軟解密來破解芯片UID加密

發表時間:2020-09-13 09:19:45 人氣:693

目前常見的STM32及GD32系列的MCU芯片都具有唯一UID,目前成都子程電子提供芯片解密等服務。

UID是唯一標識符(unique identifier),在STM32系列微控制器的每一顆芯片都具有全球唯一的標識符,該標識符為128位二進制序列。因此我們可以利用芯片UID的唯一性對程序進行加密,使每一個產品中的程序也具有唯一性,即使非法使用者獲取了MCU中的程序復制到其他芯片中也是不能正常運行的,從而達到保護開發者的知識產權不被侵犯和盜用的目的。

加密可利用的資源:STM32有一個ID號,加密芯片有一個ID號。加密芯片有DES算法,HASH算法,可運行程序。

1、比較密碼:STM32程序預存一個8字節密碼,加密芯片預存一個相同的密碼,STM32把這個密碼發給加密芯片,加密芯片與預存的密碼比較,相同返回一個正確值。好像這個功能只能做到沒有加密芯片確實不能跑,但好像很容易破解掉,數據傳輸明文,容易跟蹤。也很容易模擬出這個結果。

2、加密傳輸比較密碼:同樣在STM32和加密芯片都預存一個8字節密碼,STM32讀取一個加密芯片生成的隨機數,然后與8位密碼做一個DES運算,把這個結果發給加密芯片比較。加密芯片用同樣的隨機數和密碼做DES運算,結果是和STM32算出來是一樣的,比較正確后返回正確。這個比第1個好一點,密文傳輸。還是可以模擬出結果。

3、HASH運算與第2是一樣的。

以上3種感覺加密強度一般。把STM32破解,讀出程序反匯編,可以找到相應的密碼,比較跳轉的指令,改掉。真是有這樣的牛人的。

如果利用ID號捆綁,這樣不利于維護。保修長的產品是麻煩事。

主要還是探討第4種方法,把部分程序的算法,函數放到加密芯片中去。

一、把數據分析的函數放進加密芯片。網絡通訊數據格式按照一定的協議規約組包,收到后發給加密芯片解釋,STM32得到解析后的數據進行操作。這樣做是不是感覺強多了,破解STM32是沒有用了,把PC發的網絡數據與加密芯片發出來的數據比較,推導組包規則,可能嗎?好像可能!但如果加密芯片多發一些隨機數參合進來,怎么樣?

這個難度大多了吧。

但隨著芯片解密技術的不斷升級,目前針對所有擁有UID的單片機都可以提供單片機解密服務,歡迎來電咨詢。

此文關鍵字: 芯片解密