首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么SGX调用ioctl这么多次?

SGX(Software Guard Extensions)是英特尔提供的一种安全扩展技术,用于保护应用程序的关键代码和数据。在SGX的开发过程中,调用ioctl函数的次数较多,主要是为了实现以下功能:

  1. 初始化SGX环境:在使用SGX之前,需要通过ioctl函数初始化SGX驱动程序,包括加载驱动、建立与驱动的通信通道等。
  2. 创建和管理Enclave:Enclave是SGX中的安全执行环境,用于保护应用程序的关键代码和数据。通过ioctl函数,可以创建、加载、销毁和管理Enclave,包括分配内存、设置Enclave属性、建立与Enclave的通信通道等。
  3. 安全通信:SGX允许Enclave与外部环境进行安全通信,以实现与其他组件的交互。通过ioctl函数,可以建立安全通信通道,包括建立双向认证、加密数据传输等。
  4. 安全策略设置:SGX提供了一些安全策略,用于限制Enclave的行为和资源使用。通过ioctl函数,可以设置和修改这些安全策略,包括内存保护策略、访问控制策略等。
  5. 错误处理和状态查询:SGX的ioctl函数还用于处理错误情况和查询SGX的状态信息,包括错误码、驱动版本、硬件支持情况等。

总之,SGX调用ioctl函数的次数较多是因为它需要通过ioctl函数与SGX驱动程序进行交互,完成Enclave的创建、管理和安全通信等功能。这些功能的实现需要多次调用ioctl函数来完成相应的操作。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 英特尔CPU软件防护扩展中的新缺陷

    两个独立的学术研究团队在周三发表了描述英特尔软件卫士扩展(SGX)中缺陷的论文。 SGX是一组指令,它通过允许开发人员将敏感信息划分为安全区域(内存中的执行区域,借助硬件辅助的增强安全保护)来增强应用程序的安全性。 目的是保护应用程序代码和数据不被泄露或修改。 证明服务使用户可以在启动应用程序之前验证应用程序隔离区的身份。 研究团队表明,最近发现的缺陷可能会阻止新交所实现其目标。 SGAxe:SGX在实践中如何失败描述了长期存储的折衷方案。 CrossTalk:跨核心的推测性数据泄漏是真实的,它描述了跨内核攻击,该攻击可能使攻击者能够控制数据泄漏。密歇根大学的研究人员Stephan van Schaik、Andrew Kwong和Daniel Genkin以及阿德莱德大学的研究员Yuval Yarom写道:“SGAxe有效地打破了SGX最吸引人的特性,即在飞地上通过网络证明其可信赖性。”。研究人员攻击了由Intel提供并签名的SGX体系结构飞地,并检索了用于通过网络加密证明这些飞地是真实的秘密证明密钥,这使他们能够将假飞地冒充为真实飞地。串扰研究人员发现,一些指令从所有CPU核心共享的暂存缓冲区读取数据。他们提出了第一次使用瞬时执行的跨核攻击,并表明它可以用来攻击运行在完全不同的核心上的SGX飞地,让攻击者通过实际的性能下降攻击和发现enclave私钥来控制泄漏。“我们已经证明这是一次现实的攻击,”荷兰阿姆斯特丹维利大学的哈尼·拉加布、艾莉莎·米尔伯恩、赫伯特·博斯和克里斯蒂亚诺·朱夫里达(Cristiano Giuffrida)以及瑞士苏黎世以太银行的卡维·拉扎维(Kaveh Razavi)写道。他们补充道:“我们还发现,再次应用这些攻击来破坏在英特尔安全的SGX飞地中运行的代码几乎是微不足道的。”研究人员使用性能计数器构建了一个称为“串扰”的探查器,用于检查执行非核心请求的复杂微代码指令的数量和性质。当与瞬时执行漏洞(如微体系结构数据采样(MDS))结合时,这些操作可以揭示CPU的内部状态。研究人员写道:“即使是最近的英特尔CPU——包括公共云提供商用来支持SGX飞地的CPU——也容易受到这些攻击。”。

    00
    领券