关键词:
操作系统
可信执行环境
RISC-V
摘要:
面向万物互联、智联计算的边端场景,如何在小型端侧设备上保护用户隐私,隔离关键代码和数据,成为一个亟待突破的重要问题.现有系统通常依赖于可信执行环境,通过基于处理器的硬件扩展,保护安全敏感应用的机密性和完整性.然而,现有端侧可信执行环境系统主要面向静态、固定的安全场景,难以满足万物互联所带来的动态复杂的安全要求.具体来说,包含四个关键挑战.首先,动态复杂的安全需求会在可信执行环境中带来不可忽视的"资源税",导致其难以部署在小型端侧设备中.其次,在内存安全方面,现有端侧设备往往只提供简单的段隔离机制(如ARM MPU和RISC-V PMP),难以支持多层多域的复杂隔离需求.再次,在I/O安全方面,现有系统通过静态划分或主机代理的方式,前者难以适应动态变化的安全应用场景,后者存在严重性能开销和安全隐患.最后,在可扩展性方面,端侧设备依赖的段隔离机制能够降低硬件资源开销,但是仅能支持十分有限的隔离域,无法满足万物互联场景下较多的隔离域需求.为了系统性地突破并解决上述挑战,本文提出SegTEE,一个面向万物互联小型端侧设备的可信执行环境系统.和传统可信执行环境方案相比,SegTEE围绕段隔离机制设计了全系统的隔离和保护,支持同特权态隔离域间隔离和跨特权态的段隔离.具体来说,SegTEE首先提出嵌套段隔离机制,在硬件层面支持TEE-Seg段保护机制和OS-Seg段保护机制,其中TEE-Seg能够实现隔离域间隔离,而OS-Seg则提供用户态和特权态操作系统间的隔离性保障.基于TEE-Seg和OS-Seg的嵌套段隔离机制,SegTEE引入了段滑动窗口设计,能够在有限数量(例如16个)的段寄存器基础上,实现上百个隔离域,有效支撑万物互联的复杂场景.SegTEE还引入了基于段的内存裁剪机制,有效降低资源税,并且设计了基于段隔离的I/O动态保护方案.实验结果显示,SegTEE能够基于本文提出的设计,相比前沿RISC-V可信执行环境(蓬莱-PMP),隔离域数量提升了 14倍,降低了 54%的内存资源占用,并且可以在运行时达到相当的性能表现.