双区域代码安全模块(Dual Code Security Module),通常简称为DCSM,是一种用于增强微控制器(MCU)代码安全性的设计。
双区域代码安全模块的设计提供了将关键程序和数据存储在隔离的内存部分的功能,防止未经授权读取或修改专有代码。该功能通过将内部存储划分为两个独立区域(区域一和区域二)并分别配置其信息来控制片上资源的访问权限。每个区域可设置独立的128位解锁密钥,可将片上资源的安全级别进行分级:在访问较低安全级别的资源时,芯片可保持对较高安全级别资源的加密保护。
该技术架构实现的芯片安全级别如表1所示。双区域的设计,表示对于任何一个区域来说,另一个区域和未被配置为安全区的区域皆为“安全区外”。每个区域归属于一个用户,用户可以为各自的区域分配存储区域,并通过在USER OTP中对相应地址进行编程来配置每个存储区域的安全设置。两个独立的区域保证了两位用户可以在同一器件上编写各自的专有代码,而且保证了其专有代码的秘密性,防止对方或其他潜在黑客对代码进行攻击。
密码是否匹配解锁 | 被访问的区域配置 | 程序执行地址 | 保护行为描述 |
否 | 配置为安全区 | 安全区外 | 只有CPU的取指是被允许的。区域内的代码只可以被执行,不可以被读取。 |
否 | 配置为安全区 | 安全区内 | CPU拥有全部的访问权限,但JTAG调试接口不可以执行读操作。 |
是 | 配置为非安全区 | 任何位置 | CPU和JTAG调试接口对该区域有全部的访问权限。 |
表1芯片安全级别 以中科本原FDM320R0049芯片为例,该芯片中可配置为安全区域的资源包括Flash和LS0-LS7 RAM。用户可在Flash的USER OTP中将上述资源(包括Flash中的32各扇区和LS0-LS7 RAM共40个存储区域)配置为区域一或区域二的安全资源。用户可选择将配置为安全资源的存储区域的访问权限设置为“仅执行”,此状态将禁用对该存储区域的读写访问,仅允许执行CPU的取指访问。同时USER OTP中还可配置密码锁,CRC锁和JTAG锁,用以实现对各区域128位密码的保护,对安全区域资源CRC功能执行的禁用和对整个芯片JTAG功能的禁用。
图1 DCSM与核和外设交互
用户通过总线向DCSM输入128位密钥,该密钥与其中存放的128位密码比较,产生解锁结果。该结果结合Flash各扇区和RAM各块的从属配置信息产生各存储区域最终的从属状态、仅执行保护状态和不可访问状态,同时不可访问的状态信息将发送给Flash和RAM。
CPU向DCSM发送读写访问地址,经过地址判断,结合区域配置信息产生该访问地址从属于区域一或区域二或非安全区的结果。该结果结合区域解锁状态产生访问是否可以执行的判断。最终DCSM将访问使能结果返回CPU。CLA的访问使能同CPU一样,就不再赘述。
双区域代码安全架构提供的安全级别能够实现对访问权限的分级管理,提高了芯片的数据安全性和可用性,通过合理配置和使用DCSM,开发者可以有效保护其知识产权,防止未授权的代码访问和篡改。如图2,在工业控制领域,DCSM可以用于保护自动化控制系统中的专有算法和关键操作程序:通过将控制逻辑划分为两个独立的安全区域,可以将安全关键的控制代码和非安全关键的维护代码分别存储在不同的安全区域中,并使用两套独立的密码进行保护,确保只有授权的工程师能够访问和修改控制逻辑。这样可以有效防止未授权的访问和潜在的工业间谍活动,同时也便于软件的维护和升级。
图2 DCSM对资源分区域管理示例
-
mcu
+关注
关注
146文章
18028浏览量
369168 -
代码
+关注
关注
30文章
4905浏览量
71002 -
架构
+关注
关注
1文章
529浏览量
26039
原文标题:代码分区的艺术:双区域架构如何兼顾安全与性能?
文章出处:【微信号:中科本原,微信公众号:中科本原】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
【「DeepSeek 核心技术揭秘」阅读体验】第三章:探索 DeepSeek - V3 技术架构的奥秘
双三相感应电机SVPWM的新型过调制策略
三相电机驱动系统逆变器故障补救与容错策略
详解电动汽车的区域控制架构

DLP6500FYE偶尔部分区域不显示图形是怎么回事?
《DNESP32S3使用指南-IDF版_V1.6》第七章 分区表
测量ADS1292RECG-FE的阻抗的过程中, 发现有部分区域是非线性的,为什么?
迅为RK3568开发板传统分区和定制扩展分区镜像对比
测试功放性能时输入是需要选择平衡输入还是非平衡输入?
【「嵌入式Hypervisor:架构、原理与应用」阅读体验】+全文学习心得
使用FAL分区管理与easyflash变量管理

请问平衡电阻只对双极运放有作用,对mos型的运放意义不大?
RK3568修改eMMC分区大小

评论