搜索
bottom↓
回复: 20
打印 上一主题 下一主题

像SWD这种公开协议的烧录过程加密是否有意义

[复制链接]

出0入0汤圆

跳转到指定楼层
1
发表于 2023-8-19 11:51:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
看到有的脱机烧录器有次数限制,还有用平台直接发布程序给用户自己烧录,为了防止程序泄露,通常在传输过程中进行加密,防止从SWD线上读取有效内容。

但是如果破解者有能力从SWD线上读取并分晰协议得到代码,那么根据SWD的公开协议,模拟一个目标芯片,不就可以得到最终代码了吗?不管过程怎么加密,最后都要把最终的代码写到FLASH的。

出20入186汤圆

2
发表于 2023-8-19 11:55:41 来自手机 | 只看该作者
只是再增加一点难度而已

出0入300汤圆

3
发表于 2023-8-19 11:55:58 来自手机 | 只看该作者
没见过中国造的稳压电源或者万用表有安捷伦那么详细的器件清单,电路图和工作原理说明,中国的电子工程师整天不是想抄别人的就是想防止被抄

出0入0汤圆

4
发表于 2023-8-19 12:31:42 | 只看该作者
有这能力的人都去干专职破解者了,开盖、去UID不是挣的更多

出0入0汤圆

5
 楼主| 发表于 2023-8-19 13:07:34 | 只看该作者
modbus 发表于 2023-8-19 12:31
有这能力的人都去干专职破解者了,开盖、去UID不是挣的更多
(引用自4楼)

开盖门槛高了,写个目标协议是纯软件,而且一个模拟器就可以通用所有的加密传输。

我只是想印证一下我的看法,这些加密传输真的就这么容易破吗?那些脱机烧录器应该不会这么简单吧,是不是我没理解其中的原理。

像STC的加密传输,我认为是有比较高的门槛的,首先下载协议是不公开的,无法模拟目标,加密传输是先在芯片里写了解密密码,但是SWD协议是完全公开的,加密和解密都是实时进行的,这样模拟目标就能得到最终写入Flash的内容,应该是这样吧?

出0入0汤圆

6
发表于 2023-8-19 13:21:17 来自手机 | 只看该作者
weavr 发表于 2023-8-19 13:07
开盖门槛高了,写个目标协议是纯软件,而且一个模拟器就可以通用所有的加密传输。

我只是想印证一下我的 ...

(引用自5楼)

你可以得到每一次写入flash的完整内容,但如果每次写入的内容都是不一样,且写入这片子的内容复制到另外一片却不能工作。这样你所做的就意义不大了吧?
每次烧写,都是读出芯片唯一id,然后依据id现在上位机对原始烧写文件进行加密处理,从而得到一个id关联的镜像用于烧写,在运行时也时不时检查id,这你怎么破?

出0入0汤圆

7
 楼主| 发表于 2023-8-19 13:42:25 | 只看该作者
liandao 发表于 2023-8-19 13:21
你可以得到每一次写入flash的完整内容,但如果每次写入的内容都是不一样,且写入这片子的内容复制到另外 ...
(引用自6楼)

我觉得这是两个加密:

一个是目标程序本身的加密,比如对比唯一ID等手段让FLASH的内容复制到另一片也不能工作。

另一个是烧录器在传输中的加密,防止在烧录过程中代码泄露,目前讨论的是这种加密传输的情况,烧录器应该不会修改程序功能加上验证ID,只是在传输过程通过唯一ID加密传输的代码,最终写入FLASH的代码是解密过的,得到这份代码应该相当于开盖拿到的代码,至于第一种在程序中有加密功能的代码,即使是开盖拿到,也是一样工作不了,需要二次反汇编解密等,这个先不讨论。

出0入4汤圆

8
发表于 2023-8-19 14:04:05 | 只看该作者
weavr 发表于 2023-8-19 13:42
我觉得这是两个加密:

一个是目标程序本身的加密,比如对比唯一ID等手段让FLASH的内容复制到另一片也不 ...
(引用自7楼)

如果先把烧录代码传到SRAM里,通过SRAM里的程序来下载,那么SWD就可以传输加密的数据了

出0入0汤圆

9
 楼主| 发表于 2023-8-19 14:33:14 | 只看该作者
LL00 发表于 2023-8-19 14:04
如果先把烧录代码传到SRAM里,通过SRAM里的程序来下载,那么SWD就可以传输加密的数据了 ...
(引用自8楼)

烧录器与SRAM之间无论怎么加密,最终SRAM需要解出代码写到FLASH中,如果模拟一个目标芯片,是不是就能得到最终写到FLASH中的代码,能力有限,不知模拟目标芯片难度怎么样。或者说让目标芯片成为一个不能读保护的芯片,这样烧录完就能直接从flash中读出代码,烧写时的加密等于被绕过了。

出0入4汤圆

10
发表于 2023-8-19 14:47:22 | 只看该作者
weavr 发表于 2023-8-19 14:33
烧录器与SRAM之间无论怎么加密,最终SRAM需要解出代码写到FLASH中,如果模拟一个目标芯片,是不是就能得 ...
(引用自9楼)

加密和解密都使用待烧录芯片的UID

出0入18汤圆

11
发表于 2023-8-19 14:48:19 来自手机 | 只看该作者
如果sram只有1k,而扇区最小是4k,这个怎么操作啊,分几步做吗?

出0入0汤圆

12
发表于 2023-8-19 15:04:30 | 只看该作者
weavr 发表于 2023-8-19 13:07
开盖门槛高了,写个目标协议是纯软件,而且一个模拟器就可以通用所有的加密传输。

我只是想印证一下我的 ...
(引用自5楼)

像STM32F103开盖也才2000元

出0入18汤圆

13
发表于 2023-8-19 16:06:23 来自手机 | 只看该作者
modbus 发表于 2023-8-19 15:04
像STM32F103开盖也才2000元
(引用自12楼)

任何gd 国明 小华 灵动的都能开盖吗?

出200入2554汤圆

14
发表于 2023-8-19 17:29:08 | 只看该作者
SWD 相当于传输层,加密设计思路之一,就是在不安全的传输层上(例如可被监听)实现点对点安全的传输(即使监听也是密文)。

参考下 13.56M 射频卡和读卡器的传输过程:
a. 射频卡靠近上电;
b. 若干次握手后,射频卡、读卡器均拥有了对方的 AES 公钥;
c. 每次传输,均使用对方公钥进行 AES 加密,然后接收方使用自己的私钥进行解密。

观察这个过程,除非你能在交换秘钥阶段截获秘钥,否则就算监听也全是密文。

出0入0汤圆

15
 楼主| 发表于 2023-8-20 06:38:10 | 只看该作者
t3486784401 发表于 2023-8-19 17:29
SWD 相当于传输层,加密设计思路之一,就是在不安全的传输层上(例如可被监听)实现点对点安全的传输(即使 ...
(引用自14楼)

加密在传输过程中我相信是很难解的,我本来认为高手能用软件模拟单片机,烧录器让我做什么我就做什么,让我写进FLASH的内容就是解密过的。不过后来想想要软件模拟单片机难度应该比较大,所以加密传输还是比较有用的。

出0入30汤圆

16
发表于 2023-8-20 10:02:21 来自手机 | 只看该作者
t3486784401 发表于 2023-8-19 17:29
SWD 相当于传输层,加密设计思路之一,就是在不安全的传输层上(例如可被监听)实现点对点安全的传输(即使 ...
(引用自14楼)

秘钥/私钥不交换吧,

出0入0汤圆

17
发表于 2023-8-20 10:42:24 | 只看该作者
tang_qianfeng 发表于 2023-8-19 16:06
任何gd 国明 小华 灵动的都能开盖吗?
(引用自13楼)

没有单片机是开不了盖的

出200入2554汤圆

18
发表于 2023-8-20 13:13:22 | 只看该作者
ycheng2004 发表于 2023-8-20 10:02
秘钥/私钥不交换吧,
(引用自16楼)

交换公钥,具体过程参考 RF522 手册,记得是有三次握手来回。

并且交换的过程本身也是加密的。

出200入2554汤圆

19
发表于 2023-8-20 13:17:02 | 只看该作者
weavr 发表于 2023-8-20 06:38
加密在传输过程中我相信是很难解的,我本来认为高手能用软件模拟单片机,烧录器让我做什么我就做什么,让 ...
(引用自15楼)

所谓加密,就类似于:

同一片芯片,每次烧录时传输的密文都不同(但烧录结果经过解密后是一致的)。
这样一来即使能监听+捕获某一次的传输,并不代表下次用相同的传输就可以正常,
因为单片机端已经改变了密文序列的初值,需要编程器端同步响应。而如何同步响应,就是秘钥本身

出0入30汤圆

20
发表于 2023-8-20 16:55:04 来自手机 | 只看该作者
t3486784401 发表于 2023-8-20 13:13
交换公钥,具体过程参考 RF522 手册,记得是有三次握手来回。

并且交换的过程本身也是加密的。 ...

(引用自18楼)

公钥就是公开的,知道公钥也不能把密文转明文吧,

出200入2554汤圆

21
发表于 2023-8-20 21:01:11 | 只看该作者
ycheng2004 发表于 2023-8-20 16:55
公钥就是公开的,知道公钥也不能把密文转明文吧,
(引用自20楼)

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

本版积分规则

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

GMT+8, 2024-5-2 13:22

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

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