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

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

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

! d# K6 ?+ p& a1 W7 x9 o5 i- f2 r% s1 防火墙描述/ j4 w2 d% b5 @% N$ P" S
1.1 引言8 `  c5 N4 U& d/ k3 u
防火墙可让用户在存储代码或数据的内存映射中建立受信区域,并监视对这些区域的访问。具有防火墙的STM32微控制器(请参阅相关的参考手册或数据手册,核实该IP的可用性)基于Arm®(a)内核。, g. U9 u. R  K/ ?
用户可能希望使用内存映射中的机密关联数据保护某些敏感算法,和/或准确管理用户代码何时访问受信区域,以及该安全区域何时返回非受保护用户代码执行。如果在代码执行期间检测到意外访问,防火墙将执行访问监视(指令提取、读取、写入操作)并产生复位,立即停止对受保护区域的任何侵入式操作。% B3 V, q4 I& ?% q* D5 f4 w" g

+ U8 @. }* o+ ]5 D! y, Z) o! _

+ d$ G7 f, q. r+ ]* D- ^ L[1_82)KA5D10PF7]({CUTY.png
$ d; Y/ A9 U# f# x3 O7 }: M
7 b; j9 d& Z6 Y5 D- v6 x

# W# D1 y) j- O# |+ T/ Y1.2 受信区域9 M. v" F4 ~5 S' [  v
防火墙监视对内存映射中指定为受信区域的指定位置的访问。可以定义三个不同的位置(请参阅2),每个位置也称为段。6 b. _; Z  ~  j0 V
代码段* Q! I1 k8 Y' C3 Y; J
该区域包含由防火墙保护的代码。防火墙监视必须在适当时间进行的指令提取或数据读取访问(请参阅1.4),否则防火墙将通过“复位”拒绝访问。受保护的代码可以位于闪存中,如果易失性数据段已声明为共享或可执行文件,则可以位于SRAM中。+ ]8 W( @0 o8 c' o4 R- ?" I
非易失性数据段
+ W' G2 X  w* U' x9 v) B该区域主要包含敏感常量(如密钥),或受保护代码使用的或多或少的静态敏感数据。段在闪存或EEPROM(程序或数据)中进行定义,具体取决于应用程序使用的微控制器。
2 B' n1 M2 u) S9 r易失性数据段! x! t' w0 a% W- o1 l$ o
该受信区域包含受保护代码使用的潜在的变量数据。它位于SRAM内部。在执行受保护代码的过程中完成访问后,即可读取或写入数据。在这种情况下,防火墙不会检测到侵入性行为,而是允许执行访问。如果在防火墙配置期间将该段配置为可执行,则该段也可以用于执行代码的敏感部分(请参阅1.4)。- v% Y5 F* G. n' c  A! j' ~
所有这些受信区域(段)都可以通过其各自的寄存器对进行配置,并在这些区域中定义了每个段的起始地址及其相应的长度(在2中定义粒度)。( V0 B8 q8 ], R3 Q

3 X7 Y" z% W3 T$ Z9 z

( f( R9 b8 g3 u! A; O% T WNJFIC2`KMML2S}}L~IXI8V.png 9 f, o9 z! I7 a( c

* `9 ]1 p: h* [  v8 ^# m1.3 防火墙状态+ Y* i8 }3 ~* |2 Z- o2 t
防火墙具有三种状态:空闲关闭打开3显示了不同防火墙状态之间的转换方案。( t! Z" e7 `. t, D6 B5 j6 a3 V- }
防火墙对连接到闪存、EEPROM或SRAM的AHB总线访问进行访问,无论防火墙状态如何(模式除外)。; F$ x0 c" I& l/ _4 x" g
4中定义了调用门机制:其允许用户将防火墙置于“打开”状态,从而对受信区域进行特定访问,但当防火墙置于“关闭”状态时则无法进行访问(请参阅1.4)。
- [) ~4 `9 O! S! G9 y0 `要关闭防火墙并拒绝从CPU对受信区域(受保护的段)的任何访问,只要指令代码已声明为可执行,即可提取并执行位于代码段或易失性数据段之外的指令代码。
; B6 A* W$ o& J0 g- G- S" l. v释放复位后,防火墙处于“空闲”状态。一旦已进行配置和启用,就会进入“关闭”状态。
" N8 i  s+ t5 J+ q- _5 Y  z# P7 Z. Z8 f

% L( w8 q! r7 P: F" Y' X %BXHPTX[HVI3)[@E8Q718Q9.png " O$ V' W0 x/ l, H2 q. c
# u; G) `0 _+ `7 N, s8 @

: g' a0 s( S) j, \; p1.4 受信区域访问属性
# z! i6 e2 P8 x* `一旦启用,防火墙将开始监视对非易失性存储器和SRAM的所有访问。对受信区域的每个访问请求都将被检查,并且防火墙可以根据其当前状态将其标记为非法。
# `; \& E& w2 X1总结了根据防火墙状态允许对可信区域进行访问的类型。
' J1 L1 y9 Y5 s% O  p; Z. ?( q 1 H8 P* F5 v; H% r
2LN98(TSM4A(@NPXBLC0RPA.png & I) h5 a' {2 k( m& U" q! q% z( S
0 b( M& c, N4 v. s, m' J
关闭防火墙时,每次非法访问时都会产生一个防火墙复位,这会形成STM32微控制器的全局
# v: o' V& P8 m" s& h5 D# I2 [复位,从而“终止”访问尝试。
7 e" @+ W5 P/ v* N) A0 `- r/ u, W1 h( A2 U: O
$ Z8 g& M; \; g4 e
完整版请查看:附件
7 b. h& h$ {6 R4 b/ i- N

7 n/ M8 ?' l: T6 i9 I& q5 M/ B$ x

DM00209772_ZHV1.pdf

下载

503.15 KB, 下载次数: 4

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

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版