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

使用STM32L0/L4/L4+系列MCU内嵌的FIREWALL安全访问代码和数据的敏感部分

[复制链接]
STMCU小助手 发布时间:2022-7-21 19:00
引言3 @' U! C" r7 \  ?! R) m- T
本应用笔记描述了如何以安全的方式使用STM32L0、STM32L4和STM32L4+系列微控制器内嵌的防火墙。该IP为来自第三方的代码和数据(如原始设备制造商(OEM)开发软件代码)提供了非常高的安全性。1 }/ |5 Z9 B/ Z6 v- I2 @# d; n! b
在已确定的内存映射段上指定敏感信息(如加密密钥、安全算法和关联的变量)。防火墙管理对这些受信区域的访问,并通过复位微控制器来拒绝非法访问。
1 }$ \/ V. H6 J8 t本文档介绍了一些典型用例,除STM32 MCU提供的其他一些保护功能外,保护级别需要防火墙。. C# n+ Q! a6 n" F
还重点介绍了必要的具体注意事项,以便实施最适当的软件开发策略以构建安全项目。此外还提供了建议列表,以便使软件调试阶段的开发更加简单快速。, x* x* f! o$ z% x/ X; i
本文档还介绍了与实施防火墙相关的软件/硬件约束,以正确处理STM32L0、STM32L4和STM32L4 +系列微控制器中可用的安全机制。1 Q- o& q& B8 R4 [- b- x( i3 o; {$ n

9 s& x! q5 q" c& K) J, c
7 z$ A+ H% G$ H, I  m2 q$ L
1 防火墙描述
$ c% T9 d$ M( I# Q, S1.1 引言1 {0 p/ d  k% e
防火墙可让用户在存储代码或数据的内存映射中建立受信区域,并监视对这些区域的访问。具有防火墙的STM32微控制器(请参阅相关的参考手册或数据手册,核实该IP的可用性)基于Arm®(a)内核。  ?& w. r5 j6 ?- o
用户可能希望使用内存映射中的机密关联数据保护某些敏感算法,和/或准确管理用户代码何时访问受信区域,以及该安全区域何时返回非受保护用户代码执行。如果在代码执行期间检测到意外访问,防火墙将执行访问监视(指令提取、读取、写入操作)并产生复位,立即停止对受保护区域的任何侵入式操作。
4 S4 I1 H" c0 u6 ?7 R+ F5 n, P4 Q0 }
; c7 d& _. h. X! h9 H1 c6 m
. [) E+ _" ^+ C. k+ y5 c( d
L[1_82)KA5D10PF7]({CUTY.png & m5 M( Y" T( g/ h+ F( T

6 a' u  P7 e/ v5 l

  H) ~4 Q8 Y5 O! t1.2 受信区域) y$ ]) w. X" U6 n. @: ?* b1 F3 w$ R
防火墙监视对内存映射中指定为受信区域的指定位置的访问。可以定义三个不同的位置(请参阅图 2),每个位置也称为段。
& H& G) i; F  u! {  x• 代码段
0 U0 O8 W+ r! |/ z该区域包含由防火墙保护的代码。防火墙监视必须在适当时间进行的指令提取或数据读取访问(请参阅第 1.4节),否则防火墙将通过“复位”拒绝访问。受保护的代码可以位于闪存中,如果易失性数据段已声明为共享或可执行文件,则可以位于SRAM中。
- V, L3 |2 ]  ~& a8 f7 y( H• 非易失性数据段  ^2 U1 F( \# g5 }
该区域主要包含敏感常量(如密钥),或受保护代码使用的或多或少的静态敏感数据。段在闪存或EEPROM(程序或数据)中进行定义,具体取决于应用程序使用的微控制器。
+ m  |3 i$ Q) K: G4 v. F• 易失性数据段
! s4 z2 E8 T$ l2 i该受信区域包含受保护代码使用的潜在的变量数据。它位于SRAM内部。在执行受保护代码的过程中完成访问后,即可读取或写入数据。在这种情况下,防火墙不会检测到侵入性行为,而是允许执行访问。如果在防火墙配置期间将该段配置为可执行,则该段也可以用于执行代码的敏感部分(请参阅第 1.4节)。) x9 l. \- n% c+ A4 `* a
所有这些受信区域(段)都可以通过其各自的寄存器对进行配置,并在这些区域中定义了每个段的起始地址及其相应的长度(在表 2中定义粒度)。1 b( N- `  B9 }8 P

/ L7 B2 T" Q: H* n
7 j9 x. X7 C, A. \  f
WNJFIC2`KMML2S}}L~IXI8V.png : `* E( M/ Y: h; n

: x! w$ o& ?8 |. B1.3 防火墙状态* b$ d; }; S  X
防火墙具有三种状态:空闲,关闭和打开。图 3显示了不同防火墙状态之间的转换方案。8 I/ M) [: n% p2 [2 j8 X
防火墙对连接到闪存、EEPROM或SRAM的AHB总线访问进行访问,无论防火墙状态如何(空 闲模式除外)。
8 C: |9 y" c! @" N! g' W% g1 r  d# S在图 4中定义了调用门机制:其允许用户将防火墙置于“打开”状态,从而对受信区域进行特定访问,但当防火墙置于“关闭”状态时则无法进行访问(请参阅第 1.4节)。8 {0 n/ R+ O* @9 X$ k
要关闭防火墙并拒绝从CPU对受信区域(受保护的段)的任何访问,只要指令代码已声明为可执行,即可提取并执行位于代码段或易失性数据段之外的指令代码。
% G: @) B; Y! u, g8 v  M释放复位后,防火墙处于“空闲”状态。一旦已进行配置和启用,就会进入“关闭”状态。
( I1 I: P) _* m) r0 |' V3 b$ w
( K; v$ c* e4 p* ]+ m$ w6 F/ m4 {" P! N0 f& V9 N6 m: P
%BXHPTX[HVI3)[@E8Q718Q9.png $ Q& x2 ], A# X
9 z! x( R$ x( q. [" Y, u1 ^4 d/ {1 T
- ~9 e( g0 _, r+ H
1.4 受信区域访问属性
7 l+ N$ m- M0 n: o! X一旦启用,防火墙将开始监视对非易失性存储器和SRAM的所有访问。对受信区域的每个访问请求都将被检查,并且防火墙可以根据其当前状态将其标记为非法。0 d$ L' w7 p* e0 D" s5 b
表 1总结了根据防火墙状态允许对可信区域进行访问的类型。- V" t1 K6 z; }- ]9 |

3 i, Q; h9 c4 F! |: n: e 2LN98(TSM4A(@NPXBLC0RPA.png
8 P0 B0 e% H. L3 v0 V5 A( |. b2 g5 x2 P' K: h( ?* n
关闭防火墙时,每次非法访问时都会产生一个防火墙复位,这会形成STM32微控制器的全局
0 q4 b: D- N% S0 |; e0 a1 I复位,从而“终止”访问尝试。
5 A8 |0 g8 t2 s4 V) N
/ T  {/ z5 F2 L' |- y3 {) |6 {) P: I& [( [
完整版请查看:附件
  p. J( A* l( x& B* b' J

% w% _$ Y" V2 K( R) }  K4 j" c

DM00209772_ZHV1.pdf

下载

503.15 KB, 下载次数: 5

赞 收藏 1 评论0 发布时间:2022-7-21 19:00

举报

0个回答

所属标签

相似技术帖

官网相关资源

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