0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

代码分区的艺术:双区域架构下的安全与性能平衡策略

中科本原 ? 来源:中科本原 ? 2025-02-19 09:55 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

双区域代码安全模块(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功能的禁用。

17ea9c88-ede0-11ef-9310-92fbcf53809c.png

图1 DCSM与核和外设交互

用户通过总线向DCSM输入128位密钥,该密钥与其中存放的128位密码比较,产生解锁结果。该结果结合Flash各扇区和RAM各块的从属配置信息产生各存储区域最终的从属状态、仅执行保护状态和不可访问状态,同时不可访问的状态信息将发送给Flash和RAM。

CPU向DCSM发送读写访问地址,经过地址判断,结合区域配置信息产生该访问地址从属于区域一或区域二或非安全区的结果。该结果结合区域解锁状态产生访问是否可以执行的判断。最终DCSM将访问使能结果返回CPU。CLA的访问使能同CPU一样,就不再赘述。

双区域代码安全架构提供的安全级别能够实现对访问权限的分级管理,提高了芯片的数据安全性和可用性,通过合理配置和使用DCSM,开发者可以有效保护其知识产权,防止未授权的代码访问和篡改。如图2,在工业控制领域,DCSM可以用于保护自动化控制系统中的专有算法和关键操作程序:通过将控制逻辑划分为两个独立的安全区域,可以将安全关键的控制代码和非安全关键的维护代码分别存储在不同的安全区域中,并使用两套独立的密码进行保护,确保只有授权的工程师能够访问和修改控制逻辑。这样可以有效防止未授权的访问和潜在的工业间谍活动,同时也便于软件的维护和升级。

17fdb822-ede0-11ef-9310-92fbcf53809c.png

图2 DCSM对资源分区域管理示例

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    146

    文章

    18028

    浏览量

    369168
  • 代码
    +关注

    关注

    30

    文章

    4905

    浏览量

    71002
  • 架构
    +关注

    关注

    1

    文章

    529

    浏览量

    26039

原文标题:代码分区的艺术:双区域架构如何兼顾安全与性能?

文章出处:【微信号:中科本原,微信公众号:中科本原】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    【「DeepSeek 核心技术揭秘」阅读体验】第三章:探索 DeepSeek - V3 技术架构的奥秘

    ” 压缩方案,在降低计算资源消耗的同时,努力减少精度损失。 这背后反映的是 AI 技术发展中一个重要命题:如何在有限硬件条件,让模型既跑得快(效率高)又跑得稳(精度够),这种平衡艺术,彰显了技术研发的细腻
    发表于 07-20 15:07

    三相感应电机SVPWM的新型过调制策略

    摘要:过调制策略能够提高逆变器输出电压范围和品质,从而提高电机输出转速范围和转矩特性。针对三相感应电机空间矢量脉宽调制(SVPWM)算法过调制区域有限,分区实现复杂,内存占用率大等问
    发表于 06-19 11:10

    三相电机驱动系统逆变器故障补救与容错策略

    系统在不损失性能指标或部分性能指标有所降低的情况安全运行。容错和补救的前提是要对系统中的故障进行诊断定位和隔离,对于逆变器故障,人们已提出了很多诊断和定位方法,文献[3-7]对其进行
    发表于 06-12 14:01

    详解电动汽车的区域控制架构

    向软件定义汽车 (SDV) 的转型促使汽车制造商不断创新,在区域控制器中集成受保护的半导体开关。电子保险丝和 SmartFET 可为负载、传感器和执行器提供保护,从而提高功能安全性,更好地应对功能
    的头像 发表于 05-15 09:23 ?1296次阅读
    详解电动汽车的<b class='flag-5'>区域</b>控制<b class='flag-5'>架构</b>

    DLP6500FYE偶尔部分区域不显示图形是怎么回事?

    您好,我们在使用DLP6500FYE开发套件的时候,偶尔会碰到DMD显示图形部分区域缺失,即不显示任何图形,其他区域就是正常的。这时候只有通过DMD复位或者断电重启才能恢复正常。 这个倒是一种
    发表于 02-17 08:18

    《DNESP32S3使用指南-IDF版_V1.6》第七章 分区

    第七章 分区分区表,主要是用来对ESP32外挂的SPI FLASH进行区域划分的一个表格,通过一个表格,可以根据多个不同的功能,将SPI Flash划分为不同的区域,方便开发者存储
    发表于 12-03 15:15

    测量ADS1292RECG-FE的阻抗的过程中, 发现有部分区域是非线性的,为什么?

    客户需要咨询个问题 我们在测量1292芯片的阻抗的过程中, 发现有部分区域是非线性的,如下图所示是什么原因造成的?
    发表于 11-28 08:37

    迅为RK3568开发板传统分区和定制扩展分区镜像对比

    根据上面两个小节的内容,可以将 rk 传统分区和定制扩展分区的特性进行一对比,整理好的表格如下所示: rk 传统分区 镜像特性概述: (1)固定设备树绑定:每个镜像只能适配特定的硬
    发表于 11-19 10:50

    测试功放性能时输入是需要选择平衡输入还是非平衡输入?

    各位大侠,以下测试问题请教一:1)测试功放性能时输入是需要选择平衡输入还是非平衡输入?这个是什么含义?2)如果是单通道输入,需要测试“相位”这一项吗?3)测试谐波失真时主要看THD
    发表于 11-04 08:35

    海外HTTP安全挑战与应对策略

    海外HTTP安全挑战与应对策略是确保跨国网络通信稳定、安全的关键。
    的头像 发表于 10-18 07:33 ?627次阅读

    【「嵌入式Hypervisor:架构、原理与应用」阅读体验】+全文学习心得

    在深入研读《嵌入式Hypervisor:架构、原理与应用》这部专著后,我对嵌入式Hypervisor技术有了全面而深入的理解。从基础的架构原理到高级特性与优化策略,再到其在各个领域中的实际
    发表于 10-09 19:11

    使用FAL分区管理与easyflash变量管理

    的API(框架图如下所示),并具有以下特性:支持静态可配置的分区表,并可关联多个Flash设备;分区表支持自动装载。避免在多固件项目,分区表被多次定义的问题;代码精简
    的头像 发表于 10-01 08:10 ?2074次阅读
    使用FAL<b class='flag-5'>分区</b>管理与easyflash变量管理

    请问平衡电阻只对极运放有作用,对mos型的运放意义不大?

    1.请问平衡电阻只对极运放有作用,对mos型的运放意义不大?? 2.在深度负反馈条件,失调在输出端不明显?? 谢谢
    发表于 09-23 06:34

    RK3568修改eMMC分区大小

    我司IAC-RK3568-CM根据eMMC大小的不同,有着不同规格的产品,不论eMMC大小如何改变,其分区的配置大同小异,除了eMMC厂商所使用的区域无法变更外,留给用户的区域可自由写入。我司产品
    的头像 发表于 09-13 08:00 ?1464次阅读
    RK3568修改eMMC<b class='flag-5'>分区</b>大小

    区域架构和 MCU I/O 扩展

    电子发烧友网站提供《区域架构和 MCU I/O 扩展.pdf》资料免费下载
    发表于 09-09 10:51 ?0次下载
    <b class='flag-5'>区域</b><b class='flag-5'>架构</b>和 MCU I/O 扩展