物联网安全-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
NordicNRF5340
Dialog 戴泺格DA1469x
ADI 亚德诺----
Silicon Labs 芯科zhanGecko 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

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

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

相关文章

若依集成Uflo2工作流引擎

文章目录 1. 创建子模块并添加依赖1.1 新建子模块 ruoyi-uflo1.2 引入 Uflo2 相关依赖 2. 配置相关 config2.1 配置 ServletConfig2.2 配置 UfloConfig2.3 配置 TestEnvironmentProvider 3. 引入Uflo配置文件4. 启动并访问 Uflo2 是由 BSTEK 自主研发的一款基于 Java 的轻量级工…

linux启动流程

linux 启动详细流程 启动流程主要分为四个阶段&#xff1a;BIOS与UEFI->bootloader->kernel->busybox()init,下面从这四个方面展开 BIOS与UEFI 由于计算机启动是一个很矛盾的过程&#xff0c;即必须先运行程序&#xff0c;然后计算机才能启动&#xff0c;但是计算机不…

基于Qwen2-VL模型针对LaTeX OCR任务进行微调训练 - 多图推理

基于Qwen2-VL模型针对LaTeX OCR任务进行微调训练 - 多图推理 flyfish 基于Qwen2-VL模型针对LaTeX_OCR任务进行微调训练_-_LoRA配置如何写 基于Qwen2-VL模型针对LaTeX_OCR任务进行微调训练_-_单图推理 基于Qwen2-VL模型针对LaTeX_OCR任务进行微调训练_-_原模型_单图推理 基于Q…

【1211更新】腾讯混元Hunyuan3D-1文/图生3D模型云端镜像一键运行

目录 项目介绍 显存占用 11月21 新增纹理烘焙模块Dust3R 烘焙相关参数&#xff1a; AutoDL云端镜像 启动说明 标准模型下载 【1212更新】腾讯混元Hunyuan3D-1文图生3D模型云端镜像一键运行 项目介绍 https://github.com/Tencent/Hunyuan3D-1 腾讯混元 3D 生成模型,支持…

大数据笔记之flink-cdc实时同步数据

大数据笔记之flink-cdc实时同步数据(mysql -->doris) 一、基本概念 Flink CDC 是一个基于流的数据集成工具&#xff0c;旨在为用户提供一套功能更加全面的编程接口&#xff08;API&#xff09;。 该工具使得用户能够以 YAML配置文件的形式&#xff0c;优雅地定义其 ETL&…

【Qt】qt基础

目录 一、使用Qt Creator创建qt项目 二、项目文件解析 三、Qt中创建图形化界面的程序的两种方法 四、对象树 五、Qt中处理打印乱码问题的利器&#xff1a;qDebug() 一、使用Qt Creator创建qt项目 1.选择项目模板 选中第一类模板Application(Qt应用程序&#xff0c;包含普…

MySQL(五)--- 事务

1、CURD操作不加控制时,可能会出现什么问题 即:类似于线程安全问题,可能会导致数据不一致问题。 因为,MySQL内部本身就是多线程服务。 1.1、CURD满足什么属性时,才能避免上述问题 1、买票的过程得是原子的吧。 2、买票互相应该不能影响吧。 3、买完票应该要永久有效吧。…

国科大智能设备安全-APK逆向分析实验

APK逆向分析实验 使用APK常用逆向分析工具&#xff0c;对提供的移动应用程序APK文件进行逆向分析&#xff0c;提交逆向后代码和分析报告。具体任务如下&#xff1a; 任务一&#xff1a;安装并熟悉Apktool、Jadx等APK常用逆向工具的使用方法&#xff0c;对提供的Facebook Updat…

欧拉计划 Project Euler(16-20)题解

欧拉计划16-20 pro 16pro17pro18pro19pro20 pro 16 思路 大数乘法模拟即可 #include <bits/stdc.h>using namespace std;using ll long long;const int N 5005; // 1366 // 2^1000 1071508607186267320948425049060001810561404811705533607443750388370351051124936…

(软件测试文档大全)测试计划,测试报告,测试方案,压力测试报告,性能测试,等保测评,安全扫描测试,日常运维检查测试,功能测试等全下载

1. 引言 1.1. 编写目的 1.2. 项目背景 1.3. 读者对象 1.4. 参考资料 1.5. 术语与缩略语 2. 测试策略 2.1. 测试完成标准 2.2. 测试类型 2.2.1. 功能测试 2.2.2. 性能测试 2.2.3. 安全性与访问控制测试 2.3. 测试工具 3. 测试技术 4. 测试资源 4.1. 人员安排 4.2. 测试环境 4.2.…

通过PS和Unity制作2D动画之一:创建形象

1、通过路径画出轮廓 使用路径的过程中&#xff0c;需要注意&#xff1a; 1&#xff09;如果使用形状工具作图&#xff0c;比如使用椭圆工具画正圆形&#xff0c;需要设置其属性为“路径”。 2&#xff09;使用路径选择工具&#xff0c;再按住Alt键点击某个路径&#xff0c;可…

Qt | 开发工具(top1)

Qt Creator 跨平台、完整的集成开发环境(IDE)&#xff0c;供应用程序开发者创建用于多个桌面、嵌入式和移动设备平台的应用程序。 Qt Linguist 一套将Qt C和Qt Quick应用程序翻译成本地语言的工具。 qmake Qt自动化构建工具&#xff0c;简化了不同平台的构建过程。…

纯CSS实现文本或表格特效(连续滚动与首尾相连)

纯CSS实现文本连续向左滚动首尾相连 1.效果图&#xff1a; 2.实现代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, init…

Qt之点击鼠标右键创建菜单栏使用(六)

Qt开发 系列文章 - menu&#xff08;六&#xff09; 目录 前言 一、示例演示 二、菜单栏 1.MenuBar 2.Menu 总结 前言 QMainWindow是一个为用户提供主窗口程序的类&#xff0c;包含一个菜单栏&#xff08;menubar&#xff09;、多个工具栏(toolbars)、一个状态栏(status…

UE4_控件蓝图_制作3D生命血条

一&#xff1a;效果图如下&#xff1a; 二、实现步骤&#xff1a; 1、新建敌人 右键蓝图类 选择角色&#xff0c; 重命名为BP_Enemytest。 双击打开&#xff0c;配置敌人网格体 修改位置及朝向 效果如下&#xff1a; 选择合适的动画蓝图类&#xff1a; 人物就有了动作&#x…

自己玩虚拟机:vagrant,virtual box,centos

vagrant 访问Vagrant官网 https://www.vagrantup.com/ 点击Download Windows&#xff0c;MacOS&#xff0c;Linux等 选择对应的版本 AMD64 (x86_64) I686 (x86) 傻瓜式安装 命令行输入vagrant&#xff0c;测试是否安装成功 vagrant -v 可以查看当前版本 virtual box 访…

【密码学】BUUCTF Crypto 1 - 12 题 WriteUp

今天&#xff0c;我在 BUUCTF 网站的 crypto section 开启了一场充满挑战的密码学之旅。 这次我一口气完成了 12 个板块的任务&#xff0c;虽然耗时较长&#xff0c;但每一次解密成功的瞬间都让我无比满足&#xff0c;那种沉浸在密码世界里的感觉真的很棒。 接下来&#xff0…

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

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

FPGA开发verilog语法基础3

文章目录 主体内容1 模块的结构与调用2 语句2.1 结构语句2.1.1 initial语句2.1.2 always语句 2.2 赋值语句2.2.1 阻塞赋值()2.2.2 非阻塞赋值(<) 2.3 条件语句2.3.1 if 语句2.3.2 case 语句 3 状态机3.1 状态空间定义3.2 状态跳转3.3 下个状态判断3.4 各个状态下的动作3.5 状…

复原IP地址 什么是运算符重载? 如何在 C++ 中进行运算符重载?运算符重载在面向对象编程中的好处是什么?getline方法

getline方法 getline 是一个强大的函数&#xff0c;主要用于从输入流中按行读取数据或基于自定义分隔符提取字符串。它是 C 标准库的一部分&#xff0c;定义在头文件 <string> 中。 语法 std::getline(istream& input, std::string& str);input&#xff1a;输…