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

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

[复制链接]
STMCU小助手 发布时间:2022-7-21 19:00
引言
' |) o+ x$ w) Y. O" V# U本应用笔记描述了如何以安全的方式使用STM32L0、STM32L4和STM32L4+系列微控制器内嵌的防火墙。该IP为来自第三方的代码和数据(如原始设备制造商(OEM)开发软件代码)提供了非常高的安全性。0 H7 f9 w& y, l7 V7 F8 ]* n3 V0 L
在已确定的内存映射段上指定敏感信息(如加密密钥、安全算法和关联的变量)。防火墙管理对这些受信区域的访问,并通过复位微控制器来拒绝非法访问。
& I" p! g/ l% ^7 y5 h0 K本文档介绍了一些典型用例,除STM32 MCU提供的其他一些保护功能外,保护级别需要防火墙。
8 P( A+ p. k9 ]  C) S3 m4 M还重点介绍了必要的具体注意事项,以便实施最适当的软件开发策略以构建安全项目。此外还提供了建议列表,以便使软件调试阶段的开发更加简单快速。
; X2 y! H2 M( Z/ H( _本文档还介绍了与实施防火墙相关的软件/硬件约束,以正确处理STM32L0、STM32L4和STM32L4 +系列微控制器中可用的安全机制。3 n' u) h! _: D( r
$ F: h+ z, Q* D, s. U+ H6 @9 I
% p# s$ ~1 N. \: X
1 防火墙描述
2 D8 E/ ]3 V% j) I% p( A4 ^1.1 引言2 x8 ?8 O- l+ l( j/ }8 f2 g- v: T
防火墙可让用户在存储代码或数据的内存映射中建立受信区域,并监视对这些区域的访问。具有防火墙的STM32微控制器(请参阅相关的参考手册或数据手册,核实该IP的可用性)基于Arm®(a)内核。
6 _3 \  c! ]0 B, }% @) n用户可能希望使用内存映射中的机密关联数据保护某些敏感算法,和/或准确管理用户代码何时访问受信区域,以及该安全区域何时返回非受保护用户代码执行。如果在代码执行期间检测到意外访问,防火墙将执行访问监视(指令提取、读取、写入操作)并产生复位,立即停止对受保护区域的任何侵入式操作。
# E: P) l% j1 M0 X$ _) s6 Q0 D
8 V! ~, A" U4 L2 o2 q3 O
9 ?* W* s9 f* {2 D
L[1_82)KA5D10PF7]({CUTY.png
+ ?1 U& ^9 O. l% \" T# O, f9 r  _) |9 f; u
7 g+ A  C* @# F9 V3 [: M
1.2 受信区域  X% b  v0 r) F1 e
防火墙监视对内存映射中指定为受信区域的指定位置的访问。可以定义三个不同的位置(请参阅2),每个位置也称为段。
% E5 }) ~$ h( [* \3 J: a' Q2 y" W代码段' K# M! b/ I+ K, ]/ ?+ w- N
该区域包含由防火墙保护的代码。防火墙监视必须在适当时间进行的指令提取或数据读取访问(请参阅1.4),否则防火墙将通过“复位”拒绝访问。受保护的代码可以位于闪存中,如果易失性数据段已声明为共享或可执行文件,则可以位于SRAM中。
6 }* v8 \2 x* I- Z! p/ ?. _, G非易失性数据段( X7 _$ {1 Y1 e: c, Z: S( O
该区域主要包含敏感常量(如密钥),或受保护代码使用的或多或少的静态敏感数据。段在闪存或EEPROM(程序或数据)中进行定义,具体取决于应用程序使用的微控制器。! C7 T& b5 a( ?$ s. |1 a
易失性数据段. c) h. F. v- q
该受信区域包含受保护代码使用的潜在的变量数据。它位于SRAM内部。在执行受保护代码的过程中完成访问后,即可读取或写入数据。在这种情况下,防火墙不会检测到侵入性行为,而是允许执行访问。如果在防火墙配置期间将该段配置为可执行,则该段也可以用于执行代码的敏感部分(请参阅1.4)。; r! O$ h7 h  ?# i6 g
所有这些受信区域(段)都可以通过其各自的寄存器对进行配置,并在这些区域中定义了每个段的起始地址及其相应的长度(在2中定义粒度)。
+ L6 E( a' F  Y4 v$ X  Q! V7 J; d- T! E# ]1 n

1 o2 n( C$ u8 e7 \' p; _: E. n# x WNJFIC2`KMML2S}}L~IXI8V.png 4 Y7 N. m! s- G( S# u) P+ [" h
0 A  C# S2 g) `+ t, p9 |+ |
1.3 防火墙状态
7 c' P1 e) m' y" C4 J) N+ c/ h防火墙具有三种状态:空闲关闭打开3显示了不同防火墙状态之间的转换方案。
; e1 r8 y% a1 |防火墙对连接到闪存、EEPROM或SRAM的AHB总线访问进行访问,无论防火墙状态如何(模式除外)。( Q; q; n' }' B1 a& \8 U8 R- x
4中定义了调用门机制:其允许用户将防火墙置于“打开”状态,从而对受信区域进行特定访问,但当防火墙置于“关闭”状态时则无法进行访问(请参阅1.4)。
$ O: }* D. X0 f2 H4 H. X: a要关闭防火墙并拒绝从CPU对受信区域(受保护的段)的任何访问,只要指令代码已声明为可执行,即可提取并执行位于代码段或易失性数据段之外的指令代码。# M" |1 }. d% }. J
释放复位后,防火墙处于“空闲”状态。一旦已进行配置和启用,就会进入“关闭”状态。* D, F/ H& i+ {! R5 J

& o9 w6 {4 d- W  e/ N. Y/ F$ E& r5 w  f0 e; U4 m: E
%BXHPTX[HVI3)[@E8Q718Q9.png 1 G/ C4 b! D5 j9 F% c0 P9 i- H

1 h0 e  T, F( j
. M  Y5 ~( m5 M# N; Z1.4 受信区域访问属性
4 k  \7 |/ t) ?5 r一旦启用,防火墙将开始监视对非易失性存储器和SRAM的所有访问。对受信区域的每个访问请求都将被检查,并且防火墙可以根据其当前状态将其标记为非法。; @7 M0 @4 u6 z' R! Q
1总结了根据防火墙状态允许对可信区域进行访问的类型。
) x$ S0 j( H/ f7 } 0 A7 a2 o8 a, Q  R' F* `
2LN98(TSM4A(@NPXBLC0RPA.png
1 h; A' ~' K, p* F1 w
" k: P+ h/ Q' b9 u% G% C关闭防火墙时,每次非法访问时都会产生一个防火墙复位,这会形成STM32微控制器的全局
- I" P* C/ G' l  Q# x! m" ]复位,从而“终止”访问尝试。
0 C+ ^6 X( n8 G+ b7 v: U" R/ X- N/ q1 ~

5 b; A5 K8 c9 `完整版请查看:附件

0 G" m# Q8 C+ e2 _( Z* v
. j, F+ B+ s+ ^4 z6 |) W0 X# P

DM00209772_ZHV1.pdf

下载

503.15 KB, 下载次数: 5

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

举报

0个回答

所属标签

相似分享

官网相关资源

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