硬汉嵌入式论坛

 找回密码
 立即注册
查看: 791|回复: 13
收起左侧

[问题解答] 离线烧录次数限制容易被解除吗

[复制链接]

1

主题

4

回帖

7

积分

新手上路

积分
7
发表于 2023-9-16 13:13:37 | 显示全部楼层 |阅读模式
请教一下:如果离线烧录器限制烧写次数给别人烧写,选项字的读保护是不是在编程最后才设置的,如果别人在最后设置选项字的时候干预,让选项字的读保护设置失败,这样是不是就可以从芯片中读出代码了
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106731
QQ
发表于 2023-9-16 14:18:07 | 显示全部楼层
1、即使保护上了,也可以破解。芯片内部Flash读保护攻击
https://www.armbbs.cn/forum.php?mod=viewthread&tid=117857

2、所以推荐固件程序做加密,进一步增加点破解难度
BSP视频教程第19期:单片机BootLoader的AES加密实战,含上位机和下位机代码全开源(2022-06-26)
https://www.armbbs.cn/forum.php?mod=viewthread&tid=113361

3、更狠的,现在TrustZone都可以被绕过
BlackHat2023演讲并现场展示绕过ARMv8-M的TrustZone安全防护
https://www.armbbs.cn/forum.php?mod=viewthread&tid=119783


回复

使用道具 举报

2

主题

269

回帖

275

积分

高级会员

积分
275
发表于 2023-9-16 15:17:05 | 显示全部楼层
这里有个问题,假设烧录器里面的固件没任何办法取出,但JTAG、SWD他总要往芯片写吧,除非烧录过程也是加密的(好像有部分烧录器支持)。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106731
QQ
发表于 2023-9-16 15:23:30 | 显示全部楼层
cctv180 发表于 2023-9-16 15:17
这里有个问题,假设烧录器里面的固件没任何办法取出,但JTAG、SWD他总要往芯片写吧,除非烧录过程也是加密 ...

烧录过程加密实际上就是固件加密,只是他是边加密边传输,其实烧录器里面直接存储加密的固件是最好的,整个环节都要安全一些。
回复

使用道具 举报

1

主题

4

回帖

7

积分

新手上路

积分
7
 楼主| 发表于 2023-9-16 15:25:03 | 显示全部楼层
cctv180 发表于 2023-9-16 15:17
这里有个问题,假设烧录器里面的固件没任何办法取出,但JTAG、SWD他总要往芯片写吧,除非烧录过程也是加密 ...

一般带次数限制的离线烧录传输过程都是加密的,非明文传输,所以从SWD线上是拿不到代码的,但如果像我楼主位想到的疑问,读保护是在最后设置的,如果让最后的读保护设置失败,那就可以从芯片里读出代码了,传输过程的加密也就白费了,我想应该不会这么简单吧?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106731
QQ
发表于 2023-9-16 15:30:47 | 显示全部楼层
whowyj 发表于 2023-9-16 15:25
一般带次数限制的离线烧录传输过程都是加密的,非明文传输,所以从SWD线上是拿不到代码的,但如果像我楼 ...

就是我楼上回复的,你的发给烧录器的就是加密的固件。代码读取出来也没法直接使用。
回复

使用道具 举报

1

主题

4

回帖

7

积分

新手上路

积分
7
 楼主| 发表于 2023-9-16 15:31:21 | 显示全部楼层
eric2013 发表于 2023-9-16 15:23
烧录过程加密实际上就是固件加密,只是他是边加密边传输,其实烧录器里面直接存储加密的固件是最好的,整 ...

这个就要求使用者本身是软件开发者了,如果只是有代码,想交给第三方烧录,用次数限制这个挺好的,传输过程是加密过的,读保护也算是有一定的门槛。但如果只是让最后设置读保护时卡住时序,让读保护设置失败就能拿到代码,这个门槛就低了点。实际上读保护是不是最后才设置的呢,有没有边写边保护的办法。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106731
QQ
发表于 2023-9-16 15:43:14 | 显示全部楼层
whowyj 发表于 2023-9-16 15:31
这个就要求使用者本身是软件开发者了,如果只是有代码,想交给第三方烧录,用次数限制这个挺好的,传输过 ...

你直接把加密的固件发第3方不就行了,为什么要发代码给第3方。

既然第三方都有代码,为什么还怕第3方破解,逻辑貌似不合理。
回复

使用道具 举报

1

主题

4

回帖

7

积分

新手上路

积分
7
 楼主| 发表于 2023-9-16 16:02:11 | 显示全部楼层
eric2013 发表于 2023-9-16 15:43
你直接把加密的固件发第3方不就行了,为什么要发代码给第3方。

既然第三方都有代码,为什么还怕第3方 ...

我就是没明白这个原理,我把存好代码的烧录器交给第三方烧录,例如在一个地址写入0x5a5a5a5a,烧录器是不是向芯片指定地址写入0x5a5a5a5a后再设置芯片的读保护,如果没有读保护,就可以从芯片读出0x5a5a5a5a
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106731
QQ
发表于 2023-9-16 16:16:24 | 显示全部楼层
whowyj 发表于 2023-9-16 16:02
我就是没明白这个原理,我把存好代码的烧录器交给第三方烧录,例如在一个地址写入0x5a5a5a5a,烧录器是不 ...

最关键的地方你没有理解到,烧录到目标板芯片里面的程序就是加密的,破解读取出来的也是加密的程序。

这才是固件加密的意义,然后这个加密固件怎么在Flash运行,可以是boot+app方式的解密运行,也可以是加载到RAM里面解密运行,而且解密运行时可以检测读保护是否已经正常开启,如果没有开启直接再次锁死。

回复

使用道具 举报

1

主题

4

回帖

7

积分

新手上路

积分
7
 楼主| 发表于 2023-9-16 16:33:52 | 显示全部楼层
eric2013 发表于 2023-9-16 16:16
最关键的地方你没有理解到,烧录到目标板芯片里面的程序就是加密的,破解读取出来的也是加密的程序。

...

意思是说我还是存入0x5a5a5a5a到烧录器,烧录器会自动帮我加密,并且写到芯片的不是0x5a5a5a5a,而是在运行中解密出0x5a5a5a5a,整个加密解密过程都是烧录器做好了,我不用再参与,是这样吗
回复

使用道具 举报

2

主题

269

回帖

275

积分

高级会员

积分
275
发表于 2023-9-16 21:52:50 | 显示全部楼层
eric2013 发表于 2023-9-16 16:16
最关键的地方你没有理解到,烧录到目标板芯片里面的程序就是加密的,破解读取出来的也是加密的程序。

...

楼主意思交由第三方烧录白片,就没办法由bootloader负责解密了吧。这种情况只能由编程器把烧录过程搞成加密?或者只烧bootloader其他自己再烧
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106731
QQ
发表于 2023-9-16 22:18:23 | 显示全部楼层
cctv180 发表于 2023-9-16 21:52
楼主意思交由第三方烧录白片,就没办法由bootloader负责解密了吧。这种情况只能由编程器把烧录过程搞成加 ...

直接把固件搞成加密固件即可。芯片端解密方法有三种,也就是我前面说的
1、boot解密
2、不需要boot,固件里面没有加密的启动代码负责解密程序,可以让解密的程序加载到RAM运行等方案,这个玩法就非常多了。
3、支持实时解密运行程序的芯片,比如H730,H725等系列。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106731
QQ
发表于 2023-9-16 22:20:19 | 显示全部楼层
whowyj 发表于 2023-9-16 16:33
意思是说我还是存入0x5a5a5a5a到烧录器,烧录器会自动帮我加密,并且写到芯片的不是0x5a5a5a5a,而是在运 ...

自己工程直接生成加密固件,这个我二楼贴制作方法了,给第3方发的就是加密好的固件,保证整个环节加密,没有疏漏。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-2 18:31 , Processed in 0.358608 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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