创建用于使用 HP Atalla ESKM 的 Babrican 插件。

包含您的 Launchpad 蓝图的 URL

https://blueprints.launchpad.net/barbican/+spec/hp-eskm-plugin

这项工作将通过添加一个加密插件来增强 Barbican,以允许使用 HP 的 Atalla ESKM。Atalla ESKM 是一种用于生成和管理加密密钥的 HSM 设备。通过向 Barbican 添加一个可选插件,用户可以选择将 OpenStack 与现有的或新的 Atalla ESKM 安装集成。

问题描述

OpenStack 云的部署者可能已经拥有,或者希望拥有一个 Atalla ESKM 设备用于密钥管理。在这种情况下,期望能够将该设备与新的 OpenStack 安装一起使用,以提高安全性。

提议的变更

对 Barbican 提出的更改是,创建一个可选的插件来与 ESKM 设备通信。该插件将基于 CryptoPlugin 基础,并封装所有必要的功能。该插件将通过安全的网络链路使用供应商特定的协议与远程设备进行通信。

不需要对 Barbican 的核心进行任何更改。

备选方案

或者,Atalla ESKM 支持 KMIP 行业标准协议进行密钥交换。KMIP 是 Barbican 未来计划中的功能,但截至撰写本文时尚未实现。

数据模型影响

REST API 影响

安全影响

此更改涉及敏感数据(令牌、密钥和用户数据),因为它会将密钥数据传递到 ESKM 服务器并接收结果,然后再进行加密。用户数据使用密钥加密密钥和 256 位 AES CBC 加密进行保护。密钥加密密钥从不存储,而是根据需要从 ESKM 设备获取。

此更改利用了 ‘cryptography’ python 模块中的加密算法,但并未向 Barbican 引入任何额外的加密依赖项。

此更改需要建立 Barbican 和 ESKM 设备之间的网络连接。此连接使用 TLSv1 和客户端身份验证证书进行保护。密钥材料通过此连接传输。

通知与审计影响

其他最终用户影响

性能影响

此更改引入了性能影响,通过网络链路与远程 ESKM 设备通信可能需要时间。这倍增了需要从 ESKM 请求密钥加密密钥作为所有请求的一部分。为了获得通过本地不缓存密钥加密密钥而提高的安全性,这种性能影响是可以接受的。

其他部署者影响

添加了以下新的配置选项,它们特定于插件,不必另行使用。所有选项都位于 ‘eskm_crypto_plugin’ 组中。

选项

含义

eskm_crypto_plugin.crt_file_path

ESKM 客户端证书文件路径。

eskm_crypto_plugin.key_file_path

ESKM 客户端密钥文件。

eskm_crypto_plugin.key_password

ESKM 客户端密钥密码。

eskm_crypto_plugin.user_name

ESKM 用户名。

eskm_crypto_plugin.user_pass

ESKM 用户密码。

eskm_crypto_plugin.eskm_host

ESKM 主机 IP,逗号分隔。

eskm_crypto_plugin.eskm_port

ESKM 端口号。

开发人员影响

实现

负责人

主要负责人

tim-kelsey

其他贡献者

工作项

  • 创建规范(此规范)。

  • 编写插件和测试。

  • 确认所有 Barbican 测试,新旧测试均通过。

  • 审查代码。

依赖项

没有引入强制依赖项,但如果部署者希望使用此插件,则必须提供 Atalla ESKM 设备。

测试

将生成一套单元测试来测试新代码。

文档影响

文档可能需要更新以反映插件的存在及其配置选项。

参考资料