OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 10239|回复: 19

STM32加密方法探讨

[复制链接]

6

主题

57

帖子

0

精华

初级会员

Rank: 2

积分
144
金钱
144
注册时间
2011-11-13
在线时间
13 小时
发表于 2013-3-31 23:28:36 | 显示全部楼层 |阅读模式
如题 ;我自己用的方法是32自身“唯一”ID和18B20来做的,不知道还有没有更好的做法;各位大侠进来说说吧,保卫我们的硕果啊!我去年被盗了两次,这个加密方法还没有出现被盗,不过才使用时间才半年!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

6

帖子

0

精华

新手上路

积分
24
金钱
24
注册时间
2016-10-19
在线时间
1 小时
发表于 2016-10-19 14:21:36 | 显示全部楼层
加 密 方 案
   目前市场上很多嵌入式产品方案都是可以破解复制的,主要是因为方案主芯片不具备防破解的功能,这就导致开发者投入大量精力、财力开发的新产品一上市就被别人复制,到市场上的只能以价格竞争,最后工厂复制的产品反而价格更有优势,因为他们的开发投入几乎可以忽略不计。
   所以针对这种主芯片可以被破解的产品方案,开发者需要在开发时在产品方案中使用加密芯片并设计合理的加密方案。开发者首先需要选定性价比高的加密芯片,然后再设计加密方案。
   市面上加密芯片一般有两种:一种是传统的逻辑加密芯片,可配数据与主芯片做相互认证起到简单的加密功能;另一种是智能卡内核的可编程CPU加密芯片,可以将主芯片部分核心的算法、功能代码以及核心数据放入加密芯片。
   本方案选用具有智能卡内核的加密芯片SMEC98SP来举例实现使用STM32作为主芯片的产品的加密方案。SMEC98SP提供2K Bytes RAM、24K Bytes CODE,8K Bytes Data,用户可根据自己的需要来编程设计SEMC98SP与STM32配合的加密方案。下表为SEMC98SP与STM32配的的各种加密功能说明,具体可参见SMEC98SP评估板(STM32)源代码。

加密方案

加密方案
注:
①  STM32与SMEC98SP间的I2C协议指令接口规则开发者自定义。
②  上述加解密密钥均为对称DES或3DES密钥,每一对密钥开发者须在开发时分别在STM32和SMEC98SP上同时存储相同的值。
③  上述随机数都是8字节随机数,加解密算法采用DES或3DES。客户也可以根据自身需要设计或使用其他加解密算法。
④  SMEC98SP随机数发生器产生的随机数是真随机数,这样可以保证关键数据在通讯时每次都是随机数参与的,每次通讯的数据密文都是不一样的,可有效防止破解者在I2C通道上的数据监听分析。
⑤  DES或3DES加解密数据块必须为8字节整数倍,加密原始数据不是8的整数倍的按开发者自己定义补足8的整数倍,对于密文读写数据建议按LV结构补,比如:
l  原始数据为1122334455,补数后的数据为0511223344558000;
l  原始数据为11223344556677,补数后的数据为0711223344556677
l  原始数据为1122334455667788,补数后的数据为08112233445566778880000000000000
回复 支持 1 反对 0

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-4-1 00:09:32 | 显示全部楼层
这个没研究,不过你之前的产品也是用STM32做的?
被人反汇编?还是别人抄袭?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

20

主题

75

帖子

0

精华

初级会员

Rank: 2

积分
182
金钱
182
注册时间
2013-1-21
在线时间
3 小时
发表于 2013-4-1 09:18:51 | 显示全部楼层
被盗啊,霸气。。
好像有个入侵检测的功能
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-4-1 09:49:19 | 显示全部楼层
回复【3楼】jy02326166:
---------------------------------
那个不是防盗的吧!
呵呵,我在想真有能破解STM32程序的了?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

54

主题

537

帖子

0

精华

高级会员

Rank: 4

积分
797
金钱
797
注册时间
2012-2-27
在线时间
7 小时
发表于 2013-4-1 10:08:12 | 显示全部楼层
这个话题蛮有意思的
回复 支持 反对

使用道具 举报

25

主题

683

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1351
金钱
1351
注册时间
2012-4-25
在线时间
195 小时
发表于 2013-4-1 10:29:56 | 显示全部楼层
楼主,你吹大了吧,被 盗是基本不现实吧。你用STM32开发的产品,别人只要买一样,自己按照你原有的功能,硬件,软件,就可以仿照了。话说,开发STM32难度不大,资料也很全。别人花时间花功夫去 反汇编你的 BIN,真是吃了饭没事干,脑子有问题才干。
1-1
回复 支持 反对

使用道具 举报

6

主题

57

帖子

0

精华

初级会员

Rank: 2

积分
144
金钱
144
注册时间
2011-11-13
在线时间
13 小时
 楼主| 发表于 2013-4-29 14:34:14 | 显示全部楼层
我说的是真的,你们可以查一下STM32的破解相关;关键是一个产品,不是说你的功能怎样好就行,关键是使用的时候的效果,这个就不一样了;写个程序完成一个功能很容易,但是你要做一个产品就完全不一样了,相信大家有此感受吧!!这个话题主要是想和大家探讨如何提高加密方法和机制!
回复 支持 反对

使用道具 举报

6

主题

57

帖子

0

精华

初级会员

Rank: 2

积分
144
金钱
144
注册时间
2011-11-13
在线时间
13 小时
 楼主| 发表于 2013-4-29 14:36:37 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
我之前的产品被盗的那款就是用STM32F103RBT6做的,没有使用唯一ID加密,只是使用的一般加密!是被抄袭了(就是破解之后仿制了)
回复 支持 反对

使用道具 举报

6

主题

57

帖子

0

精华

初级会员

Rank: 2

积分
144
金钱
144
注册时间
2011-11-13
在线时间
13 小时
 楼主| 发表于 2013-4-29 14:38:16 | 显示全部楼层
回复【6楼】mygod:
---------------------------------
盗用你的程序,没有人要反汇编你的BIN吧,我说的被盗是指复制你的产品!
回复 支持 反对

使用道具 举报

25

主题

683

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1351
金钱
1351
注册时间
2012-4-25
在线时间
195 小时
发表于 2013-4-29 15:56:13 | 显示全部楼层
回复【9楼】wmlsxq:
---------------------------------
那不只是软件了,硬件也被盗了
1-1
回复 支持 反对

使用道具 举报

6

主题

57

帖子

0

精华

初级会员

Rank: 2

积分
144
金钱
144
注册时间
2011-11-13
在线时间
13 小时
 楼主| 发表于 2013-4-29 16:13:07 | 显示全部楼层
是的,因为硬件基本没有什么可以加密的,盗版很容易的!!主要是在软件上做好加密!
回复 支持 反对

使用道具 举报

27

主题

99

帖子

0

精华

高级会员

Rank: 4

积分
852
金钱
852
注册时间
2013-12-25
在线时间
103 小时
发表于 2016-7-7 14:04:05 | 显示全部楼层
我们公司大部分产品都是抄袭别的公司的,用专业设备读别的公司的芯片程序,读出来的HEX文件烧写到自己的板子上,硬件上直接抄板,烧上读出的程序,打上公司自己的标牌,把元器件改动一下就成了自己的产品了。。。有的程序能读出来,有的读不出来的别的公司帮忙破解,现在还没发现有破解不的,我自己的写程序也加密,但是感觉都会被破解,加密级别高了,破解成本费高公司就不破解了,加密级别低就破解成本低就破解,现在国内就是这现象。。。。。
海到无边天作岸?
山登绝顶我为峰
回复 支持 反对

使用道具 举报

27

主题

774

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1473
金钱
1473
注册时间
2013-4-12
在线时间
77 小时
发表于 2016-7-7 16:12:22 | 显示全部楼层
没加密用Jlink一读就读出flash了
简单是多么的快乐,而快乐就因你而简单!微芯动力LTKKS
回复 支持 反对

使用道具 举报

9

主题

92

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1134
金钱
1134
注册时间
2014-7-25
在线时间
176 小时
发表于 2016-8-15 14:44:57 | 显示全部楼层
如果是大一点的产品,可以利用SD卡加密,,每一张SD卡都有一个唯一的授权码,这样就可以加密了
回复 支持 反对

使用道具 举报

6

主题

57

帖子

0

精华

初级会员

Rank: 2

积分
144
金钱
144
注册时间
2011-11-13
在线时间
13 小时
 楼主| 发表于 2016-11-17 17:05:50 | 显示全部楼层
目前我使用的是唯一ID加上一个18B20或者CPLD,不知道这个安全怎样 只是用起来比较简单一些。成本都能接受!现在唯一的问题就是我的加密程序持续循环读取18B20的ID会有出错,所以我选择的是15S读取一次,就不会出错。
回复 支持 反对

使用道具 举报

1

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
83
金钱
83
注册时间
2019-4-18
在线时间
28 小时
发表于 2019-5-13 22:11:05 | 显示全部楼层
看看!!!!!!!!!!!!!!!
回复 支持 反对

使用道具 举报

3

主题

1907

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4106
金钱
4106
注册时间
2018-8-14
在线时间
696 小时
发表于 2019-5-14 17:52:57 | 显示全部楼层
唯一ID没用的, 用Level2保护吧, 暂时还没听到有便宜能破jie它的办法
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手上路

积分
21
金钱
21
注册时间
2019-7-25
在线时间
6 小时
发表于 2019-9-15 09:50:20 | 显示全部楼层
edmund1234 发表于 2019-5-14 17:52
唯一ID没用的, 用Level2保护吧, 暂时还没听到有便宜能破jie它的办法

Level2是啥?
回复 支持 反对

使用道具 举报

2

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
170
金钱
170
注册时间
2018-5-30
在线时间
36 小时
发表于 2020-12-9 14:31:14 | 显示全部楼层
利用id做软件加密
1,如果板子上有外部存储器,可以先编写一个程序,利用算法把id计算得到一些值存入外部存储器,然后再烧写真正的程序,真正的程序去校验外部存储器的数据是否合法即可

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

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

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

四、做软件加密时注意
1,不要在程序中直接出现id地址,例如STM32:1FFFF7E8 1FFFF7EC 1FFFF7F0   STM8: 0x4865~0x4870
2, 利用校验和或是crc对程序区进行校验,防止改程序
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-23 15:29

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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