你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【经验分享】关于STM32加密

[复制链接]
STMCU小助手 发布时间:2022-1-22 18:56
摘要:8 `, q. y8 g) X$ {
, f5 U+ j3 l' F4 b- v
当然,有人说,没有解不了密的IC,的确,解密是一项技术,只要有人类在不断的研究,它就有破解的一天;但是加密后的IC会增加破解的难度与破解成本,当破解的成本大于收益时,自然就会使破解者望而却步。0 A" S/ Z  ^8 s4 F( q
* m+ Y) g  C: j, k1 H0 l( |, C
STM32芯片这两年销量很好,它的性能和价格都很不错,但如何对STM32进行加密呢,本人结合自已使用STM32 MCU一年多的经验,总结一下我对它加密的理解与方法。
  \, ?  p$ j- @$ h% j2 R6 W( b: F
关键字: STM32 加密 读保护
# L' q, l" m! j& O% g% s0 I6 Z- F+ F9 j0 z! ?
加密,最基本的方法是置读保护,这样可以防止外部工具非法访问,在STM32官网发布的 串口ISP软件中有置读保护和加密选项,选择一个就可以了,这样外部工具就无法对FLASH进行读写操作,但我要重新烧写FLASH怎么办?只能清读保护,而清读保护后,芯片内部会自动擦除FLASH全部内容。
1 D4 z5 k4 A8 h, M8 L2 k4 k* N" X) e8 ~5 D! T( n9 R
还有人说,置读保护还不够安全,说要采用芯片内的唯一ID来加密,在程序里识别芯片的ID,如果ID不对,则程序不运行,当然,这样安全性又要更高一些,但每个芯片的ID不一样,因此对应的程序也应该不一样,那如何处理呢?有网友说:采购的时候,产品同批生产的ID号应该是连续的,可以通过判别ID的范围;还有网友说,在烧录工具里做一个算法,读取芯片ID,再修改相应的二进制文件。当然还会有很多种方法,这里不展开讨论。
: Q: d$ i( p/ s- K) {1 ?  X
* E6 {3 T' }- g0 f; N- i6 w以上介绍的只是一种情况,在实际的应用中还会发生第二种情况。  C) }7 W: j# X( H

+ F- h) c: H/ R! r- `$ N! j我们知道,STM32的内部FLASH是用户可编程的,也就是说它支持IAP,而IAP中的APP代码一般是需要开放的,那么只有保证BOOT的代码安全,才能确保不被破解。
% S  n) ^# h2 w6 |4 }% G1 |' \4 l* ~! Q" j
前面提到,当IC置读保护后,外部工具不能访问内部FLASH,但CPU可以访问,破解者完全可以自已编写一段代码通过BOOT下载到IC 运行,然后在程序中读出你的BOOT代码。
) f$ t2 X! J) G$ v" w2 x2 O
$ W! U- C! r1 Y8 Z9 F2 f$ R& r只能加以限制,使别人的代码运行不了,才能保证BOOT不被读出。4 B# ~2 R, l: L2 e/ V. j& Y# |, \
2 V6 g+ E3 \: \
常用的方法是采用加密算法,如AES;流程如下:
% [6 c( i) W# e' U+ i2 g2 e+ B+ j$ x7 k/ A+ d, V( d
APP代码加密,下载时,在BOOT中解密,这样,只有通过正确加密的APP代码才能正常的运行,因此加密的算法就成了你的密钥,而这个是你独有的。
8 P2 S6 E7 t1 e1 e
赞 收藏 评论0 发布时间:2022-1-22 18:56

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版