1

我是英特尔 SGX 和 Docker 的新手。我正在尝试确定是否可以将“敏感”程序和数据放在 Docker 容器中,并将该容器作为 SGX 硬件中的受信任(飞地)组件运行。我计划使用 SGX 平台的最新 Linux 版本。

我一直在阅读 SGX 开发人员指南、参考、编程参考等,但不确定如何使用 Enclave 定义语言之类的东西来调用容器作为受信任的组件。SCONE 项目有一种技术方法,但它似乎没有使用 Enclave 定义语言、ECALLS、OCALLS、英特尔的 SDK 和安全 C 库以及我在英特尔 SGX 文档中阅读的其他指南。此外,我之前发现的关于将 SGX 与 Docker 容器结合使用的问题也很复杂。

所以,答案是:

“不,您不能使用英特尔 SGX 开发指南将 Docker 容器作为受信任的 enclave 组件运行”

“是的,您可以使用英特尔 SGX 开发指南将 Docker 容器作为受信任的 enclave 组件运行,以下是操作方法......”

相关问题:SGX 似乎只运行 C/C++ 程序。因此,像 Python(不使用 Ctypes)或 Java(不使用 JNI)这样的语言不会作为受信任的组件运行,对吧?

此外,除了 SCONE 之外,还有什么是在 SGX 中将 Docker 容器作为可信组件运行的可行示例吗?我在 StackOverflow 上看到了一个包含指向 dockerfile 的链接的答案,但该链接已损坏。谢谢你的帮助!

4

2 回答 2

0

是的,您可以使用 iExec 将 Docker 容器作为受信任的 enclave 组件运行。您可以在这篇文章中了解更多信息。

于 2018-10-18T08:00:03.090 回答
0

https://gramine-gsc.readthedocs.io/en/latest/

docker run --device=/dev/sgx_enclave \
   -v /var/run/aesmd/aesm.socket:/var/run/aesmd/aesm.socket \
   gsc-python -c 'print("HelloWorld!")'
于 2021-10-11T02:01:46.723 回答