使用软解密来破解芯片UID加密

发表时间:2020-09-13 09:19:45 人气:866

目前常见的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的单片机都可以提供单片机解密服务,欢迎来电咨询。

此文关键字: 芯片解密