我们可以在sgx-enclave中运行Linux命令吗?

时间:2017-02-01 09:11:35

标签: linux sgx

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

cryptsetup
ln

我想在sgx enclave中添加一些加密代码。 如何在飞地内部做文件IO。

2 个答案:

答案 0 :(得分:2)

是的,但可能涉及很多迁移工作。

在封顶内执行的代码不允许执行某些指令。最重要的是,不允许使用系统调用指令,这意味着您无法直接使用操作系统的服务。 如果您使用Intel's SGX SDKcryptsetupln的代码移入安全区,程序将以SIGILL终止,并在请求OS服务时立即指示非法指令比如打开一个文件(假设这里会编译)。

要使代码与英特尔的SDK兼容,您可以使用所谓的OCALLs退出安全区并在外部请求操作系统服务。

Intel's SGX website上列出的一些研究工作(GrapheneSCONEHaven)通过通用系统调用转发机制消除了迁移负担。它们捕获飞地内部的系统调用,将它们传输到外部并执行它们。

答案 1 :(得分:0)

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

请找到上述问题的完整答案 On intel SGX forum