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

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

[复制链接]
STMCU小助手 发布时间:2022-7-21 19:00
引言
; Z8 T& t2 `4 ^1 P本应用笔记描述了如何以安全的方式使用STM32L0、STM32L4和STM32L4+系列微控制器内嵌的防火墙。该IP为来自第三方的代码和数据(如原始设备制造商(OEM)开发软件代码)提供了非常高的安全性。
2 y. Z1 f+ O4 r7 n4 j/ X在已确定的内存映射段上指定敏感信息(如加密密钥、安全算法和关联的变量)。防火墙管理对这些受信区域的访问,并通过复位微控制器来拒绝非法访问。' d, o( R" A3 C7 K4 E- g
本文档介绍了一些典型用例,除STM32 MCU提供的其他一些保护功能外,保护级别需要防火墙。
$ C  K1 ~, ~2 r5 d9 J! k还重点介绍了必要的具体注意事项,以便实施最适当的软件开发策略以构建安全项目。此外还提供了建议列表,以便使软件调试阶段的开发更加简单快速。* p3 a& F! e$ K' t& B0 W9 p2 T
本文档还介绍了与实施防火墙相关的软件/硬件约束,以正确处理STM32L0、STM32L4和STM32L4 +系列微控制器中可用的安全机制。; A5 r! T& J% \0 }, f5 i% ?9 y$ W

6 h& r' a: F# @9 M& F$ G

3 i" u7 l! T, R1 k0 ]6 D1 `  W- @% ?1 防火墙描述8 G: N# ^2 t( a" k2 R/ b- N6 M% }
1.1 引言
/ g  F5 R/ u. N. @; {' L2 \防火墙可让用户在存储代码或数据的内存映射中建立受信区域,并监视对这些区域的访问。具有防火墙的STM32微控制器(请参阅相关的参考手册或数据手册,核实该IP的可用性)基于Arm®(a)内核。' h: f; [. [; V1 w) x8 u" E9 ?
用户可能希望使用内存映射中的机密关联数据保护某些敏感算法,和/或准确管理用户代码何时访问受信区域,以及该安全区域何时返回非受保护用户代码执行。如果在代码执行期间检测到意外访问,防火墙将执行访问监视(指令提取、读取、写入操作)并产生复位,立即停止对受保护区域的任何侵入式操作。
% l& u1 `! u- H1 V
7 S8 Q4 v% ^3 h0 c: i/ e$ j
6 |2 r  C) r0 h: m8 R" i3 a5 D* j
L[1_82)KA5D10PF7]({CUTY.png 3 t% [- a) M4 f- F  }: m
: U% |0 A  }7 j* \8 }

# R! X9 e: W  t: \# Z1 q9 t1.2 受信区域
+ S0 i3 y0 y2 I( {4 d0 Y防火墙监视对内存映射中指定为受信区域的指定位置的访问。可以定义三个不同的位置(请参阅2),每个位置也称为段。  w1 p$ Y5 D: F) _. h* S& W
代码段; F; a: U2 x& K6 W; |
该区域包含由防火墙保护的代码。防火墙监视必须在适当时间进行的指令提取或数据读取访问(请参阅1.4),否则防火墙将通过“复位”拒绝访问。受保护的代码可以位于闪存中,如果易失性数据段已声明为共享或可执行文件,则可以位于SRAM中。  T3 W  U' n: e! M
非易失性数据段( d0 M; e: ?  D. r' [( Z; I" S
该区域主要包含敏感常量(如密钥),或受保护代码使用的或多或少的静态敏感数据。段在闪存或EEPROM(程序或数据)中进行定义,具体取决于应用程序使用的微控制器。
( I# M5 n& j, S: v& N* J8 F易失性数据段$ u7 b9 e4 j5 M: Z; l# p/ t
该受信区域包含受保护代码使用的潜在的变量数据。它位于SRAM内部。在执行受保护代码的过程中完成访问后,即可读取或写入数据。在这种情况下,防火墙不会检测到侵入性行为,而是允许执行访问。如果在防火墙配置期间将该段配置为可执行,则该段也可以用于执行代码的敏感部分(请参阅1.4)。# E- U8 Z2 @' t4 I
所有这些受信区域(段)都可以通过其各自的寄存器对进行配置,并在这些区域中定义了每个段的起始地址及其相应的长度(在2中定义粒度)。
& Y( h# w3 X6 [  f+ E- U) V4 `, n: D  t

: S' X0 Q- n: M2 J0 ^& f' C7 |( X WNJFIC2`KMML2S}}L~IXI8V.png
/ J) o3 J/ c. z) b1 v7 `/ _
. G7 H; z6 d( q1.3 防火墙状态. M% c7 ?, l5 ^
防火墙具有三种状态:空闲关闭打开3显示了不同防火墙状态之间的转换方案。
2 p2 j0 w+ H& |防火墙对连接到闪存、EEPROM或SRAM的AHB总线访问进行访问,无论防火墙状态如何(模式除外)。8 m0 X& h/ [# T5 W8 j/ d. N: _( z; s5 _
4中定义了调用门机制:其允许用户将防火墙置于“打开”状态,从而对受信区域进行特定访问,但当防火墙置于“关闭”状态时则无法进行访问(请参阅1.4)。" O9 }% [1 @' u
要关闭防火墙并拒绝从CPU对受信区域(受保护的段)的任何访问,只要指令代码已声明为可执行,即可提取并执行位于代码段或易失性数据段之外的指令代码。- o- m) u; O7 |9 M$ g
释放复位后,防火墙处于“空闲”状态。一旦已进行配置和启用,就会进入“关闭”状态。8 l4 q7 v" c2 s+ I" _/ a) J/ M

. P( b& j, v+ i3 `( n+ h
+ e( d- s8 C5 g. n" A %BXHPTX[HVI3)[@E8Q718Q9.png 3 q  Q) n: `, G+ I

5 C9 l' s" R8 M: {9 K1 e/ V7 s8 M
& }& m. }* l! v% s: b( H" F1.4 受信区域访问属性
' I7 F* }0 @& w一旦启用,防火墙将开始监视对非易失性存储器和SRAM的所有访问。对受信区域的每个访问请求都将被检查,并且防火墙可以根据其当前状态将其标记为非法。! H$ P: {9 {5 h) w& x
1总结了根据防火墙状态允许对可信区域进行访问的类型。
* g: X3 X/ {" w" T
( L; U& [6 ~  R- v: U 2LN98(TSM4A(@NPXBLC0RPA.png * i' n! B$ d1 g' ^$ m" T  i

8 t2 b! W9 @! P  f" f; D, N) b关闭防火墙时,每次非法访问时都会产生一个防火墙复位,这会形成STM32微控制器的全局
1 I. M- E3 P" c+ g3 Y: J: h1 n' H复位,从而“终止”访问尝试。
. l& c0 T% g: Z5 n& R( E" |! N; N! s. D6 d& h

! [9 F3 ~/ t+ x3 Z3 @完整版请查看:附件

' X. m4 G2 l- O7 @3 L! _: E( r& H* E+ M6 Y; {) P; R* Y8 Q

DM00209772_ZHV1.pdf

下载

503.15 KB, 下载次数: 1

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

举报

0个回答
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版