Openstack Barbican部署选项如何保护您的云[Openstack]

2019-11-12 11:04:02 浏览数 (1)

你的秘密安全吗?选择正确的OpenStack Barbican部署选项来保护您的云的隐私和完整性。

无论您是遵循您的内部信息安全政策,还是试图满足诸如GDPR、ANSSI、PCI DSS、HIPAA或NIST等监管要求,您都可能会寻找保护您的数据和软件的隐私和完整性的方法。这个解决方案可以在加密中找到。OpenStack提供了部署隐私和完整性解决方案所需的所有要素,但是安全部署这些要素取决于操作者。这需要密钥管理解决方案(KMS)来管理和保护加密密钥。

Barbican是一种OpenStack服务,允许运营商和用户安全地管理和存储秘密。它包含一个OpenStack API,提供keystone认证,oslo。策略和配额,以及存储秘密的后端。但秘密只有部署在巴比肯之后的存储后端才安全。本文将讨论Barbican部署选项,并探讨每种选项如何影响云的安全性。

用户配置文件、威胁和需求

在评估关键管理选项时,有许多因素需要考虑。根据用例,不同的标准会有不同的权重。

第一个标准是解决方案的安全性。应该有一个访问策略,这样只有授权用户才能访问密钥和相关的审计跟踪。应该了解密钥(以及保护它们的主密钥)的安全性。有些选择将被认证为符合不同的标准,如FIPS,而其他的可能不符合。必须有防止篡改和窃听的保护措施。

第二,KMS应该能够在压力或失败面前发挥作用。应该考虑密钥存储的可用性、持久性和可伸缩性。理想情况下,关键材料在硬件、软件或连接失败时仍然可用。

最后,还有一些业务因素需要考虑,包括总价、易用性和与现有基础设施的兼容性。

考虑到所有这些因素,让我们比较一下不同的Barbican部署选项。

体系结构

第一个部署考虑是Barbican的体系结构。与其他OpenStack服务一样,Barbican由一个API服务器、一个数据库和可通过可配置插件访问的后端组成。一个重要的设计目标是最小特权原则。密钥管理管理员应该具有与存储或计算管理员不同的访问权限。将加密和签名的数据和软件从加密密钥中分离出来实现了这一目标,并增强了云的安全性。虽然在OpenStack服务之间对API服务进行协作并共享公共数据库是一种常见的实践,但最好将Barbican与使用它的服务分离开来。

安全存储选项

秘密存储插件允许Barbican与后端交互来存储、生成和检索秘密。主要有两种类型。

第一种允许Barbican与外部KMS交互,如Hashicorp Vault或Dogtag密钥恢复授权来存储秘密。对巴比肯来说,外部的km基本上是一个安全的黑匣子。Barbican使用KMS的API与KMS进行交互,并提供凭据,并在Barbican数据库中存储额外的信息,比如引用ID,以便以后访问秘密。

这些插件提供了逻辑和特权分离,因为秘密存储在完全独立的应用程序中,通常存储在专用网络的独立服务器上。此外,系统作为一个整体更容易被认证为符合标准,例如通用标准,因为您可以限制评估目标(TOE)。

加密插件是第二种类型的秘密存储插件。他们把秘密加密并直接储存在巴比肯数据库中。它们可以提供性能优势,因为它们不需要Barbican访问外部KMS。只要数据库管理员不能访问加密密钥,Crypto插件就可以提供特权分离。

让我们更详细地看看一些可用的插件。

4个加密插件

简单的加密插件

Simple crypto是最简单的插件,也是在上游门用devstack测试过的。它也是默认的、开箱即用的秘密存储插件。所有的秘密都由存储在Barbican配置文件中的aes -256位密钥密钥加密密钥(KEK)进行加密。

这个插件不仅是最简单的,而且可能是性能最好的。另一方面,它有明显的缺点。首先,由于所有加密都使用一个密钥,如果KEK被破坏,那么数据库中所有租户的所有秘密都有危险。此外,如果不重新加密所有现有的秘密,就不可能旋转此密钥。

PKCS#11插件 HSM

PKCS#11是最通用的插件之一。它将PKCS#11与硬件安全模块(HSM)对话,例如来自Yubikey、Thales、Safenet或ATOS的那些模块。

简单加密插件使用一个密钥,而PKCS#11使用多个密钥。HSM存储两个主密钥:主加密密钥(MKEK)和主HMAC签名密钥。然后HSM使用这些密钥对各个租户密钥加密密钥(pkek)进行加密和签名。pkek用于为每个租户加密机密。最后,这些加密的值存储在Barbican数据库中。

这比简单的加密要安全得多。首先,不同的租户使用不同的pKEK加密他们的秘密,因此一个租户的pKEK的破坏不会影响到其他租户。此外,密钥旋转要比简单的加密简单得多。当MKEK被旋转时,只有pkek需要重新加密,而不是所有的秘密。

其次,所有的加密操作都发生在加密设备的内存中,因为pkek都是由MKEK加密的,而MKEK从不从HSM中提取。物理HSMs提供审计、篡改检测和篡改电阻,并具有足够的随机熵源来生成密钥。它们通常还限制加密算法和密钥,以满足公共标准、FIPS 140-2或其他标准。

但是它们可能很昂贵,可能需要进行调优以获得最佳性能。如果您可以使用较低的性能或安全性保证,那么Yubikey或基于软件的HSM可能是较便宜的选择。

PKCS#11 软件HSM

基于软件的HSM最初是DNSSEC集团的一个项目,是一个使用PKCS#11通信的加密设备的软件实现。与基于硬件的HSM一样,它使用多键方法。这包括一个主密钥和一个密钥加密密钥,密钥由主密钥解密。加密密钥和其他构件存储在文件系统中的文件中。

在软件HSM中使用PKCS#11插件并不提供对硬件HSM的审计、篡改保护和安全认证。但是,与简单的加密相比,它确实提供了重要的改进,因为它允许更简单的密钥旋转和每个项目的kek。

OpenStack Stein循环(目前正在开发中)计划在上游持续集成(CI)中为这种配置包含一个测试门。

Intel SGX是一种新的处理器技术,它允许应用程序在称为enclave的内存中创建安全区域。这些enclave为应用程序提供了一个可信的执行环境,在这个环境中,enclave内的任何代码和数据的机密性和完整性都在CPU包边界内受到保护。

Intel已经提议创建一个Barbican crypto插件,它可以在安全边界内执行秘密加密操作,并将加密的秘密存储在Barbican数据库中。

这个安全特性和相对较低的成本使这个插件成为一个有吸引力的解决方案。然而,Barbican插件的代码和Barbican API的变化还没有被提交给开源Barbican项目。

3个外接KMS插件

KMIP

与PKCS#11插件一样,KMIP插件使用HSM来帮助保护秘密。区别在于KMIP插件的加密秘密直接存储在HSM上。这提供了更强的安全性,同时可能降低性能和可伸缩性,并增加成本。

Hashicorp库

Vault是一个由Hashicorp赞助的开源保密管理工具。由于其简单的开发设置和灵活的配置,它在过去几年变得流行起来。存在多个身份验证插件(尽管不是针对keystone令牌),以及多个存储后端。

Barbican vault插件是在OpenStack Rocky cycle(2018年8月)中引入的,通常在Barbican上游大门进行测试。它允许巴比肯把它的秘密储存在保险库里。保险库主密钥用于加密秘密,并且很容易进行密钥旋转。

然而,该插件还没有完全准备好投入生产使用。最大的缺陷是,身份验证是使用Vault root用户完成的(这不是推荐的安全实践),所有的秘密都存储在顶层,没有分类。斯坦正在努力解决这些不足之处。

Dogtag

Dogtag密钥恢复授权(KRA)是FreeIPA的一个组件,用于存储密钥,主密钥要么在NSS数据库中,要么在HSM中。巴比肯直接在Dogtag KRA中储存秘密。Dogtag提供FIPS和其他认证,对于已经拥有FreeIPA部署的部署者来说,这是一个不错的选择。

选择正确的秘密存储的提示

选择Barbican背后的秘密存储是一个重要的决定,它将影响您的秘密管理系统的安全性、性能、可伸缩性和成本。有许多因素需要考虑,这将是具体到您的需求。

有法规要求或现有HSMs的用户将倾向于KMIP或PKCS#11插件。预算紧张的用户将密切关注纯软件选项。那些有高性能需求的用户将会寻找加密插件。

幸运的是,Barbican支持多种插件,如果您稍后需要更改,这些插件将非常有用。它还允许不同的插件存储不同需求的不同秘密。

0 人点赞