使用英特尔 SGX,飞地是否可以使用虚拟地址直接访问外部 space?

With Intel SGX, can an enclave directly access outside space with a virtual address?

我看到了一些相反的意见。提前致谢!

一种观点认为,如果 CPU 处于飞地模式,则无法到达 none-EPC 页面。也就是说,enclave中的代码不能直接访问virtualspace.

外部

另一种意见是enclave可以看到这个进程的所有virtualspace

这里是a link

是的,飞地可以访问进程的完整地址space。否则,enclave 与非 enclave 之间的通信将无法进行。

又查了下Intel关于SGX的手册,也问了一些Intel的大佬。最后,我得到了答案。

enclave 内的代码可以在以前的系统策略下直接写入外部内存并直接读取外部内存。但是,它无法获取外部代码。