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

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

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

此文关键字: 芯片解密

工厂展示

工厂展示 工厂展示

联系我们

成都子程新辉电子设备有限公司

联系人:文先生

手机:13183865499

QQ:1977780637

地址:成都市金牛区星辉西路2号附1号(台谊民生大厦)407号