RISC-V架构下OP-TEE 安全系统实践

安全之安全(security²)博客目录导读


本篇博客,我们聚焦RISC-V 2024中国峰会上的RISC-V和OP-TEE结合的一个安全系统实践,来自芯来科技桂兵老师。

关于RISC-V TEE(可信执行环境)的相关方案,如感兴趣可参考RISC-V TEE(可信执行环境)方案初探

首先,我们看下ARM和RISC-V架构下支持TEE的硬件和软件,以下RISC-V的相关方案还没有GP TEE标准的开源软件方案,那么芯来的这个安全系统实践主要来探索这个方面。

【注意】AP-TEE是RISC-V官方标准的TEE,目前处于in development状态,可参考GitHub - riscv-non-isa/riscv-ap-tee: This repo holds the work area and revisions of the non-ISA specification created by the RISC-V AP-TEE TG. This specification defines the programming interfaces (ABI) to support the Confidential VM Extension (CoVE) confidential computing architecture for RISC-V application-processor platforms.

然后,我们来看下芯来的OP-TEE方案,整体是由HOST端和HSM(Hardware Security Module)端组成,其中都包含RISC-V架构的core,互相之间通过Mailbox进行通讯。

接着,我们再看下Secure boot安全启动的方案

具体的流程如下:

HSM BootROM从flash加载hsmboot到HSM ILM, 验签解密

HSM Boot从flash加载SPL到Host CLM,验签解密, 运行NSBS等待Host请求crypto 服务

SPL 初始化DDR,从flash加载 opensbi/optee/uboot到DDR,验签解密

U-Boot从SD卡加载kernel/rootfs到DDR,验签解密 Host验签和解密,通过MailBox请求HSM NSBS服务

SPL->OpenSBI->OP-TEE ->U-Boot->Kernel

隔离机制如下,主要还是借助PMP的内存隔离和借助M/S/U模式的CPU安全状态隔离,除此之外

结合Nuclei Secure特性,CPU安全状态有硬件支持,BUS/Cache/TLB也区分硬件安全状态

整体的运行架构图如下,和ARM的Trustzone软件安全架构非常类似:

该工作还有一个重点就是对中断隔离的处理,具体的机制如下,和Trustzone架构下大系统中断路由的9种示例相比还是相对简单许多

代理所有中断到S模式

对PLIC 中断使能模式分类:

M模式使能的中断:非本世界处理

S模式使能的中断:本世界处理

Monitor 管理中断使能模式,比如进入非安全 世界前,设置安全外设中断到M模式使能,非安全外设中断到S模式使能

为避免竞态,规定进入安全世界后,不响应非安全世界中断,但安全中断能打断非安全世界执行

在非安全世界执行时,来了一个想要给TEE处理的中断的一个大致流程如下:

最后,作者进行了Xtest用例执行的Demo展示,可以在芯来的qemu平台、UX900 FPGA环境上运行OP-TEE。

在github上的一个上游链接如下:https://github.com/OP-TEE/optee_os/issues/6173

演讲幻灯片和视频回放参见:2024RISC-V中国峰会 演讲幻灯片和视频回放均已公开

其他安全相关议题参见:2024 RISC-V中国峰会 安全相关议题汇总

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

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

相关文章

车载VR可视化解决方案

车载VR可视化解决方案是通过融合跟踪用户头部运动的特殊预测算法与惯性测量数据而开发的。该系统将大范围虚拟现实跟踪技术与IMU传感器相结合,为VR和AR应用打造了一套全面的运动跟踪与渲染流程,极大地方便了虚拟现实头显制造商定制可视化流程。 该车载VR…

Git常用的命令【提交与回退】

git分布式版本控制系统 (SVN集中式版本控制系统)之间的对比 git有本地仓库和远程仓库,不同的开发人员可以分别提交自己的本地仓库并维护代码的版本控制。 然后多个人员在本地仓库协作的代码,可以提交到远程仓库中做整合。 git本…

【vue2自定义指令】v-disabled 实现el-switch,el-button等elementUI禁用(disabled)效果

如果你搜过类似的功能,肯定看到过千篇一律的 // 实现按钮禁用el.disabled true// 增加 elementUI 的禁用样式类el.classList.add(is-disabled)但是这个方案明显对el-switch,不起作用,所以我这边直接把方案贴出来,不想了解具体原理…

使用数据库同步中间件DBSyncer实现不同数据库的数据同步

点击上方蓝字关注我 有去O(ORACLE数据库)、信创、国产化数据库等项目实践的同学应该都遇到过不同数据库之前进行数据迁移的问题,虽然有各种工具可以实现,但是有些工具的部署、使用比较复杂,也有些工具迁移数据效率很低。本文将介绍一款开源且…

3.2 串口_HAL库实现代码

1、串口用作调试 串口用作调试就是配置好串口后,用串口做一些输出。对于代码层面,最终调用的是标准库printf来实现串口数据的输出。 1.1 CubeMX配置 1、RCC配置外部晶振 2、时钟树配置如下 3、工程配置如下 4、串口配置如下 注意这里默认设置的波特率…

乌龟咬人,小意外中的大警示

近日,听闻有朋友被自家乌龟咬了手指,这看似滑稽的小意外,实则蕴含着不少值得我们深思的安全与责任问题。 乌龟,在大众的认知里,向来是行动迟缓、性情温和的宠物代表。它们慢悠悠地爬行,憨态可掬的模样常常…

AI赋能:构建安全可信的智能电子档案库

在档案的政策与法规上,《中华人民共和国档案法》2020年修订新增,对电子档案的合法要件、地位和作用、安全管理要求和信息化系统建设等方面作出了明确规定,保障数字资源的安全保存和有效利用。 日前,国家档案局令第22号公布《电子…

解谜类游戏《迷失岛2》等如何抽象出一套通用高效开发框架?

解谜类游戏以精妙的谜题设计和引人入胜的故事叙述为特点,考验着玩家的智慧与观察力。《迷失岛2》与《南瓜先生2九龙城寨》正是这一领域的佳作。游戏以独特的艺术风格和玩法设计吸引了大量玩家,而它们背后隐藏着一套强大的框架。 上海胖布丁游戏的技术总…

使用ALB实现gRPC协议的负载均衡

gRPC是一种高性能、开源的远程过程调用框架,当您使用gRPC进行后端服务通信时,您可使用应用型负载均衡ALB(Application Load Balancer)实现gRPC协议的负载均衡,统一流量入口。gRPC基于HTTP/2协议进行通信,目…

JUC:Synchronized和锁升级

1. 面试题 谈谈你对Synchronized的理解Sychronized的锁升级你聊聊Synchronized实现原理,monitor对象什么时候生成的?知道monitor的monitorenter和monitorexit这两个是怎么保证同步的嘛?或者说这两个操作计算机底层是如何执行的偏向锁和轻量级…

ros项目dual_arm_pick-place(对比moveit配置助手生成的文件)

目录 前言正文gazebo_controllers.yaml变更ros_controllers.yaml变更simple_moveit_controllers.yaml变更moveit_planning_execution.launch变更ros_controllers.launch变更其他文件 汇总总结 前言 在本专栏前文中讲到,作者有moveit配置助手导出的包marmbots&#…

【力扣】13.罗马数字转整数

问题描述 思路解析 对于这种限制字符的问题&#xff0c;使用Map来对键值存储 对其进行判断&#xff0c;如果前面的数小于后面的数&#xff0c;那么结果相减 否则&#xff0c;正常相加。 代码 class Solution {Map<Character,Integer> mapnew HashMap<Character,In…

从ground_truth mask中获取图像的轮廓图

引言 在图像取证领域&#xff0c;主要分为检测和定位两个方面。检测就是判断一张图片是否为伪造图&#xff0c;定位与传统意义上的语义分割任务相近&#xff0c;就是定位伪造像素的区域。如果单纯使用语义分割网络训练&#xff0c;只能获得次优解&#xff0c;而像多任务学习那样…

C语言程序设计P5-2【应用函数进行程序设计 | 第二节】——知识要点:函数的参数及返回值和函数的调用及声明

知识要点&#xff1a;函数的参数及返回值和函数的调用及声明 视频&#xff1a; 目录 一、任务分析 二、必备知识与理论 三、任务实施 一、任务分析 1.求x的n次方的值也就是求n个x的乘积&#xff0c;可把x和n作为函数的形参&#xff0c;定义一个函数power来完成这个功能&am…

【sgUploadList】自定义组件:基于elementUI的el-upload封装的上传列表组件,适用于上传附件时

sgUploadList源码 <template><div :class"$options.name"><ul class"files"><li v-for"(a, i) in files" :key"i"><el-link click.stop"clickFile(a)"><img :src"getFlieThumbSrc(a…

位运算(一)位运算简单总结

191. 位1的个数 给定一个正整数 n&#xff0c;编写一个函数&#xff0c;获取一个正整数的二进制形式并返回其二进制表达式中 设置位 的个数&#xff08;也被称为 汉明重量&#xff09;。 示例 1&#xff1a; 输入&#xff1a;n 11 输出&#xff1a;3 解释&#xff1a;输入的二…

聚合支付系统/官方个人免签系统/三方支付系统稳定安全高并发 附教程

聚合支付系统/官方个人免签系统/三方支付系统稳定安全高并发 附教程 系统采用FastAdmin框架独立全新开发&#xff0c;安全稳定,系统支持代理、商户、码商等业务逻辑。 针对最近一些JD&#xff0c;TB等业务定制&#xff0c;子账号业务逻辑API 非常详细&#xff0c;方便内置…

声音克隆GPT-SoVITS

作者&#xff1a;吴业亮 博客&#xff1a;wuyeliang.blog.csdn.net 一、原理介绍 GPT-SoVITS&#xff0c;作为一款结合了GPT&#xff08;生成预训练模型&#xff09;和SoVITS&#xff08;基于变分信息瓶颈技术的歌声转换&#xff09;的创新工具&#xff0c;正在声音克隆领域掀…

WLAN AutoConfig服务假死?重启服务恢复网络连接!

目录 背景&#xff1a; 过程&#xff1a; 可能引起原因&#xff1a; 具体解决步骤&#xff1a; 步骤一: 步骤二&#xff1a; 总结&#xff1a; 背景&#xff1a; 这个问题困扰我好长一段时间了&#xff0c;每次下班将电脑关机后&#xff0c;次日早上电脑开机的时候无线…

鸿蒙面试题 -生命周期的执行顺序

在开始之前&#xff0c;我们先明确自定义组件和页面的关系&#xff1a; 自定义组件&#xff1a;Component装饰的UI单元&#xff0c;可以组合多个系统组件实现UI的复用&#xff0c;可以调用组件的生命周期。 页面&#xff1a;即应用的UI页面。可以由一个或者多个自定义组件组成…