19466|19

65

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

怎样对STM32加密,防止被读出复制? [复制链接]

                                 现有一产品,用STM32来实现,功能基本实现,请教怎样进行一些加密,最大程度防止被读出、复制?谢谢
此帖出自stm32/stm8论坛

最新回复

学习了,程序里面我一般都是好几个常量宏经过运算才合成的最终地址   详情 回复 发表于 2021-11-4 15:15
点赞 关注
 

回复
举报

78

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
                                 芯片里面的程序能被读出吗,很有兴趣,呵呵
此帖出自stm32/stm8论坛
 
 

回复

53

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
1, 使能芯片的读保护功能

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

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

暂时想到这些,等待大侠补充。
此帖出自stm32/stm8论坛
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

4
 
                                 补充一下,是需要IAP的。我也想到用芯片本身的ID,但这样的话,每一个芯片的程序都不尽相同,是IAP前上位机就处理好,还是到了具体的芯片上再处理?望各位大虾指导!
此帖出自stm32/stm8论坛
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

5
 
                                 楼上:程序是可以做成相同的。 加密算法,通讯协议要设计好;不能让别人通过升级文件或窃取IAP通讯信息而暴露二进制源码。
此帖出自stm32/stm8论坛
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(中级)

6
 
                                 做成产品,加密肯定是需要的
此帖出自stm32/stm8论坛
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

7
 
                                 麻烦5楼能说的详细点吗?
此帖出自stm32/stm8论坛
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

8
 
提供一个思路

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

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


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

回复

74

帖子

0

TA的资源

一粒金砂(初级)

9
 
                                 只要使能STM32的读保护,就可以保护你的程序被读出。
此帖出自stm32/stm8论坛
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

10
 
                                 使能了读保护,就一定保证不能被读出吗
此帖出自stm32/stm8论坛
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

11
 
                                 学习了!
此帖出自stm32/stm8论坛
 
 
 

回复

86

帖子

0

TA的资源

一粒金砂(初级)

12
 
                                 学习了 谢谢····
此帖出自stm32/stm8论坛
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

13
 
                                 主要思路就是利用好那个唯一的ID
此帖出自stm32/stm8论坛
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

14
 
                                 请参考mcuisp.exe的反拷贝功能
此帖出自stm32/stm8论坛
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

15
 
加密确实是一个问题

特别是带IAP的

值得关注
此帖出自stm32/stm8论坛
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

16
 
                                 现在都瞄着加密……
此帖出自stm32/stm8论坛
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

17
 
                                 关注一下。
此帖出自stm32/stm8论坛
 
 
 

回复

32

帖子

0

TA的资源

一粒金砂(中级)

18
 

三、利用id做软件加密

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

 

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

 

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

 

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

 

四、做软件加密时注意

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

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

此帖出自stm32/stm8论坛
 
 
 

回复

32

帖子

0

TA的资源

一粒金砂(中级)

19
 

此帖出自stm32/stm8论坛

点评

学习了,程序里面我一般都是好几个常量宏经过运算才合成的最终地址  详情 回复 发表于 2021-11-4 15:15
 
 
 

回复

51

帖子

0

TA的资源

一粒金砂(中级)

20
 

学习了,程序里面我一般都是好几个常量宏经过运算才合成的最终地址

此帖出自stm32/stm8论坛
 
个人签名

能吃会睡,未来可期

 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表