添加传输证书引用¶
Launchpad 蓝图: https://blueprints.launchpad.net/barbican/+spec/add-transport-cert-ref
问题描述¶
传输密钥用于确保秘密被预先加密,只有客户端和后端存储才能解密该秘密。
这适用于不信任 Barbican,但信任后端密钥存储的用户。或者,如果客户端需要符合 FIPS 或通用标准 (CC) 要求,并且只能使用 CC 认证的组件,他们可能可以论证使用 Barbican,只要秘密在通过 Barbican 传输到最终存储后端时保持不透明即可。
目前,客户端从 Barbican 获取传输密钥。但如果客户端不信任 Barbican,这可能存在漏洞。我们需要添加客户端直接从后端存储检索传输密钥的能力。
提议的变更¶
这里的更改很简单。除了在 GET /transportkeys/{key_id} 调用结果中仅返回传输证书外,我们还将在标头中返回对传输密钥的引用 (TRANSPORT_KEY_URL)。此引用将由插件提供,应该是指向可信位置的链接,客户端可以在该位置检索传输证书。实际上,这很可能通过 HTTPS 连接到后端密钥存储。
从内部来看,这意味着 secret_store 接口中的 get_transport_key() 方法将被修改为返回一个包含传输密钥值和外部 URL 的字典。我们将使用此字典填充响应的内容和标头。
由于此方法已经具有 None 默认配置,因此此更改不应需要对现有插件进行任何更改。
备选方案¶
这是一个微不足道的更改,使传输密钥的故事更加完整。
数据模型影响¶
无。
REST API 影响¶
将添加一个新字段到响应标头中,用于 GET /transportkeys/{key_id},如上所述。
安全影响¶
使传输密钥更安全。
通知影响¶
无。
其他最终用户影响¶
客户端需要决定是接受 Barbican 返回的传输证书值,还是从提供的 URL 检索该值。
性能影响¶
无。
其他部署者影响¶
无。
开发人员影响¶
无。
实现¶
负责人¶
- 主要负责人
alee
工作项¶
服务器端更改可能在一个 CR 中完成。
客户端更改。
依赖项¶
无。
测试¶
需要编写单元和功能测试。
文档影响¶
需要编写和更新有关传输密钥使用的文档。
参考资料¶
无