文章 ID: 000058898 内容类型: 产品信息和文件 上次审核日期: 2021 年 07 月 19 日

从安全角度来看,嵌套的 ecalls 为什么是有害的?

BUILT IN - ARTICLE INTRO SECOND COMPONENT
总结

通过阻止在应用程序 (英特尔® Software Guard Extensions) 应用程序中调用英特尔® SGX,减少安全漏洞。

说明

找不到有关嵌套的 ecalls 为何会有害的文档。嵌套 的 ecall 是当 ecall 调用 ocall 而 ocall 调用 ecall 时。

解决方法

"英特尔® Software Guard Extensions(英特尔® SGX)开发人员指南"解释道:

您应该注意,当做 OCall 时,它为嵌套的 ECalls 打开了大门。在飞地之外,试图查找漏洞的攻击者可能会调用任何作为 ECall 公开的 ISV 接口功能,以递归地调用飞地。当需要 OCall 时,您可以减少表面攻击阻止 ISV 接口功能,这样不允许嵌套的 ECalls。例如,您可以在飞地内存储状态信息(与正在进行中的 OCall 相对应)。但是,飞地不能依赖于 OCall 期间按特定顺序出现的嵌套 ECalls。最初,允许嵌套的 ECalls(OCall 期间 ECalls)并受飞地内保留的堆栈量限制。但是,ISV 应意识到,此类建筑会使得飞地的安全分析更加复杂。当需要嵌套的 ECalls 时,飞地写入器应该尝试以不同的方式对应用程序进行分区。如果无法避免嵌套的 ECalls,飞地编写器应该将可以递归调用的 ISV 接口函数限制为仅严格要求的函数。

本页面上的内容是原始英文内容的人工翻译与计算机翻译的组合。我们提供此内容是为了您的便利并且仅供参考,未必完整或准确。如果本页面的英文版与翻译版之间存在任何冲突,应以英文版为准。 查看此页面的英语版本。