我是英特尔 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 的链接的答案,但该链接已损坏。谢谢你的帮助!