BruceFan's Blog

Stay hungry, stay foolish

0%

Occlum入门

Occlum入门

Occlum是一款蚂蚁集团开源的LibOS,目的是为了降低SGX应用开发门槛。传统的SGX开发存在一定的开发困境:
1.需要将应用程序分为两部分,可信部分和不可信部分。
2.可以使用的编程语言受限制。
3.功能受限制,Enclave无法访问不可信OS,是不可信环境的一个很小的功能子集。
Occlum解决了上述问题,实现了类似docker的命令,使得正常开发的程序可以在SGX可信环境中运行。

安装配置

1.首先需要安装好SGX环境(驱动、SDK)
2.运行Occlum Docker容器

1
$ docker run -it --device /dev/isgx occlum/occlum:latest-ubuntu20.04

3.下载编译Occlum

1
2
3
4
5
$ git clone https://github.com/occlum/occlum.git
$ cd occlum
$ make submodule
$ make
$ make test

在不支持SGX的机器上编译

1
2
$ SGX_MODE=SIM make
$ SGX_MODE=SIM make test

安装

1
$ make install

使用

1.用Occlum工具链编译用户程序

1
2
3
$ occlum-gcc -o hello_world hello_world.c
$ ./hello_world
Hello World

2.初始化一个目录作为Occlum实例

1
$ occlum new occlum_instance

3.产生一个安全Occlum FS镜像和Occlum SGX enclave

1
2
$ cp ../hello_world image/bin/
$ occlum build

不支持SGX的平台

1
$ SGX_MODE=SIM occlum build

4.在SGX enclave里运行用户程序

1
2
$ occlum run /bin/hello_world
Hello World!

参考
人人都可以“机密计算”:Occlum 使用入门和技术揭秘