ACM32系列 MCU安全特性概述

news/2024/4/24 14:43:36/文章来源:https://blog.csdn.net/Qingniu01/article/details/136560787

      随着物联网的发展,智能化产品的不断涌现,信息安全问题也日渐受到关注。因此,通用安全MCU产品也应运而生,能够更好地帮助客户在其产品设计中加强安全性,助力IoT的应用创新。

本文将详细介绍ACM32系列 MCU的安全特性。

1  安全启动与安全更新

    ACM32系列 MCU提供安全启动与安全更新参考实现,具体可见对应的软件包。安全启动与安全更新利用芯片的硬件安全特性来保证启动代码和更新固件不被篡改,启动入口唯一。

2   存储保护

    存储保护主要就是保护存储区的代码和数据不被篡改以及非法获取,主要需要抵抗三个方面的攻击,软件攻击、非侵入式攻击和侵入式攻击。

• 软件攻击主要包括通过调试端口访问数据,软件漏洞和缓冲区溢出等;

• 非侵入攻击主要包括通过故障注入导致程序和数据出错,以及旁路攻击获取敏感信息;

• 侵入式攻击主要是通过开盖或者直接通过测试仪器来探测内部信号;

       针对这些攻击,芯片主要从五个方面进行应对,包括存储区域访问控制、存储地址加扰、数据加密和完整性校验以及环境检测。

     其中存储区域访问控制包括读保护(RDP),写保护(WRP),专有代码读保护(PCROP),存储区域权限控制以及安全存储区。

 具体配置可见《ACM32-在线编程器》:http://www.aisinochip.com/index.php/product/detail/id/44.html

• 读取保护(RDP)是全局Flash读保护,可保护嵌入式固件代码,避免复制、逆向工程、使用调试工具读出或其他方式的入侵攻击。该保护功能在用户下载Flash代码后,由用户在下载固件时自行设置。

图片

eflash启动:勾选表示从eflash启动,未选表示从Boot模式;

SWD使能:勾选表示使能SWD功能,未选表示禁止SWD功能;

读保护配置锁定:勾选后,将锁定“eflash启动”和“SWD使能”的设置,生效后不可再更改;反之未选则不会锁定。

勾选或取消选择所要配置的项目,点击“配置”进行操作,操作完成,将在“发送显示区”显示操作结果,复位或重新上电生效。

注:此配置可能会影响SWD或者BOOT功能,请谨慎操作。

• 写保护(WRP)用于保护指定区域Flash数据,避免数据被恶意更新或擦除。写保护可应用于Flash内指定的内存空间。

图片

写保护(WRP)后,相应的区域将禁止擦写,片擦指令将不能使用。

在所要配置的区域,输入“起始地址”和“操作长度”,勾选“配置”按钮,点击“使能/禁止”进行操作,操作完成,将在“发送显示区”显示操作结果,复位或重新上电生效。

若操作范围超过eflash最大长度,或要使能的两个区域地址重叠,将报错。

注:使能/禁止后,立即写入相应NVR,读取配置为操作后的设置,但需复位或重新上电方能生效。

• 专有代码读保护(PCROP)用于保护指定区域Flash代码,保护专有代码不被最终用户代码、调试器工具或恶意代码所修改或读取。

图片

PCROP使能后,所选区域只能执行,不能读取和擦写,片擦指令将不能使用。

在所要配置的区域,输入“起始地址”和“操作长度”,勾选“配置”按钮,点击“使能/禁止”进行操作,操作完成,将在“发送显示区”显示操作结果,复位或重新上电生效。

若操作范围超过eflash最大长度,或要使能的两个区域地址重叠,将报错。

注:禁止PCROP区域后,此时读取配置依然是禁止前的设置,需要将SWD使能关闭,复位或重新上电方能生效。

• 存储区域权限控制利用内核本身自带的MPU单元,这个单元可以划分出几个region,每个region可以设置不同的访问属性,配合内核的User和Privilege模式,能够实现对敏感数据的访问控制,使得敏感数据不能够被恶意代码获取。这样隔离能够有效地降低软件漏洞带来的风险。

• 安全存储区可以用于保护特有的一些程序,安全存储区的大小可以进行配置,程序运行期间可以通过寄存器打开对这段安全存储区的保护,保护使能后则无法再次访问其中的任何内容。

图片

在所要配置的区域,输入“操作长度”,点击“使能/禁止”进行操作,操作完成,将在“发送显示区”显示操作结果,复位或重新上电生效。若操作范围超过eflash最大长度,将报错。

注:使能/禁止后,立即写入相应NVR,读取配置为操作后的设置,但需复位或重新上电方能生效。

存储数据加密,地址加扰主要就是对片内FLASH和SRAM上的数据进行加密存储,并且存储的地址也被串扰。针对于部分代码和数据需要放在片外存储器的情况,公司也有部分系列带有OTFDEC(On The Fly DECryption)硬件,OTFDEC模块在总线与OSPI之间,可以实时地解密外部Flash上的密文代码和数据,只需要设置好相应的区域、密钥等,OTFDEC就可以自动解密被访问的密文数据,无需额外的软件参与解密,不需要将解密数据加载到内部RAM,可以直接运行片外Flash上的加密代码。OTFDEC模块也支持加密,但不是实时加密,数据首先被加密到RAM中,需要另外将RAM中的密文写回外部FLASH。

存储数据完整性校验主要就是对存储区的数据进行奇偶校验,可以有效抵抗故障注入攻击。

环境检测主要是检测芯片工作电压是否在正常范围,如果不在正常工作范围则进行报警,以抵抗电压故障注入攻击。

3  密码学算法引擎

上海航芯MCU系列都带有HASH,AES,TRNG和CRC硬件模块。直接调用对应的API函数即可使用相应的算法功能,有效满足数据传输及其完整性校验中的密码需求。

4  入侵保护

入侵保护主要是芯片可以检测遭受的物理入侵从而删除备份寄存器中的敏感数据,从而保护芯片敏感数据不会窃取。该功能主要由RTC和备份寄存器完成。

备份寄存器处于备份域中。待机模式唤醒或系统复位操作都不会影响这些寄存器。只有当被检测到有侵入事件和备份域复位时,这些寄存器才会复位。

RTC支持两个外部IO侵入事件检测,并可以记录侵入时间。并且需要输入私钥才允许对RTC寄存器进行写操作,避免攻击者篡改RTC寄存器。

5   生命周期管理

生命周期管理主要针对芯片测试开发到芯片使用阶段中可能存在的一些安全风险,例如调用测试或者调试接口非法获取数据。具体对应的功能包括测试模式禁止,JTAG禁止和128位唯一序列号。

• 测试模式禁止:芯片测试完成之后将测试模式禁止,交给客户的芯片不能再返回到测试模式,这样攻击者就不能通过测试接口获取敏感数据;

• JTAG禁止:当读保护(RDP)设置Level 1以上时,则会将JTAG功能禁止,使得攻击者不能通过调试接口获取敏感数据;

• 128位唯一序列号:128位唯一序列号绑定了芯片出厂的LOT/WAFER ID和坐标等。该序列号唯一且不可复制,开发者可将应用程序与该芯片的序列号绑定,这样可以使每个下载应用程序的芯片不可被复制。管理员需要管控好每颗芯片的序列号,这样便于产品的定位和追踪,防止安全产品的复制。

6  安全生产

    安全生产主要是保证交由第三方工厂进行烧写的代码或者数据不被盗取和篡改以及过量生产。

    针对安全生产,上海航芯提供了一套安全的解决方案,全程代码加密烧录,并带动态校验码(动态校验码与芯片唯一序列号绑定),而且可以进行烧录计数,进行产量控制,避免过量生产。并且支持在线/离线烧录,远程交付和更新固件,在保证固件安全性的前提下极大方便客户进行烧录固件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_999127.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Linux进阶之路】网络 —— “?“ (下)

文章目录 前言一、概念铺垫1.TCP2.全双工 二、网络版本计算器1. 原理简要2. 实现框架&&代码2.1 封装socket2.2 客户端与服务端2.3 封装与解包2.4 请求与响应2.5 对数据进行处理2.6 主程序逻辑 3.Json的简单使用 总结尾序 前言 在上文我们学习使用套接字的相关接口进行了…

面试经典150题【61-70】

文章目录 面试经典150题【61-70】61.旋转链表86.分隔链表104. 二叉树的最大深度100.相同的树226.翻转二叉树101.对称二叉树105.从前序与中序遍历序列构造二叉树106.从后序和中序遍历序列构造二叉树117.填充每个节点的下一个右侧节点指针II114.二叉树展开为链表 面试经典150题【…

怎么把视频变成gif动图?一招在线生成gif动画

MP4是一种常见的视频文件格式,它是一种数字多媒体容器格式,可以用于存储视频、音频和字幕等多种媒体数据。MP4格式通常用于在计算机、移动设备和互联网上播放和共享视频内容。要将MP4视频转换为GIF格式,您可以使用专门的视频转gif工具。这个工…

【Linux】第一个小程序--进度条

这篇博客要综合利用以前的知识,来实现一个进度条程序~ 目录 换行&回车 缓冲区 实现简单的倒计时 实现进度条 version1 version2 在开始写这个小程序之前,我们先学习一些预备知识: 换行&回车 缓冲区 在我们运行这个程序时&…

生活的色彩--爱摸鱼的美工(17)

题记 生活不如意事十之八九, 恶人成佛只需放下屠刀,善人想要成佛却要经理九九八十一难。而且历经磨难成佛的几率也很小,因为名额有限。 天地不仁以万物为刍狗! 小美工记录生活,记录绘画演变过程的一天。 厨房 食…

Linux系统安装Dashy服务结合内网穿透实现公网访问本地导航页

文章目录 简介1. 安装Dashy2. 安装cpolar3.配置公网访问地址4. 固定域名访问 简介 Dashy 是一个开源的自托管的导航页配置服务,具有易于使用的可视化编辑器、状态检查、小工具和主题等功能。你可以将自己常用的一些网站聚合起来放在一起,形成自己的导航…

【“双碳”目标】Acrel-2000Z分布式光伏发电监测系统解决方案

1 概述 “十四五”期间,随着“双碳”目标提出及逐步落实,本就呈现出较好发展势头的分布式光伏发展有望大幅提速。就“十四五”光伏发展规划,国家发改委能源研究所可再生能源发展中心副主任陶冶表示,“双碳”目标意味着国家产业结…

TimescaleDB 开源时序数据库

文章目录 1.TimescaleDB介绍2.Hypertable 和 chunk3.Hypertable4.Hypertable操作 开源中间件 # TimescaleDBhttps://iothub.org.cn/docs/middleware/ https://iothub.org.cn/docs/middleware/timescale/timescale-summary/1.TimescaleDB介绍 TimescaleDB是基于PostgreSQL数据…

JavaWeb——014SpringBoot原理(配置优先级、Bean管理、SpringBoot原理)

SpingBoot原理 目录 SpingBoot原理1. 配置优先级2. Bean管理2.1 获取Bean2.2 Bean作用域2.3 第三方Bean 3. SpringBoot原理3.1 起步依赖3.2 自动配置3.2.1 概述3.2.2 常见方案3.2.2.1 概述3.2.2.2 方案一3.2.2.3 方案二 3.2.3 原理分析3.2.3.1 源码跟踪3.2.3.2 Conditional 3.2…

Media Encoder 2024:未来媒体编码的新纪元 mac/win版

随着科技的飞速发展,媒体内容已成为我们日常生活中不可或缺的一部分。为了满足用户对高质量视频内容不断增长的需求,Media Encoder 2024应运而生,它凭借卓越的技术和创新的特性,重塑了媒体编码的未来。 Media Encoder 2024软件获…

Flutter学习9 - http 中 get/post 请求示例

1、配置 http pubspec.yaml dependencies:http: ^0.13.4flutter:sdk: flutterhttp 库最新插件版本查看:https://pub.dev/packages/http不一定要用最新版本 http,要使用项目所能支持的版本 .dart import package:http/http.dart as http;2、示例 &a…

VsCode中使用Anaconda中的python环境

1、今天在新的电脑上安装了VsCode和Anaconda,但是在VsCode却选择不了python的环境,期望结果是下面这样的 2、接着在网上百度,找到了方法,具体方法如下: 2.1需要先在Extensions中安装python 2.2再使用ctrlshiftP后使用…

分布式数据库 GaiaDB-X 金融应用实践

1 银行新一代核心系统建设背景及架构 在银行的 IT 建设历程中,尤其是中大行,大多都基于大型机和小型机来构建核心系统。随着银行业务的快速发展,这样的系统对业务的支持越来越举步维艰,主要体现在以下四个方面: 首先是…

日韩媒体宣传案例分析:CloudNEO 为您提供海外媒体宣传最佳途径

近年来,随着互联网的迅速发展和全球化的加速推进,海外市场对于企业的重要性日益凸显。尤其是在亚洲地区,日本和韩国作为亚洲最具活力和潜力的市场之一,成为众多企业争相开拓的目标。在这个过程中,媒体宣传不仅是企业推…

K8S实现零宕机实践

越来越多的大厂都在上云、上容器、上K8S编排,K8S和容器云确实帮助我们解决了很多问题。但是,带来方便的同时,也让我们的架构变得更复杂了,更难于依靠“老经验”来解决问题了。虽然我们不用再费力考虑一层的问题,怎么实…

链表习题-力扣oj (附加思路版)

LCR 140. 训练计划 IIhttps://leetcode.cn/problems/lian-biao-zhong-dao-shu-di-kge-jie-dian-lcof/ 给定一个头节点为 head 的链表用于记录一系列核心肌群训练项目编号,请查找并返回倒数第 cnt 个训练项目编号。 思路:双指针,快指针先走cnt…

liteIDE 解决go root报错 go: cannot find GOROOT directory: c:\go

liteIDE环境配置 我使用的liteIDE为 x36 5.9.5版本 。在查看–>选项 中可以看到 LiteEnv,双击LiteEnv ,在右侧选择对应系统的env文件,我的是win64系统,所以文件名为win64.env 再双击 win64.env ,关闭当前窗口&…

Redis冲冲冲——redis数据类型及对应的数据结构

目录 引出redis数据类型及对应的数据结构Redis入门1.Redis是什么?2.Redis里面存Java对象 Redis进阶1.雪崩/ 击穿 / 穿透2.Redis高可用-主从哨兵3.持久化RDB和AOF4.Redis未授权访问漏洞5.Redis里面安装BloomFilte Redis的应用1.验证码2.Redis高并发抢购3.缓存预热用户…

HarmonyOS NEXT应用开发案例——自定义TabBar

介绍 本示例主要介绍了TabBar中间页面如何实现有一圈圆弧外轮廓以及TabBar页签被点击之后会改变图标显示,并有一小段动画效果。 效果图预览 使用说明: 依次点击tabBar页面,除了社区图标之外,其它图标往上移动一小段距离。 实现…

uniapp 手写 简易 时间轴 组件

一、案例如图 该案例设计条件: 左侧时间 和竖线、点、内容都是居中对其的,上下时间点中间要有一段距离 二、编写逻辑 1. 布局结构:一共三个元素,左侧是时间和黑点,中间是线条,右侧是内容 2. 样式难点&#…