当Java遇上机密计算,又一段奇幻之旅开始了!

本文介绍了如何在阿里云神龙架构第七代ECS实例上,利用Intel SGX2技术为Java业务提供机密计算保护。通过一个SpringBoot应用的示例,展示了在SGX环境中运行Java服务的过程,探讨了机密计算的编程模型和性能评估。
摘要由CSDN通过智能技术生成

简介: 汪少军:如何为Java业务提供机密计算保护?

头图.png

写在前面

在信息世界里,数据存在三种状态: 存储态、传输态和计算态。存储在数据库或磁盘中的数据属于存储状态,在网络中传输的数据属于传输状态,正在被计算处理的数据属于计算状态。我们需要从数据三种状态出发进行系统的安全保护,才能确保真正的数据安全。对于存储态和传输态数据安全问题,我们可以利用被广泛使用的数据加密技术进行有效保护。对于计算态的数据安全保护仍旧属于新的前沿领域。

IMG_1924.png

基于硬件的机密计算技术(TEE),通过提供一个可信执行环境,在该环境下运行的代码和数据会得到硬件级的保护,任何软件包括内核和Hypervisor都无权限窥探该环境中的数据信息,从而实现对计算态数据的保护。

全球主流的芯片厂商都纷纷推出了各自的机密计算解决方案,比如Intel SGX和Arm TrustZone等。TrustZone主要用在终端领域,而SGX技术则可以应用于服务器领域。SGX技术能够提供极高的机密计算保护等级,但由于SGX技术在内存资源和编程模型上的限制,无法有效支撑Java生态的机密计算业务,不得不说是一个遗憾。随着阿里云神龙架构第七代ECS实例的发布,所搭载的Intel新一代SGX2技术,为我们构建基于Java生态的机密计算服务提供了条件。

Java机密计算Demo演示

现在,让我们通过一个具体的例子来演示如何为Java业务提供机密计算保护。该实例基于第三代神龙架构第七代ECS实例构建,在SGX2提供的机密计算可信执行环境内运行Java SpringBoot网络服务。

准备工作

  1. 申请一台支持SGX2的神龙架构第七代ECS实例,EPC内存规格不要过小24G;
  2. 下载LibOS: Occlum容器镜像
    occlum/occlum:0.20.0-ubuntu18.04;
  3. 下载JDK: Alibaba Dragonwell11(Alpine),Alibaba发布的基于Alpine平台Dragonwell11镜像版本;
  4. 下载SpringBoot源码: Demo,该Demo展示了一个基于SpringBoot框架构建的简单网络服务;

其中SpringBoot Demo源码下载到本地后,进入initial目录后进行编译打包,在target目录下会生成spring-boot-0.0.1-SNAPSHOT.jar,我们先在普通环境下运行jar包验证其功能:

mvn clean package

java -jar spring-boot-0.0.1-SNAPSHOT.jar

构建SGX执行环境

  1. 首先登录到ECS实例;
  2. 在ECS环境下,通过docker命令进入Occlum容器;
docker run -it --rm --privileged --network host \
        -v `pwd`:`pwd` \
    -v /dev/sgx_enclave:/dev/sgx/enclave \
    -v /dev/sgx_provision:/dev/sgx/provision \
    -v /var/run/aesmd:/var/run/aesmd \
    occlum/occlum:0.20.0-ubuntu18.04
  1. 在Occlum容器中,创建一个enclave实体。该实例包含一个json配置文件和image镜像文件夹;
mkdir occlum_i
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值