gpt4 book ai didi

security - 在客户端-服务器架构中使用英特尔 SGX 远程认证

转载 作者:行者123 更新时间:2023-12-04 12:24:42 28 4
gpt4 key购买 nike

假设以下场景:我们想要实现一个开源密码管理器,它使用一个中央服务,使不同的客户端(在不同的设备上)能够同步他们的本地数据库。这个服务是在公司运行还是在用户的服务器上都没有关系(对比owncloud的使用场景)。为了使我们的应用程序更加“安全”,我们希望使用英特尔 SGX 飞地作为中央服务(请忽略当前对 SGX 飞地的攻击研究)。

然后,典型的工作流程是:

  1. 本地客户证明中央飞地
  2. 用户注册/登录
  3. (本地和远程数据库同步)
  4. 用户存储/检索密码

现在我的问题是:我们密码管理器的每个用户都需要注册英特尔认证服务 (IAS) 吗?如果是,这是否意味着,由于私钥共享真的很糟糕,所以每个设备都需要注册?

根据我的调查,至少在开发和测试阶段,答案是肯定的。我找不到任何关于生产场景的公开信息。我所知道的是,商业注册会改变 enclave 的行为(它可以在生产模式下运行),这在这里无关紧要。我有两个想法:

  1. 如果我是对的,这不是 SGX 的又一个障碍吗?使用没有证明功能的 SGX 似乎没有用。
  2. https://www.fortanix.com/等服务怎么样?规避或解决问题?他们的文档没有提示需要与英特尔进行交互。

上述场景只是一个例子;它可以改进,我们不打算实现它。但与描述我们当前的项目计划相比,描述一个容易想象并且似乎是 SGX 的现实用例的场景要容易得多。

P.S.:这个问题有点连续到Intel SGX developer licensing and open-source software

最佳答案

创建报价不需要英特尔注册证书,但需要与 IAS(英特尔认证服务)通信以验证报价,这需要英特尔注册证书。因此,每个检查远程证明是否有效的节点都需要以天真的方法提供这样的证书。

当然可以利用 SGX 提供代理,其结构有点像这样:

  1. 生成两个证书及其对应的私钥,我将其中一个命名为 IAS-conn-cert,另一个命名为 Proxy-cert。
  2. 将它们的 IAS-conn-cert 注册到 IAS。

当然,您需要相信这些证书确实是在 enclave 中生成的。为此,您可以远程证明您信任的另一个服务提供商。现在将代理证书固定(例如通过硬编码)在您的客户端应用程序中。当它需要验证报价时,它使用固定的代理证书连接到 enclave,从而知道它连接到 enclave。飞地然后将连接到 IAS 并将它从客户端接收到的所有内容中继到 IAS,反之亦然。客户端现在无需拥有 IAS 注册证书即可与 IAS 通信,但仍然可以确保代理中没有篡改,因为它相信代理证书确实是在非恶意飞地中生成的。

关于security - 在客户端-服务器架构中使用英特尔 SGX 远程认证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54403930/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com