蓬莱Enclave:RISC-V芯片与系统安全方案

软硬件协同隔离的可拓展TEE系统

蓬莱Enclave:RISC-V芯片与系统安全方案

T6 Architecture

"蓬莱"是一个基于RISC-V的可扩展TEE系统。和现有系统不同,蓬莱扩展了现有RISC-V硬件原语,通过软硬件协同的方式来支持隔离环境的可扩展性。为了实现软件可信基的通用性,蓬莱架构在安全监控器(Secure monitor)和具体的硬件原语间,设计了一层“安全原语”接口。可信环境实例的管理逻辑将实现在这层通用的接口上,而不需要关心具体的硬件隔离和保护机制。 具体来说,当前的蓬莱系统实现基于一个新的RISC-V指令集扩展:特权级物理内存保护机制(s-mode Physical Memory Protection,即sPMP) ,允许在TEE OS中或者Secure monitor中实现可扩展的物理内存隔离。除了sPMP硬件扩展,蓬莱同时支持通过现有的物理内存隔离机制PMP(Physical Memory Protection)进行Enclave保护。

四个目标

可控性

软硬件全栈可定义

可配性

TEE保护粒度可配置

高效性

软硬件协同优化

安全性

形式化验证

我们提供四个基础安全能力

内存隔离

使用 sPMP + PMP 确保Enclave间的内存隔离, 每个安全应用仅可以访问预分配给自己的内存

中断隔离

不同的中断控制器提供了不同粒度的中断配置能力,蓬莱针对不同的中断控制器采用不同的中断隔离机制,保证中断只对指定的Enclave App可见

可信存储

安全存储的逻辑在专门的Service Enclave中执行。 Enclave App通过IPC的方式调用该Storage Service Enclave。根据场景不同,调用者可以使用 Global Platform 或者 PSA 风格的API。 可信存储提供对数据的隐私性以及完整性保护,同时可在一定程度上抵御重放攻击

安全外设使用

通过配置PMP/sPMP限制 RISC-V Core发起的请求,通过IOPMP限制设备发起的DMA请求 ,在芯片设计阶段,每一个外设将被分配一个master id, 在IOPMP中配置master id对指定范围内存的访问能力

应用场景

安全通信

安全通讯

TEE NSSDK/TEE_TA SDK: 提供安全应用(Enclave)与非安全应用的交互,安全应用间的交互等相关开发包

支持主流的加解密、签名验签以及哈希算法(包含国密SM2/SM3/SM4)

TEE安全增强的SSL/TLS协议

支持 PSA, GP 两种风格的API

安全启动与远程鉴权

安全启动与远程鉴权

安全,与您共同创建

2019年12月31日,IPADS和瓶钵信息科技宣布正式开源“蓬莱”:RISC-V平台的可信执行环境。如果您有疑虑、想法、代码或任何其他问题,请随时联系我们或提交你的方案, 我们欢迎每一个开发者与我们共同探索安全世界。以下是具体的开源信息: