2

我们可以在 sgx enclave 中编写代码来执行 Linux 命令,如下所示:

cryptsetup
ln

我想在 sgx enclave 中添加一些加密代码。如何在 enclave 内进行文件 IO。

4

2 回答 2

2

是的,但可能涉及大量迁移工作。

不允许在 enclave 内执行的代码执行某些指令。最重要的是,不允许使用 syscall 指令,这意味着您无法直接使用操作系统的服务。如果您使用英特尔的 SGX SDK将代码移动cryptsetup或移入飞地,则程序将在请求操作系统服务(如打开文件)时立即ln终止并指示非法指令(假设此处可以编译)。SIGILL

要使代码与 Intel 的 SDK 一起工作,您可以使用所谓的OCALL退出 enclave 并在外部请求 OS 服务。

英特尔 SGX 网站上列出的一些研究工作 ( Graphene, SCONE, )通过通用系统调用转发机制减轻了迁移负担。它们在飞地内部捕获系统调用,将它们转移到外部并执行它们。Haven

于 2017-02-07T09:12:48.657 回答
0

不允许在 enclave 内运行任何 Linux 命令。即使我们在 enclave 中实现了自己的 cryptsetup,也有一些来自 cryptsetup 源的操作系统调用,因此在这种特殊情况下使用 sgx 是没有用的。

请在英特尔 SGX 论坛上找到上述问题的完整答案

于 2017-02-07T09:31:04.133 回答