搜索
bottom↓
回复: 25

ESP32如何保证程序的安全性呢?防盗。

[复制链接]

出235入235汤圆

发表于 2022-2-8 09:43:26 | 显示全部楼层 |阅读模式
ESP32做有些开发的时候很方便,但外挂存储器,是不是直接拷下来就可以继续使用。
如果用他做产品,如何保证安全性呢?

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

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入75汤圆

发表于 2022-2-8 09:50:27 | 显示全部楼层
服务器端唯一ID鉴权,程序随便拷。

出0入442汤圆

发表于 2022-2-8 09:56:27 | 显示全部楼层
Doding 发表于 2022-2-8 09:50
服务器端唯一ID鉴权,程序随便拷。

程序都随便拷了唯一ID还有什么用 IDA直接反编译成C,直接爆破。

出0入75汤圆

发表于 2022-2-8 10:01:09 | 显示全部楼层
wye11083 发表于 2022-2-8 09:56
程序都随便拷了唯一ID还有什么用 IDA直接反编译成C,直接爆破。


生产时写进去一个ID,服务器验证,有二个设备使用这个ID,直接禁用这个ID就行了。ID在哪反编译也找不到。

出0入442汤圆

发表于 2022-2-8 10:03:32 | 显示全部楼层
Doding 发表于 2022-2-8 10:01
生产时写进去一个ID,服务器验证,有二个设备使用这个ID,直接禁用这个ID就行了。ID在哪反编译也找不到。 ...


那就看你的产品有没有足够高的价值了。另外,还是直接改代码屏蔽掉验证函数。除非验证成功之后必须从服务器上下载一系列专用加密配置参数再解密适配系统。当面,还是那句话,如果有足够高的价值,那么明码破解难度非常低。

出0入75汤圆

发表于 2022-2-8 10:06:26 | 显示全部楼层
wye11083 发表于 2022-2-8 10:03
那就看你的产品有没有足够高的价值了。另外,还是直接改代码屏蔽掉验证函数。除非验证成功之后必须从服务 ...


用ESP32的产品,多数都是有服务器端的,有些还会有APP,没有服务端,只是ESP32单机运行,那功能不全,破解出来没什么意义啊。

出5入0汤圆

发表于 2022-2-8 11:04:19 | 显示全部楼层
ESP32 Flash 是可以加密的,不过我也还没测试过,只是看了他们的说明。

出235入235汤圆

 楼主| 发表于 2022-2-8 11:54:41 | 显示全部楼层
看了下官方介绍。“ESP32 Flash 加密指南.PDF”这个文档,可以加密存储器,安全性怎么样不知道。

出0入228汤圆

发表于 2022-2-8 12:12:26 | 显示全部楼层
小米模块 是在 fuse中 烧一个号
然后 就是4楼,5楼说的了。
控制在服务器端的。

烧号后,其实就有2个号了,一个MAC,一个烧进去的号。


比如,首次烧了APP1,在服务器上 有了登记信息后,
再烧另一个APP2,  模块会自动 刷成APP1.
当然这儿的app1,app2,都是指在服务器 上通过ota升级的 小米固件。

当然你烧成你自己的app就随便了。

出0入42汤圆

发表于 2022-2-8 12:19:50 | 显示全部楼层
我也在设计用这个片子的板子,打算用加密芯片,RJGT102WDP8

出0入0汤圆

发表于 2022-5-18 13:26:17 | 显示全部楼层
wxws 发表于 2022-2-8 12:12
小米模块 是在 fuse中 烧一个号
然后 就是4楼,5楼说的了。
控制在服务器端的。
(引用自9楼)

大佬,小米的IOT ESP32模组,被单核的,可以进行二次开发吗?写入程序后总是重启。

出0入224汤圆

发表于 2022-5-18 14:02:36 | 显示全部楼层
lmn2005 发表于 2022-5-18 13:26
大佬,小米的IOT ESP32模组,被单核的,可以进行二次开发吗?写入程序后总是重启。 ...
(引用自11楼)

如果原来是启用了flash加密,自己重新写入程序的话,这个模组就废了。

出0入228汤圆

发表于 2022-5-18 14:11:47 | 显示全部楼层
lmn2005 发表于 2022-5-18 13:26
大佬,小米的IOT ESP32模组,被单核的,可以进行二次开发吗?写入程序后总是重启。 ...
(引用自11楼)

可以二次开发的。
可能 不应该叫“被单核”应该本身就是单核 ,编译时要选择单核 的。

idf开发能指定。
arduino开发就费事了。

出20入0汤圆

发表于 2022-5-18 14:52:58 | 显示全部楼层
其实加密芯片是不是要在加密芯片运行一部分算法然后通过通讯口传送给ESP32这样?

出0入0汤圆

发表于 2022-5-19 11:43:00 | 显示全部楼层
这个我也搭车同问,ESP32用起来是很爽,但在VScode+PIO开发,真不懂要怎么样来加密....

出0入224汤圆

发表于 2022-5-19 11:45:44 | 显示全部楼层
liang_work 发表于 2022-5-19 11:43
这个我也搭车同问,ESP32用起来是很爽,但在VScode+PIO开发,真不懂要怎么样来加密.... ...
(引用自15楼)

要加密还是得用ESP-IDF好。

出0入42汤圆

发表于 2022-5-19 11:47:14 来自手机 | 显示全部楼层
liang_work 发表于 2022-5-19 11:43
这个我也搭车同问,ESP32用起来是很爽,但在VScode+PIO开发,真不懂要怎么样来加密.... ...
(引用自15楼)

Vscode idf不是挺好用的吗?有离线包,安装简单一些

出0入0汤圆

发表于 2022-5-19 12:06:27 | 显示全部楼层
wxws 发表于 2022-5-18 14:11
可以二次开发的。
可能 不应该叫“被单核”应该本身就是单核 ,编译时要选择单核 的。

(引用自13楼)

idf可以设置为单核,但是简单的hello_world可以正常运行,下载其他示例譬如WIFI --scan ,老是重启,无法正常使用,莫非这种模组限制非小米SDK不能二次开发?

出0入228汤圆

发表于 2022-5-19 12:23:00 | 显示全部楼层
本帖最后由 wxws 于 2022-5-19 12:28 编辑
lmn2005 发表于 2022-5-19 12:06
idf可以设置为单核,但是简单的hello_world可以正常运行,下载其他示例譬如WIFI --scan ,老是重启,无法 ...
(引用自18楼)



你说的用其他 函数会重启,是因为esp32很多东西都是预编译的,也就是以库的方式提供调用。

可以看下这2个

https://github.com/lbernstone/arduino-esp32-solo
https://github.com/mmakaay/arduino-esp32-unicore-no-mac-crc



https://oshwhub.com/article/chao ... ao-cheng-yu-bi-keng

前几天还在某个贴里回答这问题的。

出0入0汤圆

发表于 2022-5-19 13:58:56 | 显示全部楼层
wxws 发表于 2022-5-19 12:23
你说的用其他 函数会重启,是因为esp32很多东西都是预编译的,也就是以库的方式提供调用。

可以看下这2 ...
(引用自19楼)

这个SOLO库,有弄过,但总是失败,看起来刚入门,水平还没有到家。我再试试。

出0入0汤圆

发表于 2022-5-19 15:47:53 | 显示全部楼层
wxws 发表于 2022-5-19 12:23
你说的用其他 函数会重启,是因为esp32很多东西都是预编译的,也就是以库的方式提供调用。

可以看下这2 ...
(引用自19楼)

刚才试了,用arduino-esp32-unicore-no-mac-crc可以,今晚再在另一台电脑试试,谢谢!

出0入0汤圆

发表于 2022-5-19 18:07:05 | 显示全部楼层
我是一个大白菜 发表于 2022-5-19 11:47
Vscode idf不是挺好用的吗?有离线包,安装简单一些
(引用自17楼)

开始我也是想用IDF的,但环境我就装不好,后来才用PIO的,但用后,发觉也真心不错,各种器件的库太完整了,且现在网上的资源也多是 arduino的.所以觉得这个平吧真心好用,比STM32的MDK,用起来都爽,但就是加密的问题,一直没有找到好的方法.

出0入42汤圆

发表于 2022-5-19 19:52:41 来自手机 | 显示全部楼层
liang_work 发表于 2022-5-19 18:07
开始我也是想用IDF的,但环境我就装不好,后来才用PIO的,但用后,发觉也真心不错,各种器件的库太完整了,且现 ...
(引用自22楼)

我还没试过你说的,回头试试看

出20入0汤圆

发表于 2022-5-19 21:31:58 | 显示全部楼层
我是一个大白菜 发表于 2022-2-8 12:19
我也在设计用这个片子的板子,打算用加密芯片,RJGT102WDP8
(引用自10楼)

我不太明白加密芯片的原理,是不是发送随机码然后加密回复一个值,主芯片判断这样?
但是这个只是防抄板,好像不能防止芯片读出来,读出来反汇编跳过判断语句是否可以破了?
我想ESP32最好能做到防读。

出0入42汤圆

发表于 2022-5-19 22:45:26 | 显示全部楼层
cantonguy 发表于 2022-5-19 21:31
我不太明白加密芯片的原理,是不是发送随机码然后加密回复一个值,主芯片判断这样?
但是这个只是防抄板 ...
(引用自24楼)

是的,加密芯片是只能做到,根据输入的数据判断是否合法,这个输入的数据可以是随机数+esp32的唯一mac+或者自己系统产生的sn号等,按照你的设计来定义。
要做到防止读取整个flash的话,要么用esp32自带的 efuse,flash存的就是加密后的代码,可以参考这个链接,具体怎么用我也没搞明白。还有一个选择是,选用自带flash的型号,这样程序在芯片里,应该不容易被读了。
https://docs.espressif.com/proje ... ash-encryption.html

出20入0汤圆

发表于 2022-5-20 08:31:50 | 显示全部楼层
我是一个大白菜 发表于 2022-5-19 22:45
是的,加密芯片是只能做到,根据输入的数据判断是否合法,这个输入的数据可以是随机数+esp32的唯一mac+或 ...
(引用自25楼)

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

本版积分规则

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

GMT+8, 2024-3-29 17:22

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

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