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

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

[复制链接]
STMCU小助手 发布时间:2022-7-21 19:00
引言4 {1 A$ t& f' t0 M4 y) D! J
本应用笔记描述了如何以安全的方式使用STM32L0、STM32L4和STM32L4+系列微控制器内嵌的防火墙。该IP为来自第三方的代码和数据(如原始设备制造商(OEM)开发软件代码)提供了非常高的安全性。
1 ]7 P  E5 r# M6 B7 i在已确定的内存映射段上指定敏感信息(如加密密钥、安全算法和关联的变量)。防火墙管理对这些受信区域的访问,并通过复位微控制器来拒绝非法访问。
2 f8 {' R+ T: l/ V7 g9 l本文档介绍了一些典型用例,除STM32 MCU提供的其他一些保护功能外,保护级别需要防火墙。
2 @6 G7 n% R* Z8 l' |7 E+ ?) P还重点介绍了必要的具体注意事项,以便实施最适当的软件开发策略以构建安全项目。此外还提供了建议列表,以便使软件调试阶段的开发更加简单快速。* v0 G) D  b3 H/ X
本文档还介绍了与实施防火墙相关的软件/硬件约束,以正确处理STM32L0、STM32L4和STM32L4 +系列微控制器中可用的安全机制。
, h: K7 u. [5 ~! _) F  Z. R$ U" T8 ?1 z

# r+ H; W% @/ [  r1 防火墙描述: W( B" R1 V, o+ z
1.1 引言
! ]" F  Q9 B& }8 p' I8 Z* G防火墙可让用户在存储代码或数据的内存映射中建立受信区域,并监视对这些区域的访问。具有防火墙的STM32微控制器(请参阅相关的参考手册或数据手册,核实该IP的可用性)基于Arm®(a)内核。
% m5 D9 M; y+ c3 k用户可能希望使用内存映射中的机密关联数据保护某些敏感算法,和/或准确管理用户代码何时访问受信区域,以及该安全区域何时返回非受保护用户代码执行。如果在代码执行期间检测到意外访问,防火墙将执行访问监视(指令提取、读取、写入操作)并产生复位,立即停止对受保护区域的任何侵入式操作。
1 y* W# |: [! e& b
" A* q! ^" ]5 a, ]$ ?. @; P2 h' D: n

2 Q4 y  B$ s& d; C3 I L[1_82)KA5D10PF7]({CUTY.png ! c4 ?  |2 j7 A5 l7 R! U: R

, a- u6 v/ g1 `9 [

  r" K+ |4 c/ @/ {1.2 受信区域
% E! @( X3 k1 a防火墙监视对内存映射中指定为受信区域的指定位置的访问。可以定义三个不同的位置(请参阅2),每个位置也称为段。2 N# `1 u& ^( t8 `4 r1 L* z+ v
代码段
  \+ K2 o6 W! c8 p- M+ b该区域包含由防火墙保护的代码。防火墙监视必须在适当时间进行的指令提取或数据读取访问(请参阅1.4),否则防火墙将通过“复位”拒绝访问。受保护的代码可以位于闪存中,如果易失性数据段已声明为共享或可执行文件,则可以位于SRAM中。# m- i; T: X4 y9 [; U
非易失性数据段; B( ^2 P: K. Y4 i9 n' @2 M
该区域主要包含敏感常量(如密钥),或受保护代码使用的或多或少的静态敏感数据。段在闪存或EEPROM(程序或数据)中进行定义,具体取决于应用程序使用的微控制器。
9 T  A; s- Z3 n易失性数据段
  z* d: t! s' {8 z$ J该受信区域包含受保护代码使用的潜在的变量数据。它位于SRAM内部。在执行受保护代码的过程中完成访问后,即可读取或写入数据。在这种情况下,防火墙不会检测到侵入性行为,而是允许执行访问。如果在防火墙配置期间将该段配置为可执行,则该段也可以用于执行代码的敏感部分(请参阅1.4)。
- O) O; o' A- i% D所有这些受信区域(段)都可以通过其各自的寄存器对进行配置,并在这些区域中定义了每个段的起始地址及其相应的长度(在2中定义粒度)。  Y) E+ }9 D+ }0 F, `9 C  K( M

* F, [  l, L+ O; {( [4 i
, \+ U0 o7 T1 c) R4 O+ z
WNJFIC2`KMML2S}}L~IXI8V.png
6 x0 {- ^+ n3 ~$ E: }4 H6 f, h) o7 L) }& p7 J
1.3 防火墙状态* C: S  F' n5 T! ^7 c
防火墙具有三种状态:空闲关闭打开3显示了不同防火墙状态之间的转换方案。
& ~& B8 X8 i' K# v" j  }防火墙对连接到闪存、EEPROM或SRAM的AHB总线访问进行访问,无论防火墙状态如何(模式除外)。# o  U$ n0 Q* l3 ~
4中定义了调用门机制:其允许用户将防火墙置于“打开”状态,从而对受信区域进行特定访问,但当防火墙置于“关闭”状态时则无法进行访问(请参阅1.4)。
0 b8 p5 c- ^" S& {/ y8 p要关闭防火墙并拒绝从CPU对受信区域(受保护的段)的任何访问,只要指令代码已声明为可执行,即可提取并执行位于代码段或易失性数据段之外的指令代码。8 n1 A5 M0 e2 a, q
释放复位后,防火墙处于“空闲”状态。一旦已进行配置和启用,就会进入“关闭”状态。4 ~' h  [1 N  p* f- @

1 P7 C3 e$ V% E' ]" Z$ j
* h3 M; Q/ R/ [' e* T8 C" ?) k %BXHPTX[HVI3)[@E8Q718Q9.png
; T+ W  P/ N& t6 F* {3 j
: t( W" f6 {! x, U9 n
5 \9 W# j, d( z: U* }' ?2 ~1.4 受信区域访问属性
9 ?- ~7 q* w# z& w一旦启用,防火墙将开始监视对非易失性存储器和SRAM的所有访问。对受信区域的每个访问请求都将被检查,并且防火墙可以根据其当前状态将其标记为非法。9 S8 T0 y6 w( d
1总结了根据防火墙状态允许对可信区域进行访问的类型。! b, y  Q+ u/ Z5 D; F' V

  |* C" n2 o6 Z3 \6 h1 _; r 2LN98(TSM4A(@NPXBLC0RPA.png
6 b- h  A) V* |6 h5 x! ]; k; ~# R5 ~$ R/ @! W
关闭防火墙时,每次非法访问时都会产生一个防火墙复位,这会形成STM32微控制器的全局1 o. K; M; K5 x' q6 ?
复位,从而“终止”访问尝试。
: F  N" E' f. O# g6 W6 S( m- J; E8 C& s) {
0 M9 _  e( w% H1 z* k
完整版请查看:附件
* o# H" S0 R- c4 d& _: W

/ w, V. D% s( ]4 w  L4 f4 z: g

DM00209772_ZHV1.pdf

下载

503.15 KB, 下载次数: 4

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

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版