我们是否可以在sgx enclave中编写代码来执行Linux命令,如下所示:
cryptsetup
ln我想在sgx enclave中添加一些加密代码。如何在enclave内部进行文件IO。
发布于 2017-02-07 17:12:49
是的,但可能涉及到大量的迁移工作。
在enclave内执行的代码不允许执行某些指令。最重要的是,不允许syscall指令,这意味着您不能直接使用操作系统的服务。如果您使用Intel's SGX SDK将cryptsetup或ln的代码移动到enclave中,程序将在请求OS服务(例如打开文件)时立即终止,并使用SIGILL指示非法指令(假设它将在此处编译)。
要使代码与英特尔的软件开发工具包一起工作,您可以使用所谓的OCALLs来退出enclave并请求外部的操作系统服务。
Intel's SGX website上列出的一些研究工作(Graphene、SCONE、Haven)通过通用的系统调用转发机制消除了迁移负担。它们捕获enclave内部的系统调用,将它们转移到外部并执行它们。
发布于 2017-02-07 17:31:04
不允许在enclave内运行任何Linux命令。尽管我们在enclave内部实现了自己的加密设置,但有一些来自加密设置源的操作系统调用,所以在这种特殊情况下使用sgx是没有用的。
请找到上述问题的完整答案On intel SGX forum
https://stackoverflow.com/questions/41975845
复制相似问题