打印

怎样对STM32加密,防止被读出复制?

[复制链接]
27070|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sohowork|  楼主 | 2010-1-5 16:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现有一产品,用STM32来实现,功能基本实现,请教怎样进行一些加密,最大程度防止被读出、复制?谢谢
沙发
sinadz| | 2010-1-5 16:14 | 只看该作者
芯片里面的程序能被读出吗,很有兴趣,呵呵

使用特权

评论回复
板凳
vigia| | 2010-1-5 16:49 | 只看该作者
1, 使能芯片的读保护功能

2, 灵活使用STM32的唯一ID,上电运行时,如果读ID不对,则程序不能正常运行。

3, 如果需要做IAP,则要对读出或写入的数据进行加密。

暂时想到这些,等待大侠补充。

使用特权

评论回复
地板
sohowork|  楼主 | 2010-1-5 19:56 | 只看该作者
补充一下,是需要IAP的。我也想到用芯片本身的ID,但这样的话,每一个芯片的程序都不尽相同,是IAP前上位机就处理好,还是到了具体的芯片上再处理?望各位大虾指导!

使用特权

评论回复
5
junsi| | 2010-1-6 00:32 | 只看该作者
楼上:程序是可以做成相同的。 加密算法,通讯协议要设计好;不能让别人通过升级文件或窃取IAP通讯信息而暴露二进制源码。

使用特权

评论回复
6
dfsa| | 2010-1-6 13:59 | 只看该作者
做成产品,加密肯定是需要的

使用特权

评论回复
7
sohowork|  楼主 | 2010-1-7 13:18 | 只看该作者
麻烦5楼能说的详细点吗?

使用特权

评论回复
8
vigia| | 2010-1-7 14:05 | 只看该作者
提供一个思路

芯片内部先保存一个用唯一ID加密以后生成的数据

做IAP的时候,先把这个数据读出来,解密,再和芯片的ID比较,如果是一致的,说明芯片的来源可靠。


然后IAP应用程序根据芯片ID,对要烧录到芯片的BIN文件进行加密,再把加密过的数据传给芯片,芯片内部的BOOTLOADER代码根据自身ID,对加密以后的数据解密,并烧写入FLASH。这样在通信端口进行传输的数据就都是加密过的数据,保证了通信通道上的安全性。

使用特权

评论回复
9
ST_ARM| | 2010-1-7 15:14 | 只看该作者
只要使能STM32的读保护,就可以保护你的程序被读出。

使用特权

评论回复
10
pkat| | 2010-1-7 21:26 | 只看该作者
使能了读保护,就一定保证不能被读出吗

使用特权

评论回复
11
gfkdliling| | 2010-1-16 14:30 | 只看该作者
学习了!

使用特权

评论回复
12
ch_worm| | 2010-1-16 20:00 | 只看该作者
学习了 谢谢····

使用特权

评论回复
13
txcy| | 2010-1-16 21:38 | 只看该作者
主要思路就是利用好那个唯一的ID

使用特权

评论回复
14
mcuisp| | 2010-1-16 22:04 | 只看该作者
请参考mcuisp.exe的反拷贝功能

使用特权

评论回复
15
LIU_XF| | 2010-1-16 23:44 | 只看该作者
加密确实是一个问题

特别是带IAP的

值得关注

使用特权

评论回复
16
zwll| | 2010-1-16 23:58 | 只看该作者
现在都瞄着加密……

使用特权

评论回复
17
OneMillion| | 2010-1-17 22:06 | 只看该作者
关注一下。

使用特权

评论回复
18
pdh168| | 2014-4-29 17:57 | 只看该作者
解密有什么方法?

使用特权

评论回复
19
meijc119| | 2020-12-19 09:54 | 只看该作者
三、利用id做软件加密

1,如果板子上有外部存储器,可以先编写一个程序,利用算法把id计算得到一些值存入外部存储器,然后再烧写真正的程序,真正的程序去校验外部存储器的数据是否合法即可



2,利用板子上按键组合,或是上电按住某些键,程序在这个时候利用算法把id计算得到一些值存入程序区(stm8为EE区),程序运行时去验证程序区数据是否正确



3,轩微编程器有软件加密的功能,编程器会读芯片id,根据算法直接改写缓冲区,达到软件加密的作用



4,读出的id通过一定算法,例如异或加上一个数,得到的数据存入flash(只运行一次,运行后标志位也存入flash),下次读到这个标志位,就不运行这个程序。



四、做软件加密时注意

1,不要在程序中直接出现id地址,例如STM32:1FFFF7E8 1FFFF7EC 1FFFF7F0   STM8: 0x4865~0x4870

2, 利用校验和或是crc对程序区进行校验,防止改程序

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

141

帖子

1

粉丝