近日,软件工程领域的全球旗舰级会议-软件工程大会 ICSE 在澳大利亚墨尔本市召开,龙蜥社区云原生机密计算 SIG 核心成员(阿里云JVM 团队)在 Java 机密计算方面的研究成果入选了 ICSE2023,并且以该会议今年唯一的 All Fives(审稿全满分)成绩荣获 ACM SIGSOFT 杰出论文奖。“安全可信”是龙蜥社区的八大技术方向之一 ,为保障用户 Java 程序的安全性,龙蜥社区云原生机密计算 SIG 重投 Java 机密计算,此次获奖是对龙蜥机密计算创新成果的肯定,也为龙蜥将此技术创新上升为用户方案奠定了基础。
IEEE/ACM ICSE 全称 International Conference on Software Engineering,致力于为软件工程领域的研究者、教育者和从业者们提供最新最重要的研究成果、经验及方向,是软件工程领域排名第一的学术会议。ACM SIGSOFT 杰出论文奖为 ICSE 会议最重要的论文奖项。本年度 ICSE 国际会议接收的 207 篇高水平论文中,获得杰出论文奖的论文共计 10 篇。
龙蜥社区云原生机密计算 SIG 联合上海交通大学计算机系陈雨亭副教授研究团队合作研发了 Java 机密计算的框架 Teaclave Java TEE SDK,发表题目为“Lejacon: A Lightweight and Efficient Approach to Java Confidential Computing on SGX”(Lejacon:一种适用于 SGX 的轻量高效 Java 机密计算方法)的论文,提出了一种涵盖开发模型、编译工具链和运行时机密计算生命周期管理的 Java 机密计算框架,该框架基于开发者的轻量标注实现自动代码分区,利用 Java 静态编译技术部署机密任务于 SGX 安全飞地中,提升机密任务执行效率的同时保持了较小体积的可信计算基,提高了安全性。
研究背景
计算的安全性是由存储时安全、传输时安全和运行时安全三大支柱构成的,机密计算就是针对运行时安全的技术。伴随越来越多企业部署云服务来加速推进数字化转型,云应用的安全性也变得愈发重要。机密计算作为云安全领域的关键技术,通过构建基于硬件的可信执行环境,保障应用数据在运行时的机密性与完整性。在 Intel 机密计算模型 SGX 中,应用程序根据安全性需求被划分为受信任与不受信任两部分。SGX 通过构建加密保护的飞地(Enclave)执行受信任代码,以保障该部分代码与数据的安全。Intel SGX SDK 也是龙蜥社区云原生机密计算 SIG 的核心项目之一。
现有大量云应用由 Java 语言编写,在 Java 工作流上应用 SGX 技术存在需求。然而,SGX 技术本身并不对 Java 友好:一方面,SGX 的安全飞地仅支持通过 C/C++ API 创建并管理,Java 应用无法直接对其调用进而安全地执行敏感代码。另一方面,Java 程序的执行依赖 Java 虚拟机(JVM)提供的托管运行时环境。这种模式使得运行在飞地中的代码(包含应用本身与 JVM)过于庞大,违背了机密计算对较小 TCB 的要求,降低了安全性。
创新成果
该研究提出了 Java 机密计算框架 Lejacon。该框架创新地采用了适用于 SGX 计算模型的 Java 分离编译技术,并提供了跨执行环境的运行时支持,兼顾非安全性敏感代码的平台无关性同时将 SGX 适配于 Java 工作流。
方法概述
(图 / Lejacon工作流概述)
Lejacon 支持开发者根据需求对机密代码进行类级别的标注。以标注代码为起点,该框架提出并基于安全封闭世界假设,利用指向分析技术对机密代码的可达性范围进行分析;随后,对所有可达代码进行静态编译,实现代码分区,得到可部署并运行于安全飞地中的本地机密计算服务(native confidential computing service)。运行时阶段,Lejacon 采用代理的模式管理不同运行环境的上下文信息,定位每一次机密调用所对应的飞地中的具体函数,利用 Java 本地接口(JNI)实现机密函数调用。
通过 Lejacon 构建的 Java 机密应用,其机密代码执行效率较传统方法,最高可得 16.2 倍提升,并可平均减少超过 90% 的 TCB 大小,极大提升了机密应用的安全性。
目前该项目已经贡献到正在孵化中的Apache Teaclave(https://teaclave.apache.org)项目开源,并且在生产环境中使用,后续也会贡献在龙蜥社区。
龙蜥社区云原生机密计算 SIG 主页:https://openanolis.cn/sig/coco
—— 完 ——