OpenEdv-开源电子网

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

利用STM32的唯一ID编码来加密

[复制链接]

14

主题

67

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
230
金钱
230
注册时间
2011-8-8
在线时间
15 小时
发表于 2014-11-12 14:54:42 | 显示全部楼层 |阅读模式

最近在网上看到了利用STM32的ID编码结合来进行产品加密,觉得挺好的,拿来分享下:

产品唯一的身份标识非常适合:
● 用来作为序列号(例如USB字符序列号或者其他的终端应用)
● 用来作为密码,在编写闪存时,将此唯一标识与软件加解密算法结合使用,提高代码在闪存存储器内的安全性。
● 用来激活带安全机制的自举过程
96位的产品唯一身份标识所提供的参考号码对任意一个STM32微控制器,在任何情况下都是唯一的。用户在何种情况下,都不能修改这个身份标识。
这个96位的产品唯一身份标识,按照用户不同的用法,可以以字节(8位)为单位读取,也可以以半字(16位)或者全字(32位)读取。
基地址:0x1FFF F7E8

每个CPU 出厂的时候都
配置的一个ID,96 位的.这个唯一码可以利用作软件加密.......

static u32 CpuID[3];
static u32 Lock_Code;

void GetLockCode(void)
{
 //获取CPU唯一ID
 CpuID[0]=*(vu32*)(0x1ffff7e8);
 CpuID[1]=*(vu32*)(0x1ffff7ec);
 CpuID[2]=*(vu32*)(0x1ffff7f0);
 //加密算法,很简单的加密算法
 Lock_Code=(CpuID[0]>>1)+(CpuID[1]>>2)+(CpuID[2]>>3);
}

上帝之所以创造指纹,是因为他想让人们知道:其实,每个人都有伤痕。?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

44

主题

186

帖子

4

精华

金牌会员

Rank: 6Rank: 6

积分
1260
金钱
1260
注册时间
2012-9-1
在线时间
67 小时
发表于 2015-4-29 19:48:42 | 显示全部楼层
整天研究加密的,单片机领域国人有什么值得别人破解的程序吗?????
程序写的不好别说加密,就是你开源都不一定有人用,还是好好写代码来的实际。
不好意思,有点偏激。
回复 支持 1 反对 5

使用道具 举报

30

主题

1170

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1993
金钱
1993
注册时间
2016-2-16
在线时间
527 小时
发表于 2016-7-7 16:19:26 | 显示全部楼层
为你分心 发表于 2016-7-7 15:27
板子肯定要批量生产了,批量生产怎么办??不肯定每个板子的程序都不一样吧??但是每个板子ID又都不一样, ...

以前有个大神说过办法,弄好几个加锁,解锁1.2个后就假装破解成功,然后可以正常运行,然后在一定时间后,比如4个月后自己把自己的flash擦除
回复 支持 1 反对 0

使用道具 举报

8

主题

569

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2363
金钱
2363
注册时间
2015-5-8
在线时间
320 小时
发表于 2018-3-18 22:39:58 | 显示全部楼层
ye781205 发表于 2015-4-29 19:48
整天研究加密的,单片机领域国人有什么值得别人破解的程序吗?????
程序写的不好别说加密,就是你开源 ...

但是成熟的产品利润是很丰厚的,并不是技术多难,你总不想别人直接抄个板,破译个程序直接量产吧
回复 支持 1 反对 0

使用道具 举报

1

主题

108

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
352
金钱
352
注册时间
2012-11-8
在线时间
44 小时
发表于 2015-1-8 13:45:42 | 显示全部楼层
烧程序以前用工具读出芯片ID,一进main函数处加入以下代码:

static u32 CpuID[3];
static u32 Lock_Code;

void GetLockCode(void)
{
 //获取CPU唯一ID
 CpuID[0]=*(vu32*)(0x1ffff7e8);
 CpuID[1]=*(vu32*)(0x1ffff7ec);
 CpuID[2]=*(vu32*)(0x1ffff7f0);
 //加密算法,很简单的加密算法
 Lock_Code=(CpuID[0]>>1)+(CpuID[1]>>2)+(CpuID[2]>>3);
}
if(Lock_Code != 0x123456789ABC) return; //假设0x123456789ABC是当前芯片的ID
回复 支持 0 反对 1

使用道具 举报

8

主题

193

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
303
金钱
303
注册时间
2012-12-19
在线时间
16 小时
发表于 2014-11-12 16:27:12 | 显示全部楼层
我也有这个想法
回复 支持 反对

使用道具 举报

164

主题

1230

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1477
金钱
1477
注册时间
2014-5-21
在线时间
342 小时
发表于 2015-1-8 09:06:38 | 显示全部楼层
破解也简单。。
彼高丽者,边夷贱类,不足待以仁义,不可责以常礼。古来以鱼鳖畜之,宜从阔略。若必欲绝其种类,恐兽穷则搏。
回复 支持 反对

使用道具 举报

30

主题

705

帖子

1

精华

新手上路

积分
21
金钱
21
注册时间
2013-3-14
在线时间
52 小时
发表于 2015-1-8 16:55:16 | 显示全部楼层
这个早就弄过了。我是把id写入一个存贮芯片里去,上电的时候就读取一下 然后比较一下。可以通过串口写入id到存贮芯片。
原子哥是不是又要出黑科技了呀。^_^...
回复 支持 反对

使用道具 举报

17

主题

342

帖子

0

精华

高级会员

Rank: 4

积分
544
金钱
544
注册时间
2014-4-24
在线时间
20 小时
发表于 2015-4-29 10:06:30 | 显示全部楼层
mark ~~~~谢谢
回复 支持 反对

使用道具 举报

233

主题

961

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1814
金钱
1814
注册时间
2011-10-9
在线时间
230 小时
发表于 2015-4-29 18:31:40 | 显示全部楼层
stm32系列的唯一ID是可以被修改的 这个在破解行业 已经通天了
回复 支持 反对

使用道具 举报

53

主题

608

帖子

0

精华

高级会员

Rank: 4

积分
890
金钱
890
注册时间
2013-3-29
在线时间
18 小时
发表于 2015-4-29 19:58:32 | 显示全部楼层
回复【8楼】ye781205:
---------------------------------
jiayou...
学电子,学音乐!!
回复 支持 反对

使用道具 举报

65

主题

440

帖子

0

精华

高级会员

Rank: 4

积分
782
金钱
782
注册时间
2012-8-29
在线时间
17 小时
发表于 2015-4-30 09:39:23 | 显示全部楼层
Flash写保护可行吗?
人生永远追逐着幻光,但谁把幻光看作幻光,谁便沉入无边的苦海
回复 支持 反对

使用道具 举报

4

主题

44

帖子

0

精华

初级会员

Rank: 2

积分
185
金钱
185
注册时间
2013-8-11
在线时间
25 小时
发表于 2016-5-2 20:49:07 | 显示全部楼层
fanghuiopenedv 发表于 2015-1-8 16:55
这个早就弄过了。我是把id写入一个存贮芯片里去,上电的时候就读取一下 然后比较一下。可以通过串口写 ...

MARK~~~~~~~~
回复 支持 反对

使用道具 举报

0

主题

41

帖子

0

精华

初级会员

Rank: 2

积分
139
金钱
139
注册时间
2014-1-11
在线时间
23 小时
发表于 2016-5-17 10:00:49 | 显示全部楼层
可以参考,很好。
回复 支持 反对

使用道具 举报

27

主题

99

帖子

0

精华

高级会员

Rank: 4

积分
848
金钱
848
注册时间
2013-12-25
在线时间
103 小时
发表于 2016-7-7 15:27:09 | 显示全部楼层
板子肯定要批量生产了,批量生产怎么办??不肯定每个板子的程序都不一样吧??但是每个板子ID又都不一样,有啥好的解决方案了啊、、、、
回复 支持 反对

使用道具 举报

35

主题

309

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2641
金钱
2641
注册时间
2016-8-10
在线时间
470 小时
发表于 2016-12-23 18:25:03 | 显示全部楼层
cornrn 发表于 2015-1-8 09:06
破解也简单。。

咋个 破解
回复 支持 反对

使用道具 举报

35

主题

309

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2641
金钱
2641
注册时间
2016-8-10
在线时间
470 小时
发表于 2016-12-23 18:25:49 | 显示全部楼层
simms01 发表于 2015-4-29 18:31
stm32系列的唯一ID是可以被修改的 这个在破解行业 已经通天了

咋个破解
回复 支持 反对

使用道具 举报

6

主题

107

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
374
金钱
374
注册时间
2012-12-30
在线时间
48 小时
发表于 2016-12-24 01:45:52 | 显示全部楼层
憨厚诚实大叔 发表于 2016-7-7 16:19
以前有个大神说过办法,弄好几个加锁,解锁1.2个后就假装破解成功,然后可以正常运行,然后在一定时间后 ...

我是在BootLoader时第一次启动时读出ID,然后类似于CRC算出来放在后面用不到的flash里面,然后加载主程序后就校验,没有授权的,也可以运行,但是加电次数自动累加,500次以后就破坏程序区
回复 支持 反对

使用道具 举报

6

主题

107

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
374
金钱
374
注册时间
2012-12-30
在线时间
48 小时
发表于 2016-12-24 01:47:49 | 显示全部楼层
我是在BootLoader时第一次启动时读出ID,然后类似于CRC算出来放在后面用不到的flash里面,然后加载主程序后就校验,没有授权的,也可以运行,但是加电次数自动累加,500次以后就破坏程序区
回复 支持 反对

使用道具 举报

17

主题

587

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4467
金钱
4467
注册时间
2013-6-27
在线时间
565 小时
发表于 2016-12-24 08:28:05 | 显示全部楼层
为你分心 发表于 2016-7-7 15:27
板子肯定要批量生产了,批量生产怎么办??不肯定每个板子的程序都不一样吧??但是每个板子ID又都不一样, ...

对每个产品进行编号设置,根据编号就可以知道对应产品。
让我们的思维驾驭在电的速度之上!
回复 支持 反对

使用道具 举报

8

主题

48

帖子

0

精华

初级会员

Rank: 2

积分
135
金钱
135
注册时间
2015-11-9
在线时间
23 小时
发表于 2017-5-20 14:43:19 | 显示全部楼层
cornrn 发表于 2015-1-8 09:06
破解也简单。。

你签名亮了
回复 支持 反对

使用道具 举报

33

主题

1628

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6679
金钱
6679
注册时间
2015-8-25
在线时间
1036 小时
发表于 2017-5-20 15:58:34 | 显示全部楼层
He who fights with monsters should look to it that he himself does not become a monster, when you gaze long into the abyss, the abyss also gazes into you.
过于执着就会陷入其中,迷失自己,困住自己。
回复 支持 反对

使用道具 举报

164

主题

1230

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1477
金钱
1477
注册时间
2014-5-21
在线时间
342 小时
发表于 2017-5-23 11:04:07 | 显示全部楼层
本帖最后由 cornrn 于 2017-5-23 11:07 编辑

一直这么亮呀
次卧.jpg
次卧尺寸图.jpg
米多.jpg
主卧.jpg
主卧室尺寸图.jpg

主卧次卧尺寸图.rar

13.56 MB, 下载次数: 312

彼高丽者,边夷贱类,不足待以仁义,不可责以常礼。古来以鱼鳖畜之,宜从阔略。若必欲绝其种类,恐兽穷则搏。
回复 支持 反对

使用道具 举报

2

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
175
金钱
175
注册时间
2016-3-22
在线时间
31 小时
发表于 2017-5-23 14:50:03 | 显示全部楼层
ye781205 发表于 2015-4-29 19:48
整天研究加密的,单片机领域国人有什么值得别人破解的程序吗?????
程序写的不好别说加密,就是你开源 ...

眼高于顶,志大才疏
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2018-2-5
在线时间
2 小时
发表于 2018-3-18 21:39:51 | 显示全部楼层
cornrn 发表于 2015-1-8 09:06
破解也简单。。

你会破解?请联系我,qq:1120822729
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2018-2-5
在线时间
2 小时
发表于 2018-3-18 21:41:28 | 显示全部楼层
simms01 发表于 2015-4-29 18:31
stm32系列的唯一ID是可以被修改的 这个在破解行业 已经通天了

如何修改STM32芯片的唯一ID?您的意思是我可以买到一批ID一样的STM32芯片?有机会探讨一下,我的QQ:1120822729
回复 支持 反对

使用道具 举报

3

主题

144

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
498
金钱
498
注册时间
2018-3-5
在线时间
59 小时
发表于 2018-3-19 09:42:27 | 显示全部楼层
用这个一般是作为序列号的输入来用,加密说实话,ST的单片机破解已经略成熟了,TI的可能还比较困难,破解一般是尽可能提高门槛,彻底杜绝基本不可能,除非用量子通信,厉害了我的国
回复 支持 反对

使用道具 举报

2

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
170
金钱
170
注册时间
2018-5-30
在线时间
36 小时
发表于 2018-6-1 09:19:42 | 显示全部楼层
提供单片机id加密安全性测试,加密芯片应用服务
id加密是比较好的程序加密方式,但有些开发人员做软加密过程太简单了,
破解软加密难度非常低,提供id加密安全性测试。各种id加密方式咨询,QQ:9272078

id加密方法咨询,id加密程序测试
回复 支持 反对

使用道具 举报

2

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
170
金钱
170
注册时间
2018-5-30
在线时间
36 小时
发表于 2019-4-17 07:59:13 | 显示全部楼层
各类单片机、DSP、ARM的解密及反汇编技术研究,
为客户解决在解密及解密程序上遇到的不同问题。
研究各类国内外同行的电子产品程序设计精要及关键算法,
根据客户需求增加全新功能,承接各类单片机解密、STC、
PIC、AVR、STM8、STM32、C8051F等单片机软加密破jie
51、AVR、PIC、NEC、SAMSUNG、STM8、STM32F、HT、SONIX、EMC、MSP430、PIC24、
PIC30、PIC33等单片机反汇编、单片机解密出来程序功能修改、单片机反汇编、
单片机型号替代,单片机显示界面修改(公司名、电话及LOGO等)、
各类通讯协议分析、解密程序增加软加密功能及各类加密算法破jie
联系QQ:5225016
回复 支持 反对

使用道具 举报

2

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
170
金钱
170
注册时间
2018-5-30
在线时间
36 小时
发表于 2020-12-11 14:10:58 | 显示全部楼层
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

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
170
金钱
170
注册时间
2018-5-30
在线时间
36 小时
发表于 2021-8-31 15:28:49 | 显示全部楼层
设计好的程序,如果担心被破解,最好id软件加密先给我免费破破看  Q5225016
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-1 01:55

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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