[Genode] ARM TrustZone

这是关于读文章ARM TrustZone的记录,原文是英文,刚开始会有点反应不过来,这里大部分是对文章的翻译与提取。

ARM信任区技术

ARM信任区是在 热烈讨论关于X86平台上的可信平台模块(TPM) 时引入的。。

就像TPM芯片神奇的使个人电脑变得值得信赖一样,信任区的目标是建立基于ARM平台的信任。

与被设计成具有预定义固定功能的TPM不同,TrustZone请添加图片描述
代表了一种更加灵活的方式,利用CPU作为一个可自由编程的可信平台模块。

为了完成这一点,ARM除了常规的正常模式外,还引入了一种叫做“安全模式”的特殊的CPU模式,从而建立了“安全世界”和“正常世界”的概念。这两个世界的区别完全正交于用户级和内核级代码之间的正常环保护,并且隐藏在正常世界中运行的操作系统之外。此外,它不局限于CPU,而是通过系统总线传播到外围设备和内存控制器。

通过这种方式,这种基于ARM的平台有效的成为了一种划分特性。

当安全模式处于活动状态时,运行在CPU的软件在整个系统中的视角于运行在非安全模式下的软件不同。通过这种方式,系统功能,特别是安全功能个加密凭证,可以在正常情况下隐藏起来。

不用说,这个概念比TPM芯片灵活得多,因为安全世界的功能是系统软件定义的,热不是硬连接的。

正常世界和安全世界的例子
这张图片是一个关于正常世界和安全世界的例子。
当前,正常世界是活跃状态(因为non-secure位=1),操作系统运行在一个只能接触到一部分物理资源的平台。当所处的world发生改变时,secure world生效,运行在SW(secure world简写,下同)的系统软件可以接触到那些在NW(normal world简写,下同)中隐藏的硬件设备。

  • 关于下面内容的概述
    • 第一部分:出发点,列出考虑采取的可能路线
    • 第二部分:定制内核平台的设计和创建,给出了创建定制内核以支持这项工作的基本原理
    • 第三部分:详细介绍了在构建原型时遇到的特定于TrustZone的挑战
    • 第四部分:以常见问题部分的问答形式总结发现

出发点

在开始实验的时候,我们对ARM Cortex-A9-based SoCs(Security Operations Center,安全运行中心)较感兴趣。所有All Cortex-A9被装配在ARM安全扩展中(经常被视为TrustZone特性)。原则上,任何基于 Cortex-A9的平台都适合我们。不过,即使市场上有很多低功耗的ARM开发板,但是我们发现,他们都没有提供对TrustZone安全方式的访问。
在几乎所有情况下,在启动引导加载程序之前,存储在ROM中的引导代码转换为非安全模式,这可能是为了防止访问Soc中不打算公开使用的那些部分。这将潜在的基础平台缩小到FreeScale的i.MX开发板和ARM Versatile Express平台。
FreeScale i.MX 平台对安全模式的使用没有限制。但在我们开始的时候,还没有基于 Cortex-A9的电路板可用。最新的 i.MX53电路板采用了单核 Cortex-A8处理器,ARM 多功能快速 Cortex-A9板是 ARM 的官方参考板,支持 ARM TrustZone。正如预期的那样,官方参考委员会的价格标签远远高于你通常的低成本开发委员会。这并不是说它的数量级更贵。其实是两份!尽管如此,我们还是很高兴能够得到其中的一个,并且可以在官方参考平台上开始我们的实验

请添加图片描述
我们进行了两个实验: 使用现有的微内核进行原型设计和创建自定义内核平台。以前的工作的主要动机是有一个低风险的路径,使参考硬件和熟悉 ARM Cortex-A9的原则使用。通过获取和修改已知在这个 CPU 核上工作的现有内核平台,我们有了一个很好的起点。然而,为了彻底理解 TrustZone 的机制,我们需要解决内核范围内的问题。此外,我们希望完全控制引导过程,特别是解决有关安全引导的问题。我们决定创造一个定制的能够使我们自由的探索这个平台而不需要考虑现有内核实现的复杂性的内核平台,而不是修补现有的内核并继承他的设计选择。

对于这两种工作,我们都使用 Genode 操作系统框架(Genode)作为基础。Genode 是一个用于构建专用操作系统的构建工具包。它是一个小的构建模块的集合,从中可以组成复杂的系统。这些构建块不仅包括应用程序,还包括所有经典的操作系统功能,如内核、设备驱动程序和协议栈。目前,Genode 支持8种不同的内核,并为基于 x86和基于 ARM 的平台提供超过100个可重用组件。我们认为其低可信计算基础(TCB)复杂性和高灵活性将使其成为指定在 TrustZone 安全端运行的操作系统的有吸引力的基础。

对于第一项的工作,支持多功能 Express 平台,其中一个内核 L4/Fiasco、 Fiasco.OC 或 Codezero 基本上是合适的。在这些候选者中,Fiasco.OC 为最新的 ARM 系统芯片提供了最广泛的支持。因此,我们决定使用 Genode 和 fiasco.OC 的结合作为起点,以便在该平台上主要使用 Genode。这需要我们为基本的外围设备如 PL110显示器、 PL011 UART、定时器和 PS/2实现低级驱动程序支持。尽管与驱动程序相关的工作是使用 Fiasco.OC 内核进行的,但其结果对 Fiasco.OC 和我们的定制内核都是有益的,因为 Genode 的驱动程序组件独立于底层内核。

在我们的第二项工作中,我们用一个新的基础平台来补充 Genode,我们称之为“ base-hw”(“ hw”表示在裸硬件上运行的 Genode)。与已经支持的内核不同,这个新平台与 Genode 的核心紧密集成。因此,与使用离散内核相比,我们的目标是显著降低基本系统的 TCB 复杂度。在我们的 TrustZone 实验环境中,自定义内核平台最大的好处是在使用 Cortex-A9和 TrustZone 时对内核级问题的深入了解。

我们定制的基于 hw 内核平台的设计与实现

与经典的 L4微内核不同,Genode 的核心进程作为用户级的根任务在内核之上运行,base-hw 直接在硬件上执行 Genode 的核心,而在硬件之下没有独立的内核。将内核和内核融合为一种新型的内核/用户界面混合程序。只有少数代码路径在特权模式下执行,但大多数代码在用户模式下运行。
这种设计有几个好处。首先,内核部分变得更加简单。例如,内核部分不需要分配器,因为分配器是由内核的用户级部分管理的。第二,基本程序侧步处理长期存在的硬内核级问题,特别是内核资源的管理。对于内核对象的分配,我们可以简单地使用 Genode 的用户级资源交易概念。然而,最后也是最重要的一点是,将内核与 root 任务合并可以消除两个程序之间的大量冗余。传统上,内核和根任务都执行物理资源分配的簿记以及地址空间和线程等内核对象的存在。在 base-hw 中,这些数据结构只存在一次。组合内核/核的复杂度显著低于传统自足内核和顶部独特根任务的复杂度之和。这样,base-hw 有助于使 Genode 的 TCB 变得不那么复杂。
新设计对 Genode 进程树根 TCB 的影响
该图说明了新设计对 Genode 进程树根 TCB 的影响。

左侧描述了 L4内核家族的一个传统成员。蓝色标记的 TCB 包括内核、 sigma0根内存管理器、 root 任务(Genode 的核心)和 Genode 的 init 进程,这些组件累计大约有6万行代码。右侧说明了 base-hw 的核/核混合方法。通过合并内核和 root 任务,在基础上运行的系统需要信任更少的代码才能避免 bug。

为了实现基础 hw 内核平台,我们进行了以下步骤。
首先,我们设计并实现了引导一个基于 Genode 的系统的概念,该系统可能由多个模块组成,作为一个单独的引导映像。这是第一个在stock Fiasco.OC 内核上使用自定义平台变得有益的地方,因为与 Fiasco.OC 中已知的过程相比,我们的引导概念非常简单。

内核的执行模型可以粗略地描述为单堆栈内核。与每个用户线程维护一个内核线程的传统 L4内核不同,base-hw 内核只是一个状态机,从不在内核中阻塞。这与 seL4内核和 NOVA 微管理程序的操作方式类似。

下一步是添加对中断处理和抢占式多线程的支持。因此,我们实现了 PL390中断控制器和 Cortex-A9核心定时器的驱动程序。结合实现的内核入口代码路径和中断控制器,Genode 的用户级核心可以处理定时器中断。

  • Genode 的核心组件使用多个执行线程:
    • 初始化平台并产生名为 init 的第一个用户级进程的主线程,
    • 接收和处理页错误的寻呼机线程,
    • 每个设备中断一个线程,
    • 一个所谓的 RPC 入口点,它处理对 core 提供的服务的请求,
    • Init 进程的父线程,它通过父接口响应 init 进程的请求。

(未完待续……)

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

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

相关文章

【机器学习算法】机器学习:支持向量机(SVM)

转载自: 【精选】机器学习:支持向量机(SVM)-CSDN博客 1.概述 1.1,概念 支持向量机(SVM)是一类按监督学习方式对数据进行二元分类的广义线性分类器,其决策边界是对学习样本求解的最…

这些来自各领域的全新机器人技术,你了解吗?

原创 | 文 BFT机器人 01 人机交互的新工具 在人机交互领域,来自欧洲各地的研究人员开发了一种名为HEUROBOX的新工具,用于评估交互。HEUROBOX提供了84个基本启发式和228个高级启发式,用于评估人机交互的各个方面,如安全性、人体工…

mac控制台命令小技巧

shigen日更文章的博客写手,擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。记录成长,分享认知,留住感动。 hello伙伴们,作为忠实的mac骨灰级别的粉丝,它真的给我带来了很多效率上的提升。那作为接…

金蝶云星空和旺店通·旗舰奇门接口打通对接实战

金蝶云星空和旺店通旗舰奇门接口打通对接实战 数据源系统:金蝶云星空 金蝶K/3Cloud(金蝶云星空)是移动互联网时代的新型ERP,是基于WEB2.0与云技术的新时代企业管理服务平台。金蝶K/3Cloud围绕着“生态、人人、体验”,旨在帮助企业…

三极管与mos管的区分与应用

三极管与mos管的区分与应用 这部分知识每次用都要查,隔一段时间就忘记了.忍无可忍,再此写下来,作为之后然后查找的笔记 这里先推荐几篇我查阅到的笔记, <<三极管和MOS管驱动电路的正确用法>> https://blog.csdn.net/qq_21794157/article/details/122736035 <<…

Azure 机器学习 - 搜索中的检索增强 (RAG)

目录 一、Azure AI 信息检索系统介绍二、采用 Azure AI 搜索的 RAG 方法三、适合 Azure AI 搜索的自定义 RAG 模式四、Azure AI 搜索中的可搜索内容五、Azure AI 搜索中的内容检索构建查询响应按相关性排名适用于 RAG 方案的 Azure AI 搜索查询的示例代码 六、集成代码和 LLM七…

无菌药品生产(A级区域)--气流流型测试可视化烟雾试验详细介绍

技术背景 无菌药品是指法定药品标准中列有无菌检测项目的制剂和原料药&#xff0c;包括注射剂、眼用制剂、无菌软膏剂、无菌混悬剂等。目前工程中&#xff0c;以注射剂产品为主的厂房占据了很大的比重。 无菌药品生产质量风险管理中&#xff0c;人员及其活动被视为重大的污染…

云计算行业敲门砖—证书盘点

未来10年&#xff0c;都会是云计算技术不断发展变革的时代&#xff0c;这其中会产生非常多的就业机会。有数据统计&#xff0c;未来五年&#xff0c;云计算行业人才缺口达150万&#xff0c;选对了行业&#xff0c;你就成功了一半。 云计算可以考的证书还是很多的&#xff0c;很…

【Unity小技巧】图片使用的一些常见问题

文章目录 前言Button不规则按钮点击空白区域不响应点击事件1. 设置资源参数2. 代码设置按钮Image的alphaHitTestMinimumThreshold3. 解释&#xff1a;4. 效果 Unity Image 原图比例控制方法一 Preserve Aspect1. 设置勾选Preserve Aspect&#xff08;保持长宽比&#xff09;&am…

Python的requests库:解决文档缺失问题的策略与实践

在Python的requests库中&#xff0c;有一个名为ALL_PROXY的参数&#xff0c;但是该参数的文档并未进行详细的描述。这使得用户在使用该参数时可能会遇到一些问题&#xff0c;例如不知道如何正确地配置和使用该参数。 解决方案 针对这个问题&#xff0c;我们可以采取以下几种解…

小小发票拦住出海“巨头”,合合信息智能文档处理技术助力企业重塑财务管理流程

作为连接企业采购、生产、运营、销售等经营行为的枢纽&#xff0c;财务系统的数字化、智能化升级近年来变得愈发重要。发票的录入、存储关乎企业应收账款管理和税务规范&#xff0c;通过技术手段提升发票管理的精准度与效率&#xff0c;也成为了财务数字化的关键环节。 近日&a…

CRM按行业细分的重要性

很多企业和销售会诟病CRM系统不够贴合行业、功能也不够细分和实用。因为各行各业的业务千差万别&#xff0c;所以功能完备、使用满意度高的CRM一定是与不同行业业务场景高度匹配的&#xff0c;是深度行业化的。因此行业化是CRM发展的重要趋势之一&#xff0c;为什么CRM一定要走…

竞赛选题 疫情数据分析与3D可视化 - python 大数据

文章目录 0 前言1 课题背景2 实现效果3 设计原理4 部分代码5 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 大数据全国疫情数据分析与3D可视化 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学长非常推荐&#xff0…

Apache Airflow (十一) :HiveOperator及调度HQL

&#x1f3e1; 个人主页&#xff1a;IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客 &#x1f6a9; 私聊博主&#xff1a;加入大数据技术讨论群聊&#xff0c;获取更多大数据资料。 &#x1f514; 博主个人B栈地址&#xff1a;豹哥教你大数据的个人空间-豹…

【MySQL--->视图】

文章目录 [TOC](文章目录) 一、概念二、操作三、视图特性 一、概念 视图是一个由插叙结果组成的虚拟表,基于表查询结果得到的表叫做视图,被查询的表叫做基表.基表和视图进行更新操作会互相影响. 二、操作 创建视图 将dept和emp两个基表的查询结果作为视图 更新基表会影响视…

文具办公产品展示预约小程序的作用如何

从整体来看&#xff0c;文具办公品牌/门店的生意来源于线下自然流量或线上自营商城/入驻第三方商城的的流量&#xff0c;线上多数情况都是以直接销售配送为主&#xff0c;但其实对文具品牌/门店而言还有信息展示、服务预约、在线咨询、产品介绍等需求。 虽然小区周边的消费者需…

一些损失函数的学习

CrossEntropy loss 交叉熵是用来衡量两个概率分布之间的差异性或不相似性的度量交叉熵定义为两个概率分布p和q之间的度量。其中&#xff0c;p通常是真实分布&#xff0c;而q是模型预测的分布 交叉熵还等于信息熵 相对熵 这里&#xff0c;x遍历所有可能的事件&#xff0c;p(x)…

OpenAI与微软合作,构建 ChatGPT 5 模型;10天准确天气预报

&#x1f989; AI新闻 &#x1f680; OpenAI与微软合作&#xff0c;构建 ChatGPT 5 模型&#xff0c;下一代人工智能或拥有超级智能 摘要&#xff1a;OpenAI首席执行官 Sam Altman 在接受采访时表示&#xff0c;OpenAI正在与微软合作构建下一代人工智能模型 ChatGPT 5&#x…

element UI表格中设置文字提示(tooltip)或弹出框(popover)时候注意的地方

在表格中自定义内容的时候需要使用标签&#xff0c;否则无法正常显示 文档中有两种写法&#xff1a;1、使用 slot“reference” 的具名插槽&#xff0c;2、使用自定义指令v-popover指向 Popover 的索引ref。 使用tooltip 时用具名 slot 分发content&#xff0c;替代tooltip中…

如何将文字、图片、视频、链接等内容生成一个二维码?

通过二维彩虹的【H5编辑】功能&#xff0c;就可以将文字、图片、视频、文件、链接等多种格式的内容编辑在一个页面&#xff0c;然后生成一个自定义的二维码——H5编辑二维码。扫描后&#xff0c;即可查看二维码中的详细图文视频等内容了。这个功能大受欢迎&#xff01; 这个H5…