2016-08-18 54 views
1

我收集到SGX飞地在第3环运行。我想在SGX飞域内运行一个程序,它将要访问内核数据结构和文件。有什么办法可以做到这一点?英特尔SGX飞地可以在ring 0运行吗?

换句话说,我们可以用root权限使用sudo来运行SGX enclaves吗?

+0

根与ring0不同。用户空间根进程只能通过'/ dev/mem'和类似的东西访问内核内存,并且不能运行特权指令。 –

回答

1

SGX Enclaves目前仅允许执行Ring 3代码。 英特尔SGX飞地只运行在环3,没有内核模式。英特尔SGX目标是确保环3本身的应用安全。

+0

谢谢你的回答。 –

0

希望通过OCALL访问内核数据结构的方式。 您可以在区域内调用OCALL,并让不受信任的代码/主机应用程序调用某些系统调用函数来获取所需的数据。

+0

谢谢你的建议。你能否详细说明OCALL是什么? –

+0

@cout_display_name 这是使用SGX的基本概念。 OCALL是当飞地内的一个应用程序调用函数离开飞地时,并且可能返回一些信息。 ECALL是在飞地之外的主机应用程序调用飞地。 您可能需要阅读英特尔SGX手册,以便您更好地了解它们是什么以及如何使用它。 https://download.01.org/intel-sgx/linux-1.5/docs/Intel_SGX_SDK_Developer_Reference_Linux_1.5_Open_Source_Beta.pdf –