打印

STM32 的唯一 ID ---加密方式升级

[复制链接]
25303|64
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
IJK|  楼主 | 2011-2-14 12:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 IJK 于 2011-2-14 13:33 编辑

看到大家讨论,STM32 的唯一 ID已经有**公司可以改写。这对大家的代码安全是个很大的挑战。

这里提供1个方法,原理跟原来的ID加密类似,但能解决唯一 ID被**公司改写的问题:

1)我们知道STM32唯一 ID的基地址位于0x1FFF F7E8,在memory mapping中处于system memory区域。同时,boot loader也在这个区域。

2)既然唯一 ID有**公司可以改写,那么把唯一ID的概念加以扩展,把从 0x1FFF F000~0x1FFF FFFF的整个区域当作唯一的ID,来加以利用。问题就此解决。

3)还可以考虑不同级别的安全方式。比如 唯一ID作为ID1,0x1FFF F800~0x1FFF F80F(即Option Bytes)作为ID2,0x1FFF F80F~0x1FFF FFFF(即reserved)作为ID3。

最后,套用1句话:“只要肯动脑筋,办法总比困难多”。
沙发
IJK|  楼主 | 2011-2-14 12:28 | 只看该作者
欢迎大家讨论。

插1句话,其实这个方法也适用于其它单片机,包括其它公司的单片机。

使用特权

评论回复
板凳
yb0121| | 2011-2-14 12:33 | 只看该作者
没仔细读过这些地址,然道除唯一ID外的地址还有不一样的?

使用特权

评论回复
地板
rockli| | 2011-2-14 13:28 | 只看该作者
如果把整个system memory区域原封不动复制呢?怎么区分?

使用特权

评论回复
5
IJK|  楼主 | 2011-2-14 13:35 | 只看该作者
没仔细读过这些地址,然道除唯一ID外的地址还有不一样的?
yb0121 发表于 2011-2-14 12:33


读读看,有不一样的

使用特权

评论回复
6
206022219002| | 2011-2-14 16:45 | 只看该作者
让ID参与数据运算

使用特权

评论回复
7
IJK|  楼主 | 2011-2-15 09:16 | 只看该作者
本帖最后由 IJK 于 2011-2-15 09:18 编辑
如果把整个system memory区域原封不动复制呢?怎么区分?
rockli 发表于 2011-2-14 13:28


system memory区域 只是 0x1FFF F000~0x1FFF FFFF(指STM32 High density及以下容量)的整个区域的一部分。

使用特权

评论回复
8
Aaron238| | 2011-2-15 10:14 | 只看该作者
应该是没有用的!!!

使用特权

评论回复
9
IJK|  楼主 | 2011-2-15 12:13 | 只看该作者
应该是没有用的!!!
Aaron238 发表于 2011-2-15 10:14


为什么?

使用特权

评论回复
10
席君秋| | 2011-2-15 12:48 | 只看该作者
“2)既然唯一 ID有**公司可以改写,那么把唯一ID的概念加以扩展,把从 0x1FFF F000~0x1FFF FFFF的整个区域当作唯一的ID,来加以利用。问题就此解决。”

把整个区域的数据从母片那里原封不动的复制过来,同时把唯一ID号修改过来,这样的话,还有用吗?

关键的问题在于,目前这个唯一ID号是可修改的。因为是可修改的,所以扩展ID区域也是徒劳的。

使用特权

评论回复
11
donkey89| | 2011-2-15 14:55 | 只看该作者
毫无意义,安慰一下自己还成

使用特权

评论回复
12
香水城| | 2011-2-15 15:27 | 只看该作者
毫无意义,安慰一下自己还成
donkey89 发表于 2011-2-15 14:55


任何加密措施都有其局限性,不同的是解密的成本有高有低。

还是那句话:这个世界上没有刺不穿的盾,也没有无坚不摧的矛,永远不会有!

使用特权

评论回复
13
way2888| | 2011-2-15 20:24 | 只看该作者
懒得说,唯一ID都能改写了,你扩展那些区还有啥用?

使用特权

评论回复
14
IJK|  楼主 | 2011-2-16 09:14 | 只看该作者
本帖最后由 IJK 于 2011-2-16 09:27 编辑

请大家不要人云亦云。有兴趣的不妨比较一下不同芯片的整个0x1FFF F000~0x1FFF FFFF区域。

0x1FFF F000~0x1FFF FFFF区域包含 reserved区。

使用特权

评论回复
15
t.jm| | 2011-2-16 11:49 | 只看该作者
懒得说,唯一ID都能改写了,你扩展那些区还有啥用?
way2888 发表于 2011-2-15 20:24

还是有些意义的,有些数据是校准数据,原封不动的复制芯片工作就不正常了。

使用特权

评论回复
16
ddb_21ic| | 2011-2-17 11:58 | 只看该作者
1、在SRAM里面运行,加备用电池,掉电必须返厂
2、加个rfID/IC卡做验证

使用特权

评论回复
17
itelectron| | 2011-2-17 13:12 | 只看该作者
让ID参与数据运算
206022219002 发表于 2011-2-14 16:45

同上
每次烧写的时候 把目标芯片的ID读 出来 然后 参与 运算
多用指针+ID,我飞我飞  我飞飞  呵呵!@!

使用特权

评论回复
18
STARM| | 2011-2-17 23:38 | 只看该作者
在SRAM里面运行,加备用电池,掉电必须返厂 -- SRAM 没有保护的

使用特权

评论回复
19
炊烟袅袅| | 2011-2-18 07:04 | 只看该作者
在SRAM里面运行,加备用电池,掉电必须返厂 -- SRAM 没有保护的
------------------------------
人家在不掉电的情况下,完全可以把你的SRAM的内容读出来,照样抄你的产品。如果人家再换成ROM,那比你的还便宜了。
程序放在RAM中,出一点问题你的产品就要返厂,纯粹折腾自己。

使用特权

评论回复
评论
明月小厨 2014-3-2 00:05 回复TA
是这样的 
20
Aaron238| | 2011-2-19 16:19 | 只看该作者
哈哈! 生产都是问题!

使用特权

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

本版积分规则

IJK

20

主题

3552

帖子

5

粉丝