假设以下场景:我们想要实现一个开源密码管理器,它使用一个中央服务,使不同的客户端(在不同的设备上)能够同步他们的本地数据库。该服务是由公司运行还是在用户的服务器上运行都没有关系(与 owncloud 使用场景相比)。为了使我们的应用程序更加“安全”,我们希望将英特尔 SGX 飞地用于中央服务(请忽略当前对 SGX 飞地的攻击研究)。
然后,典型的工作流程是:
- 本地客户证明中央飞地
- 用户注册/登录
- (本地和远程数据库同步)
- 用户存储/检索密码
现在我的问题是:我们密码管理器的每个用户都需要注册英特尔认证服务 (IAS) 吗?如果是,这是否意味着,由于私钥共享非常糟糕,每台设备都需要注册?
根据我的调查,至少在开发和测试阶段,答案是肯定的。我找不到任何生产场景的公开信息。我所知道的是,商业注册会改变飞地的行为(它可以在生产模式下运行),这在这里无关紧要。对此我有两个想法:
- 如果我是对的,这难道不是新交所的另一个表演障碍吗?在没有证明功能的情况下使用 SGX 似乎毫无用处。
- https://www.fortanix.com/等服务如何规避或解决问题?他们的文档没有提示与英特尔进行必要的交互。
上述场景只是一个例子;它可以改进,我们不打算实施它。但是,描述一个场景比描述我们当前的项目计划要容易得多,这很容易想象,并且似乎是 SGX 的一个现实用例。
PS:这个问题是英特尔 SGX 开发人员许可和开源软件的连续问题