英特尔SGX机箱内的设备驱动程序?

时间:2017-12-12 11:19:33

标签: sgx

是否可以在英特尔SGX飞地内运行设备驱动程序?或者安全区是否无法访问DMA内存并执行内存映射I / O?

我已经有一个已映射所有必要内存的设备驱动程序,但我不知道是否可以创建一个共享这些映射的安全区。对于安卓是否只能 访问他们自己的私有内存,或者他们是否访问我将映射到它们的任意物理内存,我基本上感到困惑。

文档似乎说安全区无法在任意位置访问代码,但我想知道数据和MMIO的规则。

1 个答案:

答案 0 :(得分:1)

Enclaves是静态链接库,因此它们与加载的应用程序共享Process。多个飞地可以加载到一个过程中。

Enclave拥有一个或多个页面表,这些页面经过加密并受到外部访问保护。有关这方面的更好解释:https://software.intel.com/sites/default/files/332680-002.pdf,第28页。

飞地可以从他们运行的进程中访问内存,但是他们的内存只能由他们自己访问。 DMA访问尝试被拒绝/中止,无法映射到安全区的内存,但是,您可以映射到进程的内存并从安全区内访问它。

飞地是根据与外界隔离的概念,他们没有受保护文件系统库的I / O功能。所以,我认为在sgx 中运行驱动程序是不可能的。