认识RISC-V可信执行环境(TEE):Risc-V Keystone

196体育app官网-(2024官方)IOS安卓手机版APP  » 虚拟主机 »  认识RISC-V可信执行环境(TEE):Risc-V Keystone
0 Comments 下午4:50

  Keystone是一个开源框架,旨在构建自定义的可信执行环境(TEE)。

  它提供了一个高度可编程的受信任层,位于不可信操作系统之下,并使用RISC-V的基本组件来实现。

  Keystone的设计理念是,通过将隔离机制与资源管理、虚拟化和信任边界的决定解耦,为低成本用例定制铺平道路。

  与现有的TEE方案相比,Keystone更加灵活和可定制,它可以独立探索现有设计中的差距/权衡、快速原型化新功能要求、更短的修复周期、适应威胁模型和特定于用途的部署。

  Keystone的设计也考虑了安全性,利用硬件原语提供对TEE保证的内置支持,例如安全引导、内存隔离和认证。

  Keystone是一个开源框架,可以让你像搭积木一样构建自己的可信执行环境(TEE)。TEE是可以在不安全的计算机环境中保护你的代码和数据的地方。过去十年,TEE得到了快速发展,许多CPU供应商都推出了自己的TEE。

  但是每个供应商的TEE都有自己的限制,就像你不能随意改变积木的形状一样。当你选择一个云服务提供商或软件开发人员时,他们可能会被锁定在他们自己TEE的限制中,这可能不符合你的实际应用需求。

  Keystone就像一个新的积木盒,里面有各种可以构建TEE的组件。你可以根据自己的需求,选择使用哪些组件,构建出符合自己需求的TEE。这样你就可以更灵活地保护你的代码和数据,无论是在云服务器、移动电话、互联网服务提供商、物联网设备、传感器还是硬件令牌上。

  Keystone的设计也考虑了安全性。它有一个安全监视器(SM)和运行时(RT)组件。SM使用硬件原语提供安全保证,例如安全引导、内存隔离和认证。RT则在飞地内提供功能模块,例如系统调用接口、标准libc支持、虚拟内存管理和自分页。这样,任何飞地特定的功能都可以由RT干净地实现,而SM则强制保证硬件的安全性。

  总的来说,Keystone是一个更灵活、更安全的开源框架,可以让你构建自定义的TEE来保护你的代码和数据。

  可信硬件(Trusted Hardware) 是由可信供应商构建的 CPU 包,必须包含与 Keystone 兼容的标准 RISC-V 内核和信任根。硬件还可能包含可选功能,例如缓存分区、内存加密、密码安全的随机源等。安全监视器需要特定于平台的插件来支持可选功能。

  Security Monitor (SM) 是具有小型 TCB 的 M 模式软件。SM 提供了一个接口来管理 enclave 的生命周期以及利用平台特定的功能。SM 执行大部分 Keystone 的安全保证,因为它管理 enclave 和不受信任的操作系统之间的隔离边界。

  飞地(Enclave) 是与不受信任的操作系统和其他飞地隔离的环境。每个飞地都有一个私有物理内存区域,只能由飞地和 SM 访问。每个 enclave 由一个用户级 enclave 应用程序eapp和一个主管级运行时组成。

  运行时 是 S 模式软件,它实现了系统调用、陷阱处理、虚拟内存管理等功能。

  Keystone是一个基于RISC-V构建可定制的可信执行环境(TEEs)的开源项目,适用于各种平台和用例。

  我们的目标是构建一个安全可信的开源安全硬件飞地,可应用于各种应用和设备。

  Keystone是一个基于Risc-V的开源TEE框架,在任意Risc-V处理器中,只需对硬件进行非常小的修改即可满足Keystone平台框架的使用,下面就简单介绍一下使用Keystone需要Risc-V的CPU支持哪些特性。

  Keystone 需要所有三种权限模式 (M/S/U) 来支持 Linux 机器中的动态用户级隔离。这意味着 Keystone 可以支持三种不同的权限级别,即机器级(M)、系统级(S)和用户级(U)。这三种权限级别可以用于创建和管理不同类型的隔离和安全环境。

  Keystone 还支持两种不同的虚拟寻址模式,即 Sv39 和 Sv32。这些模式是 RISC-V 架构中的虚拟内存系统的一部分,用于在虚拟内存中管理代码和数据。Sv39 是 64 位模式,支持 32 位应用程序在 64 位系统中运行。而 Sv32 是 32 位模式,支持在 32 位系统中运行 32 位应用程序。

  权限级别定义了正在运行的软件在其执行期间可以做什么。各个权限级别的常用用法如下:

  •U-mode:用户进程•S-mode:内核(包括内核模块和设备驱动程序)、管理程序•M 模式:引导加载程序、固件

  M-mode 是最高特权模式,控制所有物理资源和中断。M 模式类似于 x86 等复杂指令集计算机 (CISC) ISA 中的微代码,因为它不可中断且不受较低模式的干扰。

  是的,M-mode 是最高特权模式,可以控制所有物理资源和中断。它类似于 x86 等复杂指令集计算机 (CISC) ISA 中的微代码,因为它不可中断且不受较低模式的干扰。在 RISC-V 架构中,M-mode 是一种特权模式,可以执行诸如内存管理、异常处理和系统调用等关键任务。它具有对所有物理资源的完全控制权,并且可以中断其他较低模式的操作。相比之下,S-mode 和 U-mode 分别具有系统级和用户级权限,并且必须通过特定的系统调用才能进入 M-mode。

  首先,RISC-V是一种开源的指令集架构(ISA),它提供了一种灵活的方式来定义和扩展指令集。RISC-V Priv 1.10标准引入了物理内存保护(PMP)功能,这是一个强大的原语,允许在M模式下从较低的权限(U-/S模式)来控制物理内存的访问。

  PMP通过一组控制和状态寄存器CSR)来实现。这些寄存器可以配置为允许或禁止对特定物理内存区域的访问。

  •在U模式下,只能访问那些由PMP配置为允许访问的物理内存区域。•在S模式下,可以访问所有未被禁止的物理内存区域。•然而,只有M模式下可以配置和更改PMP寄存器的状态。

  每个PMP条目可以由一个或多个PMP CSR定义。每个CSR都有一个特定的位模式,用于指示该CSR所控制的物理内存区域的大小和范围。

  例如,一个PMP条目可能由两个CSR定义,一个用于指示物理内存区域的起始地址,另一个用于指示大小。

  Keystone是一个用于构建自定义可信执行环境(TEE)的开源框架。它使用RISC-V作为其基本的指令集,并引入了安全监视器(SM)和运行时(RT)组件。Keystone需要PMP来实现enclave的内存隔离。

  在Keystone中,SM负责执行安全监视功。


发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注