我有一个情况:
我有一个场景,我必须连接到一个web服务器,并且我需要保证响应数据的安全:我连接到一个将返回信用卡数据的REST API。我在受信任的代码中对密钥进行签名,在不受信任的部分使用签名via和OCALL发送HTTP请求。应用程序在不受信任部分接收HTTP响应,并通过ECALL立即发送到受信任部分。然而,从我的角度来看,我在应用程序中有一个安全漏洞:用户信用数据应该在不受信任的部分接收。
根据我的研究,也因为这里的一些帖子,我认为没有办法从enclave进行HTTP调用。@JesusG_Intel在https://community.intel.com/t5/Intel-Software-Guard-Extensions/Rest-API-or-HTTP-API-call-from-inside...上写道
无法从enclave内部直接调用外部世界。您必须创建从enclave到应用程序的调用,然后应用程序才能代表enclave发出REST API或HTTP请求。
我是sgx技术的新手,我知道这是否是真正的安全漏洞。我认为英特尔不会允许这种安全风险。我错过了什么?您能指导我如何使用sgx技术发出安全的HTTP请求吗?
谢谢
发布于 2021-02-17 11:18:59
拥有可信执行环境(例如,在您的案例中为SGX )的全部意义在于,在enclave外部对数据进行加密,而仅在enclave内部解密数据。
我不知道您到底想要实现什么,如果我正确理解了您的要求,那么REST API将以明文形式将信用卡(CC)信息发送到您的应用程序。如果是,那么REST API应该首先加密CC信息,将其发送到您的应用程序(不可信任部分),不可信任部分将加密的数据编组到您的可信任部分( enclave ),然后enclave在enclave内部解密CC信息。
发布于 2021-05-25 03:29:09
我可能会晚一点,但我认为这个问题应该有更多细节。
使用Imte;SGX创建T形三通时,您的应用程序分为两个部分:
不受信任的部分,又称应用本身
后者是最安全的。由于其有限的资源(128/256Mb的RAM),它应该保留给需要大量安全性的进程:加密、匿名化等。
更清楚的是: enclave不是进行HTTP调用的地方。
例如,假设您的应用程序调用API,检索加密数据,然后对其进行解密。流程如下(T =可信= enclave,U=不可信=应用程序)
调用,检索数据
>F215
换句话说,enclave必须为流程的敏感部分预留,其余部分留给应用程序中不受信任的部分。
https://stackoverflow.com/questions/66210468
复制相似问题