标题: 关于单片机芯片加密的一个思路 [打印本页]

作者: zyftank    时间: 2023-12-15 10:41
标题: 关于单片机芯片加密的一个思路
总体一个思路就是读取芯片ID,前后增加N个随机数进行混淆,然后经过加密运算后存储在EEPROM中,程序运行初始化时取出加密后的ID数据进行比对。

固件程序改写EEPROM的时机是什么时候呢?不可能将固件烧进单片机后就能改写EEPROM,这样别人把你的固件拷出来后,烧进其他板子,固件程序也能改写其他单片机的EEPROM。

所以,固件程序修改EEPROM的时机,必须是EEPROM里有个数据是个特定值,而这个特定值是我们上位机输入的,这就相当于我们掌握了一个密码,没有这个密码,固件程序是不会改写EEPROM,而且固件写入EEPROM的值必须覆要盖这个特定值存储的区域,这样,我们密码用完就销毁了,起到了一个保密作用。

实现起来,最好能用串口跑起来个MODBUS协议,方便我们用上位机控制单片机。

在读取ID加密数据的时候,设定一个基地址,然后通过加减运算,才指向EEPROM存储加密ID数据的首地址,隐藏我们存储在EEPROM中存储ID加密数据地址。

作者: zyftank    时间: 2023-12-15 10:57
如果再使点坏,即使ID加密数据不对,也能运行1、2千次,才使部分功能失效,可能会造成破解者的一部分损失。
作者: yzw846562238    时间: 2023-12-15 16:12
zyftank 发表于 2023-12-15 10:57
如果再使点坏,即使ID加密数据不对,也能运行1、2千次,才使部分功能失效,可能会造成

买两片你的产品,读出程序,一对比,发现不一样的地方就是你的密钥所在地址,然后再顺藤摸瓜,找出你写这个地址的函数,然后慢慢的就能破你的加密了

作者: zyftank    时间: 2023-12-16 06:19
yzw846562238 发表于 2023-12-15 16:12
买两片你的产品,读出程序,一对比,发现不一样的地方就是你的密钥所在地址,然后再顺藤摸瓜,找出你写这 ...

存储加密信息的时候,前后添加了随机数,而且还可以中间插入随机数,地址也是基地址,经过加减计算得来的。
作者: hhh402    时间: 2023-12-26 20:42
解密不是靠解出来的,而是靠取巧,顺着加密者的思路来的,比如楼主的加密是读唯一ID,通过一系列的运算来加密,破解的思路是:买一块板读出程序包括EEPROM数据以及ID号,将程序中所以读ID语句的数值全部改成固定的ID号,这样就间接破解了。这样其他单片机只要是检测ID就返回固定的ID号,楼主不管用这个ID怎么运算都失去了意义。加密最重要是方法不被别人知道,大家都知道的加密方式被破解是迟早的事情,靠唯一ID加密是不靠谱的。真正的加密都是用大多数人不知道的方式,而且不会把方法说出去。
作者: 都市郎(新)    时间: 2024-1-27 23:31
一点用都没有,只防普通人,防不了专业抄的人。做好产品才是根本!
作者: FrankJi    时间: 2024-1-28 09:07
一般建议:花1%的精力在防破上,花99%的精力在做值得破的事情上。
作者: 单片机研究协会    时间: 2024-1-30 12:55
订制脚位,芯片不用加密,读出程序也用不了




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1