物联网安全-ARMv8-M Trustzone 实操

前言

本文针对ARMv8m架构M23/M33 MCU安全特性使用进行介绍,以nxp LPC55xx系列和STM32L5xx系列为例,为大家阐述如何使用Trustzone技术提高物联网设备安全性,适合有一定平台安全基础的物联网设备开发人员、安全方案开发人员。
在这里插入图片描述

背景

为了提升平台安全性,ARM推出了ARMv8m架构,该架构引入了Trustzone安全扩展,该技术主要利用隔离技术将地址空间划分安全和非安全区域,实现了空间隔离,这里我们称之为安全世界和非安全世界,两个世界的切换/交互通过指令集增加的几条指令实现(SG/BXNX/BLXNX)。该架构主要包括两个系列产品,以m23为代表的baseline产品以及以m33以为代表的mainline产品,前者可以认为是m0的安全版本,后者是m3/m4的安全版本。因为本文主要目的是实操,所以Trustzone具体技术知识不展开讲述。

现状

市面上已经有多家芯片厂商推出了m23/m33内核的MCU产品

厂商 型号
NXP 恩智浦 LPC55xx
ST 意法 STM32L5xx
Nuvoton 新塘 M2351
Microchip 微芯 SAM L10/L11
Renesas 瑞萨 RA2x
Nordic NRF5340
Dialog 戴泺格 DA1469x
ADI 亚德诺 ----
Silicon Labs 芯科zhan Gecko Series 2
紫光展锐(原RDA) 春藤v5663
GigaDevice 兆易创新 GD32E232

这气势不亚于当年的cortex m0/m3/m4,因为大家知道安全是制约物联网规模的重要原因之一,而armv8m中的trustzone能够解决设备中大部分安全问题。

安全目标

利用这些芯片我们可以实现哪些安全目标?

安全目标 方法
密钥安全 安全世界密钥存储区无法被非安全世界的非法软件直接读取
算法安全 关键算法可以放在安全世界来防止运行时篡改
外设保护 外设可以放进安全世界来防止数据的原始数据的篡改

实操LPC55xx

设置安全属性单元SAU

/* SAU region boundaries */
#define REGION_0_BASE 0
#define REGION_0_END 0x0FFFFFFFU
#define REGION_1_BASE 0x20000000U
#define REGION_1_END 0xFFFFFFFFU
#define REGION_2_BASE 0x1000FE00U
#define REGION_2_END 0x1000FFFFU
    /* Set SAU Control register: Disable SAU and All Secure */
    SAU->CTRL = 0;

    /* Set SAU region number */
    SAU->RNR = 0;
    /* Region base address */
    SAU->RBAR = REGION_0_BASE & SAU_RBAR_BADDR_Msk;
    /* Region end address */
    SAU->RLAR = ((REGION_0_END & SAU_RLAR_LADDR_Msk) | ((0U << SAU_RLAR_NSC_Pos) & SAU_RLAR_NSC_Msk)) |
                ((1U << SAU_RLAR_ENABLE_Pos) & SAU_RLAR_ENABLE_Msk);

    /* Set SAU region number */
    SAU->RNR = 0x00000001U;
    /* Region base address */
    SAU->RBAR = REGION_1_BASE & SAU_RBAR_BADDR_Msk;
    /* Region end address */
    SAU->RLAR = ((REGION_1_END & SAU_RLAR_LADDR_Msk) | ((0U << SAU_RLAR_NSC_Pos) & SAU_RLAR_NSC_M

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

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

相关文章

昱感微“多维像素”多模态融合感知展示

昱感微采用“多维像素”多模态融合技术&#xff0c;将可见光摄像头、红外摄像头、4D毫米波雷达/激光雷达的探测数据以“多维像素”的数据格式输出&#xff1a;图像数据雷达探测数据红外传感器探测数据叠加&#xff0c;以摄像头像素为颗粒度组合全部感知数据&#xff0c;形成多模…

Launcher添加hotseat图标布局

Launcher的hotseat客户要求添加一些指定应用图标。 首先打开机器将要布局的图标手动移动到hotseat位置上面。 然后使用adb命令将data/data/com.android.launcher3/databases这个文件pull出来。这个文件夹是Luancher的数据库文件。里面保存了相关应用的图标信息。 使用SQLiteS…

GNSS误差源及差分定位

GNSS误差源&#xff1a; &#xff08;一&#xff09;卫星星历误差 由星历信息所得出的卫星位置坐标与实际位置坐标的偏差就是星历误差。星历信息是由 GPS 地面部分测量计算后传入空间部分的。由于卫星在运动中要受到各种摄动力的作用, 而地面部分又很难精确测量这些作用力,…

【数据结构——内排序】希尔排序(头歌实践教学平台习题)【合集】

目录&#x1f60b; 任务描述 测试说明 我的通关代码: 测试结果&#xff1a; 任务描述 本关任务&#xff1a;实现希尔排序算法。 测试说明 平台会对你编写的代码进行测试&#xff1a; 测试输入示例&#xff1a; 10 9 8 7 6 5 4 3 2 1 0 (说明&#xff1a;第一行是元素个数&a…

通俗易懂的 Nginx 反向代理 配置

通俗易懂的 Nginx 反向代理 配置 首先 root 与 alias 的区别 root 是直接拼接 root location location /i/ {root /data/w3; }当请求 /i/top.gif &#xff0c;/data/w3/i/top.gif 会被返回。 alias 是用 alias 替换 location location /i/ {alias /data/w3/images/; }当请…

网页爬虫技术全解析:从基础到实战

引言 在当今信息爆炸的时代&#xff0c;互联网上的数据量每天都在以惊人的速度增长。网页爬虫&#xff08;Web Scraping&#xff09;&#xff0c;作为数据采集的重要手段之一&#xff0c;已经成为数据科学家、研究人员和开发者不可或缺的工具。本文将全面解析网页爬虫技术&…

分页查询和事务管理

前端需要给后端传递的参数&#xff1a; page&#xff1a;当前页码&#xff0c;用于指定用户想要查看的页。pageSize&#xff1a;每页展示记录数&#xff0c;用于指定每页应显示多少条记录。 后端需要给前端返回的结果&#xff1a; total&#xff1a;总记录数&#xff0c;用于告…

MATLAB深度学习(七)——ResNet残差网络

一、ResNet网络 ResNet是深度残差网络的简称。其核心思想就是在&#xff0c;每两个网络层之间加入一个残差连接&#xff0c;缓解深层网络中的梯度消失问题 二、残差结构 在多层神经网络模型里&#xff0c;设想一个包含诺干层自网络&#xff0c;子网络的函数用H(x)来表示&#x…

go语言zero框架调用自己的安装的redis服务配置与使用

在 Go 语言中调用自己安装的 Redis 服务&#xff0c;可以分为几个步骤&#xff1a;从安装 Redis 服务到配置、启动 Redis&#xff0c;最后在 Go 代码中连接并使用 Redis。以下是详细的步骤&#xff1a; ## 1. 安装 Redis 服务 ### 1.1 在 Linux 系统上安装 Redis 假设你使用…

Cerebras 推出 CePO,填补推理与规划能力的关键空白

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

Google Cloud Database Option(数据库选项说明)

关系数据库 在关系数据库中&#xff0c;信息存储在表、行和列中&#xff0c;这通常最适合结构化数据。因此&#xff0c;它们用于数据结构不经常更改的应用程序。与大多数关系数据库交互时使用 SQL&#xff08;结构化查询语言&#xff09;。它们为数据提供 ACID 一致性模式&am…

ArcGIS将MultiPatch数据转换为Obj数据

文章目录 ArcGIS将MultiPatch数据转换为Obj数据1 效果2 技术路线2.1 Multipatch To Collada2.2 Collada To Obj3 代码实现4 附录4.1 环境4.2 一些坑ArcGIS将MultiPatch数据转换为Obj数据 1 效果 2 技术路线 MultiPatch --MultipatchToCollada–> Collada --Assimp–> O…

微信小程序5-图片实现点击动作和动态加载同类数据

搜索 微信小程序 “动物觅踪” 观看效果 感谢阅读&#xff0c;初学小白&#xff0c;有错指正。 一、功能描述 a. 原本想通过按钮加载背景图片&#xff0c;来实现一个可以点击的搜索button&#xff0c;但是遇到两个难点&#xff0c;一是按钮大小调整不方便&#xff08;网上搜索…

使用nmap确定扫描目标

nmap可以通过IP、主机名、域名等指定单一目标&#xff0c;也可以使用IP范围、列表文件、等指定多个IP。 单一目标 IP nmap IP主机名 nmap hostname域名 nmap domainname&#xff0c;可以通过--dns-server指定dns服务器地址&#xff0c;也可以通过--system-dns指定使用操作系统…

【C++】关联存储结构容器-set(集合)详解

目录 一、基本概念 二、内部实现 三、常用操作 3.1 构造函数 3.2 插入操作 3.3 删除操作 3.4 查找操作 3.5 访问元素 3.6 容量操作 3.7 交换操作 四、特性 五、应用场景 结语 一、基本概念 set是C标准模板库&#xff08;STL&#xff09;中的一种关联容器&#xf…

ssm-day03 aoptx

AOP AOP指的是面向对象思想编程问题的一些补充和完善 soutp、soutv 解耦通俗理解就是把非核心代码剥出来&#xff0c;减少对业务功能代码的影响 设计模式是解决某些特定问题的最佳解决方案&#xff0c;后面一点要记得学这个&#xff01;&#xff01;&#xff01; cxk唱跳哈…

谷粒商城—分布式高级①.md

1. ELASTICSEARCH 1、安装elastic search dokcer中安装elastic search (1)下载ealastic search和kibana docker pull elasticsearch:7.6.2 docker pull kibana:7.6.2(2)配置 mkdir -p /mydata/elasticsearch/config mkdir -p /mydata/elasticsearch/data echo "h…

数据仓库的性能问题及解决之道

随着数据量不断增长和业务复杂度逐渐攀升&#xff0c;数据处理效率面临巨大挑战。最典型的表现是面向分析型场景的数据仓库性能问题越来越突出&#xff0c;压力大、性能低&#xff0c;查询时间长甚至查不出来&#xff0c;跑批跑不完造成生产事故等问题时有发生。当数据仓库出现…

云和恩墨 zCloud 与华为云 GaussDB 完成兼容性互认证

近日&#xff0c;云和恩墨&#xff08;北京&#xff09;信息技术有限公司&#xff08;以下简称&#xff1a;云和恩墨&#xff09;的多元数据库智能管理平台 zCloud 与华为云计算技术有限公司&#xff08;以下简称&#xff1a;华为云&#xff09;的 GaussDB 数据库完成了兼容性互…

分布式专题(4)之MongoDB快速实战与基本原理

一、MongoDB介绍 1.1 什么是MongoDB MongoDB是一个文档数据库(以JSON为数据模型)&#xff0c;由C语言编写&#xff0c;旨在为WEB应用提供可扩展的高性能存储解决方案。 MongoDB是一个介于关系数据库和非关系数据库之间的产品&#xff0c;是非关系数据库当中功能最丰富&#xf…