本文针对可信执行环境(TEE)与低层语言(如 LLVM IR)结合时面临的安全分区问题展开研究。TEE 通过 enclave 提供硬件级隔离,但仅依靠它无法保证信息流安全;LLVM 这类语言允许不受限制的指针操作和非结构化控制流,进一步加剧了信息泄漏风险。同时,手工将应用划分成 enclave 部件与非 enclave 部件既繁琐又易错,且缺乏细粒度控制。作者提出一种三步走方案:首先形式化基于 LLVM IR 的 enclave 无关演算 SIR,设计新型宽松类型系统,结合信息流控制与安全感知的粗粒度内存安全,以抵御低级攻击者;然后将 SIR 扩展为 enclave 感知演算 SIREN,其非干涉性保证能抵御可观察任意非 enclave 内存的更强攻击者;最后实现类型驱动、类型保持的 SIR 到 SIREN 编译,自动生成安全的 enclave 感知程序,消除了手工分区过程,同时保持对 host-enclave 边界的细粒度控制。文中实现了 SPLITR 工具,并在 Intel SGX 硬件上用 13 个微基准和现实负载(包括 SGXGauge 应用)进行评测;SPLITR 能扩展到 OpenSSL(425,953 条 LLVM IR 指令),支持在 enclave TCB 大小、host-enclave 转换次数、边界数据移动量等目标之间权衡。对于 OpenSSL,面向转换次数优化可将其从 393 降为 187。运行时开销方面,短时运行负载主要被固定的 enclave 开销主导,而长时运行应用能更好地摊销这些开销,接近原生性能。该研究的最重要贡献是首次为 LLVM 系语言提供安全构造的自动分区形式化框架,并为编译优化、硬件隔离结合信息流控制提供了可行的工程验证。
💡 推荐理由: 该研究解决了 TEE 应用手工划分困难、易出错且缺乏信息流保障的痛点,为在依赖指针的底层语言上自动生成安全 enclave 分区提供了理论与工具基础,适合编译器、系统安全与可信执行环境开发者关注。
🎯 建议动作: 研究跟进