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

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

[复制链接]
STMCU小助手 发布时间:2022-7-21 19:00
引言
9 ?* L" \6 }9 Y; K- ~, O  ^9 t* T本应用笔记描述了如何以安全的方式使用STM32L0、STM32L4和STM32L4+系列微控制器内嵌的防火墙。该IP为来自第三方的代码和数据(如原始设备制造商(OEM)开发软件代码)提供了非常高的安全性。
/ L5 X3 P. V: P& P$ J. _7 k& I在已确定的内存映射段上指定敏感信息(如加密密钥、安全算法和关联的变量)。防火墙管理对这些受信区域的访问,并通过复位微控制器来拒绝非法访问。4 u% {; n+ ~  v' L1 _8 l. \$ \, Q( g$ r
本文档介绍了一些典型用例,除STM32 MCU提供的其他一些保护功能外,保护级别需要防火墙。
- b; N, P6 I' \7 G7 _  ~还重点介绍了必要的具体注意事项,以便实施最适当的软件开发策略以构建安全项目。此外还提供了建议列表,以便使软件调试阶段的开发更加简单快速。2 P# i9 ~" Y9 y! L# p
本文档还介绍了与实施防火墙相关的软件/硬件约束,以正确处理STM32L0、STM32L4和STM32L4 +系列微控制器中可用的安全机制。# ^3 j2 E& l" _

; {+ K: h4 h$ U  O: e

- N+ w. U5 F, e" k, ]6 h1 防火墙描述
" }: m3 q( D1 T2 a3 D3 g  J1.1 引言
: T. R' |2 [3 r% E. K防火墙可让用户在存储代码或数据的内存映射中建立受信区域,并监视对这些区域的访问。具有防火墙的STM32微控制器(请参阅相关的参考手册或数据手册,核实该IP的可用性)基于Arm®(a)内核。
  l# ?) ~3 ^! d. e1 x% m5 C用户可能希望使用内存映射中的机密关联数据保护某些敏感算法,和/或准确管理用户代码何时访问受信区域,以及该安全区域何时返回非受保护用户代码执行。如果在代码执行期间检测到意外访问,防火墙将执行访问监视(指令提取、读取、写入操作)并产生复位,立即停止对受保护区域的任何侵入式操作。! P0 U1 Z7 O  R. M& F3 x
+ j% `: E  A$ h  t' _- C( s1 r

) ~) n  V3 y/ e& j/ Q! h; P1 k L[1_82)KA5D10PF7]({CUTY.png
+ q/ j. L' \1 _' y; j. u( t! ?+ \8 o8 w. }' v: i
5 F( @0 K+ X# ^8 u
1.2 受信区域
2 _3 A1 C+ G" n" ?/ s, `8 E防火墙监视对内存映射中指定为受信区域的指定位置的访问。可以定义三个不同的位置(请参阅2),每个位置也称为段。
5 Q# F: W. A( W0 h. T# }2 s. {代码段$ I7 S+ j4 W/ w
该区域包含由防火墙保护的代码。防火墙监视必须在适当时间进行的指令提取或数据读取访问(请参阅1.4),否则防火墙将通过“复位”拒绝访问。受保护的代码可以位于闪存中,如果易失性数据段已声明为共享或可执行文件,则可以位于SRAM中。" p6 I+ v9 H) \! d. J+ G8 B
非易失性数据段
4 q5 l5 X/ j% m1 H3 q5 ^2 U该区域主要包含敏感常量(如密钥),或受保护代码使用的或多或少的静态敏感数据。段在闪存或EEPROM(程序或数据)中进行定义,具体取决于应用程序使用的微控制器。
3 U( Q7 f$ }# K, Q( r4 R易失性数据段
2 m( \% x7 ^& O该受信区域包含受保护代码使用的潜在的变量数据。它位于SRAM内部。在执行受保护代码的过程中完成访问后,即可读取或写入数据。在这种情况下,防火墙不会检测到侵入性行为,而是允许执行访问。如果在防火墙配置期间将该段配置为可执行,则该段也可以用于执行代码的敏感部分(请参阅1.4)。
$ c! ]$ q! {5 p8 N+ A所有这些受信区域(段)都可以通过其各自的寄存器对进行配置,并在这些区域中定义了每个段的起始地址及其相应的长度(在2中定义粒度)。! [  v/ N7 s" j% X1 c

& O' D0 n( ^' S- a! V

' f; B- m0 W; i: ^ WNJFIC2`KMML2S}}L~IXI8V.png
* H  k: ^& ~  X2 L1 t& A' @
. J4 H( {' J* ]! R7 v6 r1.3 防火墙状态9 U- ]/ T' Q0 Q  R9 S4 o- `
防火墙具有三种状态:空闲关闭打开3显示了不同防火墙状态之间的转换方案。
( u. A2 z- j5 k! X7 x* D) L. w防火墙对连接到闪存、EEPROM或SRAM的AHB总线访问进行访问,无论防火墙状态如何(模式除外)。
9 H& w1 P6 H8 Q* a% f4中定义了调用门机制:其允许用户将防火墙置于“打开”状态,从而对受信区域进行特定访问,但当防火墙置于“关闭”状态时则无法进行访问(请参阅1.4)。
% T$ f& Y* t; Q2 o8 t$ s5 n5 ?3 j要关闭防火墙并拒绝从CPU对受信区域(受保护的段)的任何访问,只要指令代码已声明为可执行,即可提取并执行位于代码段或易失性数据段之外的指令代码。
; l3 X7 a+ G+ u0 N! {/ M释放复位后,防火墙处于“空闲”状态。一旦已进行配置和启用,就会进入“关闭”状态。9 `5 o6 i+ N$ {9 ]
8 J8 k' K9 _; Y7 [
7 G' x6 \5 T0 I8 _
%BXHPTX[HVI3)[@E8Q718Q9.png / {+ v$ p4 T6 t; e* W
# A5 c( V! t3 Z; c% U9 l
9 E- k4 M) ?) a& t7 p! s$ c
1.4 受信区域访问属性
. T; D/ r. Q) ^; c3 k( Z. Y1 q4 t一旦启用,防火墙将开始监视对非易失性存储器和SRAM的所有访问。对受信区域的每个访问请求都将被检查,并且防火墙可以根据其当前状态将其标记为非法。
" R5 i+ ?3 r  \, F: r1总结了根据防火墙状态允许对可信区域进行访问的类型。. H; n- W" m4 c- H6 X4 [8 k5 n# r

2 y* a/ R3 x+ y* r$ H) Y4 d6 ^# ? 2LN98(TSM4A(@NPXBLC0RPA.png * @6 x; J+ ?9 B! i: H1 c
( `1 R4 x9 u" w1 R! \
关闭防火墙时,每次非法访问时都会产生一个防火墙复位,这会形成STM32微控制器的全局
) }1 Z$ R) z" p5 k复位,从而“终止”访问尝试。
1 m8 p  q6 z0 @! y5 A! _8 V
7 D  s  P' T4 Z2 l6 c/ ~& B" C; |3 ~% a: j$ h! L
完整版请查看:附件
$ N$ |3 d4 ^2 N2 o% q5 i
+ ~6 K% I1 `9 x

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 手机版