搜索
bottom↓
回复: 30

芯片外接加密芯片什么原理?

[复制链接]

出590入992汤圆

发表于 2023-12-27 11:03:38 来自手机 | 显示全部楼层 |阅读模式
之前做的产品被破解了(内部有绑定了ID加密,但是被破解了)。
现在客户要加密,准备使用加密芯片,但是我一直搞不明白原理。
1,比如说重要数据放到加密芯片里面,我把单片机破解了,知道了读取方式,不就可以读取出来重要数据了。为什么还要用加密芯片多此一举?
2,难道是把关键代码放到加密芯片里面,然后读取出来程序放到ram里面运行?即使这样的话,我把单片机破解了,按照一样的方式运行不也可以了。(难道是这样必须配一个加密芯片?)

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入18汤圆

发表于 2023-12-27 11:07:05 | 显示全部楼层
我觉得是重要代码放到加密芯片中,直接在加密芯片中运行,返回的只是运行的结果,这样应该无解吧

出0入90汤圆

发表于 2023-12-27 11:25:12 | 显示全部楼层
现在高端一点的加密芯片,里面可以放程序的,就是把一部分函数放到这个加密芯片里面去运行。
好比你要做个什么计算,你就把数据给它,然后它把结果给你。
这样就算你的单片机被破解了,因为程序不完整,别人也没用。除非他们能把加密芯片也破解了。
不过这种很贵,可能比你单片机还贵

出0入75汤圆

发表于 2023-12-27 11:28:12 | 显示全部楼层
攻防是对立的,得先知道对方怎么破解,能才更好的防破解。
简单的唯一ID保护,破解后在空闲位置写入正确的UID,同时把读UID的指令改为读这个位置内容,即完成了破解,加个全Flash校验即可防这种方法。
破解是找防护的薄弱点,不管加解密算法多复杂,只要能定位到关键点,比如找到最终的if,就完成了破解。
加密芯片,如果是有eeprom的,可以把校准参数等存里面,只有hash算法的加密芯片,一般是网络鉴权用,单片机用只有hash的如果鉴权过程不合理容易被破解。加密芯片是一芯片一密钥,不要图省事都用同一密钥。

出1310入193汤圆

发表于 2023-12-27 11:58:42 来自手机 | 显示全部楼层
带显示器了吗,触摸屏,再不济数码管也行。
某个组合键按下之后,显示你们公司电话号码或者专利号。
也是今后维权一个方法。

出0入115汤圆

发表于 2023-12-27 12:26:06 | 显示全部楼层
加密芯片就是能随机生成一个种子,加密芯片会把这个种子和加密过的密文一起发给你,主mcu同样根据这个种子进行运算,结果和密文一致,程序继续运行,不一致直接死循环,总体思路都是这样的,量产的话,就是你得把私钥批量烧入加密芯片。

出0入224汤圆

发表于 2023-12-27 14:03:10 来自手机 | 显示全部楼层
我现在觉得esp32这种,虽然存储全部在外部flash的,但是它可以整片福来许加密,这种方式挺好的,甚至有时候还嫌他加密太强了,芯片已经搞废过好几个了

出0入0汤圆

发表于 2023-12-27 18:02:33 | 显示全部楼层
Doding 发表于 2023-12-27 11:28
攻防是对立的,得先知道对方怎么破解,能才更好的防破解。
简单的唯一ID保护,破解后在空闲位置写入正确的U ...
(引用自4楼)

全Flash校验是指啥

出0入18汤圆

发表于 2023-12-27 18:24:59 来自手机 | 显示全部楼层
三年模拟 发表于 2023-12-27 12:26
加密芯片就是能随机生成一个种子,加密芯片会把这个种子和加密过的密文一起发给你,主mcu同样根据这个种子 ...
(引用自6楼)


你这样人家把最后判断语句取个反不就破解了么

出675入8汤圆

发表于 2023-12-27 19:16:32 来自手机 | 显示全部楼层
ds28e01 美信的加密芯片

出0入75汤圆

发表于 2023-12-27 19:41:31 来自手机 | 显示全部楼层


Flash整体做hash,包括没用到空的部分,hash结果保存,程序启动时校验这个结果是否正确,就知道程序有没有被改过。

出590入992汤圆

 楼主| 发表于 2023-12-27 21:25:41 | 显示全部楼层
yyts 发表于 2023-12-27 14:03
我现在觉得esp32这种,虽然存储全部在外部flash的,但是它可以整片福来许加密,这种方式挺好的,甚至有时候 ...
(引用自7楼)

ESP32的加密原理是什么?

出0入4汤圆

发表于 2023-12-27 21:31:10 来自手机 | 显示全部楼层
Doding 发表于 2023-12-27 19:41
Flash整体做hash,包括没用到空的部分,hash结果保存,程序启动时校验这个结果是否正确,就知道程序有没 ...
(引用自11楼)

那反汇编,跳过检验就绕过去了?

出0入0汤圆

发表于 2023-12-27 22:12:46 | 显示全部楼层
zhanyanqiang 发表于 2023-12-27 21:31
那反汇编,跳过检验就绕过去了?
(引用自13楼)

都反汇编了,啥加密方法都能绕过去,电脑软件那么复杂,不照样被破解,除非把一段关键程序放到加密芯片里执行

出0入75汤圆

发表于 2023-12-27 22:25:06 来自手机 | 显示全部楼层
zhanyanqiang 发表于 2023-12-27 21:31
那反汇编,跳过检验就绕过去了?
(引用自13楼)

增加反汇编难度,比如hash和正常功能共用函数,判断出错误不马上出错,正常运行一段时间随机出错,让破解的人难找到特征,如果对方所有汇编代码都分析一遍,说明你这个程序价值太高了,加密芯片成本就不足为提了,请用加密芯片保护。

出0入224汤圆

发表于 2023-12-27 22:40:11 | 显示全部楼层
SUPER_CRJ 发表于 2023-12-27 21:25
ESP32的加密原理是什么?
(引用自12楼)





ESP32内部没有flash,所以程序是存储在外部flash的,存储在外部flash中的数据和程序,可以采用XTS-AES加密,密钥自动生成,并存储在芯片内部的eFuse 熔丝位中,软件不可读取,由硬件从flash中读取数据时,自动解密。比如flash坏了,你换一片flash,不好意思,程序直接起不来,因为esp32按之前的密钥,肯定无法正常读取新flash中的数据,哪怕你重新烧程序也不知,因为你不知道,也无法读取eFuse 中的密钥,无法生成一个使用相同解密加密的程序,再存回flash中。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出590入992汤圆

 楼主| 发表于 2023-12-28 00:08:56 | 显示全部楼层
yyts 发表于 2023-12-27 22:40
ESP32内部没有flash,所以程序是存储在外部flash的,存储在外部flash中的数据和程序,可以采用XTS-AE ...
(引用自16楼)

我把FLASH里面数据全部读取出来,放到新的FLASH里面,数据完全一模一样,为什么不行?难道是根据FLASH里面的ID?

出0入224汤圆

发表于 2023-12-28 00:16:20 | 显示全部楼层
SUPER_CRJ 发表于 2023-12-28 00:08
我把FLASH里面数据全部读取出来,放到新的FLASH里面,数据完全一模一样,为什么不行?难道是根据FLASH里 ...
(引用自17楼)

“flash数据采用XTS-AES加密,密钥自动生成,并存储在芯片内部的eFuse 熔丝位中”,比芯片的id,更难破解,因为芯片id,是软件可以访问读取到的,这个是软件(程序)读取不到的,而且整个解密的过程是由硬件来完成的。

出0入30汤圆

发表于 2023-12-28 07:32:22 来自手机 | 显示全部楼层
SUPER_CRJ 发表于 2023-12-28 00:08
我把FLASH里面数据全部读取出来,放到新的FLASH里面,数据完全一模一样,为什么不行?难道是根据FLASH里 ...
(引用自17楼)

这样可行,但只能用于这颗Mcu,换一颗就不行了,

出0入18汤圆

发表于 2023-12-28 07:35:02 来自手机 | 显示全部楼层
SUPER_CRJ 发表于 2023-12-28 00:08
我把FLASH里面数据全部读取出来,放到新的FLASH里面,数据完全一模一样,为什么不行?难道是根据FLASH里 ...
(引用自17楼)

我也觉得是这样,除非flash id也参与加密运算

出0入18汤圆

发表于 2023-12-28 07:37:11 来自手机 | 显示全部楼层
yyts 发表于 2023-12-28 00:16
“flash数据采用XTS-AES加密,密钥自动生成,并存储在芯片内部的eFuse 熔丝位中”,比芯片的id,更难破解 ...
(引用自18楼)

那代码里写flash操作会自动加密吗?

出0入224汤圆

发表于 2023-12-28 08:59:44 来自手机 | 显示全部楼层
tang_qianfeng 发表于 2023-12-28 07:37
那代码里写flash操作会自动加密吗?
(引用自21楼)

会。  ʕ⊝ᴥ⊝ʔ

出0入18汤圆

发表于 2023-12-28 09:11:29 | 显示全部楼层
modbus 发表于 2023-12-27 22:12
都反汇编了,啥加密方法都能绕过去,电脑软件那么复杂,不照样被破解,除非把一段关键程序放到加密芯片里 ...
(引用自14楼)

人家唯一ID破解了,就是做过反汇编了,所以这种方式和唯一ID加密,其实没啥区别。

出0入18汤圆

发表于 2023-12-28 10:29:17 | 显示全部楼层

那有明文,有密文,又是对称加密,不是可以推出密钥了么

出590入992汤圆

 楼主| 发表于 2023-12-28 10:30:03 来自手机 | 显示全部楼层
ycheng2004 发表于 2023-12-28 07:32
这样可行,但只能用于这颗Mcu,换一颗就不行了,
(引用自19楼)

有道理,这样也就不能批量复制。

出0入224汤圆

发表于 2023-12-28 10:34:34 | 显示全部楼层
tang_qianfeng 发表于 2023-12-28 10:29
那有明文,有密文,又是对称加密,不是可以推出密钥了么
(引用自24楼)


你是说给客户一份明文的程序,再让用户从flash芯片上读取一份密文,然后给客户推出密钥吗?

出0入75汤圆

发表于 2023-12-28 11:05:41 | 显示全部楼层
tang_qianfeng 发表于 2023-12-28 10:29
那有明文,有密文,又是对称加密,不是可以推出密钥了么
(引用自24楼)

没有明文,flash数据线上只有密文,随机生成的一芯片一密钥,密钥无法读写。

出0入18汤圆

发表于 2023-12-28 12:44:43 | 显示全部楼层
Doding 发表于 2023-12-28 11:05
没有明文,flash数据线上只有密文,随机生成的一芯片一密钥,密钥无法读写。 ...
(引用自27楼)

重新换个flash,通过mcu来把代码烧录到新的flash里,不就有明文和密文了么?

出0入224汤圆

发表于 2023-12-28 13:02:58 来自手机 | 显示全部楼层
tang_qianfeng 发表于 2023-12-28 12:44
重新换个flash,通过mcu来把代码烧录到新的flash里,不就有明文和密文了么?
(引用自28楼)

下载口调试口已经禁用掉了,重新换个flash,  Mcu都起不来。

出0入75汤圆

发表于 2023-12-28 14:18:16 | 显示全部楼层
tang_qianfeng 发表于 2023-12-28 12:44
重新换个flash,通过mcu来把代码烧录到新的flash里,不就有明文和密文了么?
(引用自28楼)

ESP32有2种加密方式,一种是开发模式,另一种是发布模式。
开发模式可以重新烧录,发布模式无法重新烧录程序,只能通过OTA升级。
如果发布模式的flash坏了,需要连MCU一起换。

出0入0汤圆

发表于 2023-12-28 18:43:10 | 显示全部楼层
SUPER_CRJ 发表于 2023-12-28 00:08
我把FLASH里面数据全部读取出来,放到新的FLASH里面,数据完全一模一样,为什么不行?难道是根据FLASH里 ...
(引用自17楼)

没有KEY,你拿到一堆密文也没有用。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-28 11:58

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表