
引言 本应用笔记描述了如何以安全的方式使用STM32L0、STM32L4和STM32L4+系列微控制器内嵌的防火墙。该IP为来自第三方的代码和数据(如原始设备制造商(OEM)开发软件代码)提供了非常高的安全性。1 M3 }6 a5 B% x" U/ r( Y: q 在已确定的内存映射段上指定敏感信息(如加密密钥、安全算法和关联的变量)。防火墙管理对这些受信区域的访问,并通过复位微控制器来拒绝非法访问。. x- J. k$ q% b' I% O 本文档介绍了一些典型用例,除STM32 MCU提供的其他一些保护功能外,保护级别需要防火墙。 还重点介绍了必要的具体注意事项,以便实施最适当的软件开发策略以构建安全项目。此外还提供了建议列表,以便使软件调试阶段的开发更加简单快速。8 X7 E9 z$ f Y! ]6 p: H8 n/ ?, I 本文档还介绍了与实施防火墙相关的软件/硬件约束,以正确处理STM32L0、STM32L4和STM32L4 +系列微控制器中可用的安全机制。 1 防火墙描述/ 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 ![]() 1.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 • 非易失性数据段 该区域主要包含敏感常量(如密钥),或受保护代码使用的或多或少的静态敏感数据。段在闪存或EEPROM(程序或数据)中进行定义,具体取决于应用程序使用的微控制器。 • 易失性数据段! 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 ![]() 1.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节)。 要关闭防火墙并拒绝从CPU对受信区域(受保护的段)的任何访问,只要指令代码已声明为可执行,即可提取并执行位于代码段或易失性数据段之外的指令代码。 释放复位后,防火墙处于“空闲”状态。一旦已进行配置和启用,就会进入“关闭”状态。 + q- _5 Y z# P7 Z. Z8 f ![]() # u; G) `0 _+ `7 N, s8 @ 1.4 受信区域访问属性 一旦启用,防火墙将开始监视对非易失性存储器和SRAM的所有访问。对受信区域的每个访问请求都将被检查,并且防火墙可以根据其当前状态将其标记为非法。 表 1总结了根据防火墙状态允许对可信区域进行访问的类型。 1 H8 P* F5 v; H% r ![]() 0 b( M& c, N4 v. s, m' J 关闭防火墙时,每次非法访问时都会产生一个防火墙复位,这会形成STM32微控制器的全局 复位,从而“终止”访问尝试。 - r/ u, W1 h( A2 U: O $ Z8 g& M; \; g4 e 完整版请查看:附件7 b. h& h$ {6 R4 b/ i- N |
DM00209772_ZHV1.pdf
下载503.15 KB, 下载次数: 4
分享一个STM32L031的串口调试程序
【圣诞专享活动】使用TouchGFX做GUI显示:圣诞快乐&Merry Christmas!
串口通信波特率异常的解决办法
【STWINKT1B 评测】6. NanoEdge AI 音频分类器 (2)
【STWINKT1B 评测】5. NanoEdge AI 音频分类器 (1)
【STEVAL-STWINKT1B测评】4、驱动温湿度传感器HTS221
【STEVAL-STWINKT1B测评】1、点亮LED
【STEVAL-STWINKT1B测评】3、利用FP-AI-MONITOR1快速实现姿态检测
【STEVAL-STWINKT1B测评】2、利用ST板模板快速创建工程
STWINKT1B评测】4.测试板载ISM330DHCX(6轴)