关于openharmony:开源机密计算平台蓬莱OpenHarmony

10次阅读

共计 3654 个字符,预计需要花费 10 分钟才能阅读完成。

演讲嘉宾 | 杜   东
回顾整顿 | 廖   涛
排版校对 | 李萍萍

嘉宾简介
杜东,上海交通大学助理研究员。中国计算机学会 CCF 会员,ACM 会员。钻研趣味为操作系统与体系结构、服务器无感知(Serverless)计算、系统安全。在包含 ASPLOS、ISCA、OSDI、SOSP、ACM SoCC、TOCS 等国内驰名会议和期刊发表 / 录用多篇学术论文。

内容起源
第一届凋谢原子开源基金会 OpenHarmony 技术峰会——平安及秘密计算分论坛

视频回顾
视频链接:
https://www.bilibili.com/video/BV14k4y1p7UZ/?spm_id_from=333.999.0.0

正 文 内 容

OpenHarmony 赋能万物互联,存在笼罩从端到云的平安能力需要。蓬莱 -OpenHarmony 是一个开源秘密计算平台,提供了面向 OpenHarmony 的可信执行环境,赋能 OpenHarmony 平安能力。那么,蓬莱 -OpenHarmony 次要做了哪些平安加强方面的工作,有哪些关键技术呢?上海交通大学助理研究员、中国计算机学会 CCF 会员、ACM 会员杜东在第一届 OpenHarmony 技术峰会上给大家带来了几点分享。

01►万物互联计算的平安挑战
当进入到万物互联的新场景后,存在哪些平安危险和挑战,又有哪些解决方案呢?

依附软件自身提供系统安全能力是一种计划。然而,依赖形式化验证、类型平安语言等技术目前来增强系统安全,目前看来是较为艰难的。在万物互联的场景中,开发者的背景和能力多样性倍增,各自所依附开发软件自身解决平安危险的能力不尽相同。就算可能实现,也可能须要更多的辅助工具来配合开发者实现。

通过软硬件配合,依赖于硬件提供的平安个性来加固零碎,为其提供可信执行环境(TEE)是另一种可行的系统安全加固计划。可信执行环境可能无效加强边缘设施的平安能力,例如内存隔离、I/O 隔离等。依赖该计划进行平安加固的代表零碎有 Intel SGX、ARM TrustZone 和 RISC-V 蓬莱或 Keystone 等。目前,曾经公布了多个平安个性扩大和欠缺的可执行环境计划,为什么还要定制化设计一个蓬莱 -OpenHarmony 呢?因为 OpenHarmony 所面临的万物互联场景是有不一样的挑战和危险,次要有以下 3 个方面:

第一,万物互联会导致须要面临简单的硬件环境。在异构的硬件环境下,通过一套零碎把 OpenHarmony 的平安个性和需要撑持起来,是非常复杂的一件事。例如,端侧可能存在十分小型的低配设施,没有页表和内存隔离,然而 TEE 很难跑在这种配置下;又例如,在较高配的手机场景,怎么可能让小型的、没有很多根底平安能力的环境和有平安能力的环境进行协同,也是一个较大的挑战。

第二,软件栈存在差别。面向云场景,软件次要基于 Linux 内核和虚拟机监控器等,必要时可引入如平安 OS 等组件;而面向边缘及 IoT,软件栈较为简单,可能基于 RTOS(如 OpenHarmony 小型内核)等构建整个软件栈。因而,如何使得二者进行协同,是软件异构所带来的问题。

第三,操作系统国产化问题。例如 OpenHarmony 目前在系统安全方面曾经有所成绩,如何保障它的平安能力自主可控呢?这也是须要思考的一个危险和挑战。

蓬莱 -OpenHarmony 可能无效解决上述问题,下图是蓬莱 -OpenHarmony 的 logo。探讨一个乏味的话题:为什么新的零碎命名为蓬莱?蓬莱是中国现代神话外面的一座仙岛,其被一片彩色的冥河所突围。咱们心愿提供一个可信执行环境,它是和外界隔离的,外面的货色不能进去,里面的货色也不能进去。一方面可能保障外部秘密数据的平安,另一方面也可能防止外部不平安因素因其非凡的位置而对外部造成侵害。

02►蓬莱 -OpenHarmony
在蓬莱 -OpenHarmony 的我的项目中,开发了蓬莱可信执行环境并提供了通用的解决方案。目前次要做的四项工作有:(1)提出面向 OpenHarmony 的通用 TEE 架构和接口,明确架构和接口的定义,保障后续所有的 TEE 都可能满足某一个形象或某一个外围接口而被纳入 OpenHarmony 体系中;(2)基于 RISC-V v1.10 的指令集,开发了蓬莱平安硬件扩大;(3)开发固件层(M-mode) Monitor 和 TEE SDK 的软件层;(4)提供含 MMU 平台和无 MMU 平台的两套零碎反对。

2.1►►RISC-V 生态
在 RISC-V 生态中,开发者能够本身需要定制化设计硬件而无需放心版权危险,如果硬件的个性足够好,还能够将其合入到 RISC-V 的官网指令集中。截至 2022 年,RISC-V 处理器出货量达到 100 亿,Semico Research 预测到 2025 年,RISC-V 处理器出货量将达到 800 亿,构建了弱小的影响力和生态。

RISC-V 设施的急剧减少,逐步形成了万物互联的端边场景,RISC-V 的 CEO Calista Redmond 预测,到 2030 年将有 500 亿联网和物联网设施须要平安和定制处理器加持,须要有足够多的平安个性以保障身边的设施可能满足计算和处理器的需要。

2.2►►面向 OpenHarmony 的通用 TEE 架构和接口
面向 OpenHarmony 的通用 TEE 架构和接口以后还处于草案的状态。如下图所示,架构自身和 RISC-V 无关,并未波及到具体的架构和个性。咱们认为,将来 OpenHarmony 的通用 TEE 架构和接口可能蕴含 4 层:最底层是所须要的硬件个性,其下层为平安固件;可信执行环境操作系统在平安固件的下层;最上层即用户应用层。

2.3►►蓬莱 -OpenHarmony:RISC-V 指令集下的 TEE 零碎架构
蓬莱 -OpenHarmony 的整体架构如下图所示。蓬莱 -OpenHarmony 基于上述定义的 OpenHarmony TEE 参考架构;在硬件上进行了翻新,面向万物互联异构的场景,提出了细粒度的轻量隔离,其平安个性是可配置和可选的;在软件上也进行了翻新,面向多元隔离的需要,反对平安 OS 和轻量平安利用;此外,蓬莱 -OpenHarmony 也反对 OpenHarmony 规范、小型、轻量等配置。

2.4►►硬件异构应答案例
在硬件异构的场景中,如何实现内存隔离呢?RISC-V 将整个软硬件分为硬件层、机器态、特权态以及用户态共 4 层。其中,硬件层 RISC-V 反对不同的个性及扩大;机器态即固件层,领有比特权态更高的权限,通常负责加载操作系统或者实现平安个性;特权态运行操作系统内核,反对 MMU 和 no-MMU 平台;用户态则运行各类应用程序。可信执行环境的根底能力,要求内核和利用之间要内存隔离,云边场景能够通过内存治理模块 (MMU)/ 页表实现,但 IoT 和边缘 RISC-V 设施可能没有 MMU,内核和利用之间不足隔离性。

怎么解决呢?如下图所示为一个长期解决方案,行将内核运行在机器态,机器态中有一套硬件机制 PMP,能够通过 PMP 管制来隔离内核和用户态。例如,Linux 在没有 MMU 的时候,通过 RISC-V 机器态的 PMP 隔离机制实现粗粒度隔离。但随之而来呈现一个问题,机器态固件和操作系统之间会存在机器态争抢,其问题基本是边缘设施硬件状况不同所导致,对于小型硬件常常存在这样的问题和危险。

在蓬莱 -OpenHarmony 中,提出了新的 RISC-V 硬件扩大:sPMP。sPMP 是轻量级的内存隔离机制,存在硬件资源开销低、访存性能好的劣势。有 sPMP 和没有 sPMP 的区别在什么中央呢?当没有 sPMP 时,机器态是有内存隔离的,然而用户态和 OS 态之间没有任何隔离,很难在下面运行多个 APP;有 sPMP 后,操作系统依赖 sPMP 寄存器就能够实现隔离,补齐了机制缺点。

2.5►►软件异构应答计划
在软件异构场景中,隔离域依赖于平安硬件的物理内存隔离机制,如 RISC-V 段隔离机制。其问题是隔离域与硬件强相干,比方 PMP,最终的总体隔离数量与 PMP 个数是呈正相干。段隔离机制自身是无限的 (不超过 16 个),4 组 PMP 寄存器当初最多只能划分出 4 个域,如图所示。

那么可信执行环境如何提供可扩大的隔离域呢?在云场景中,能够利用软件隔离出更多隔离域,但在边端因为内存资源有余并不实用。针对此问题,蓬莱 -OpenHarmony 提供了滑动窗口的隔离域设计,使一组 PMP (逻辑上) 爱护多个隔离域,在上下文切换时滑动理论的爱护范畴。如图所示,当隔离域 -1 被执行时,PMP-2 可能将隔离域膨胀至隔离域 -1 的范畴;反之,当隔离域 -2 被执行时,PMP-2 也可能将隔离域膨胀至隔离域 -2 的范畴。如此一来,可能保障每一个隔离域执行时,其内存保护的范畴是精确的。

03►总结
总的来说,蓬莱 -OpenHarmony 我的项目为 OpenHarmony 在 RISC-V 架构下提供了平安基石,反对 OpenHarmony 面向万物互联的多场景平安需要。欢送大家继续关注蓬莱 -OpenHarmony 我的项目,咱们也期待更多的开发者可能退出其中,独特赋能 OpenHarmony 的平安底座。

正文完
 0