openstack部署
无论您是遵循内部信息安全策略,还是要满足GDPR,ANSSI,PCI DSS,HIPAA或NIST等法规要求,您都可能在寻找保护数据和软件的隐私和完整性的方法。 该解决方案可以在加密中找到。 OpenStack提供了部署隐私和完整性解决方案所需的所有要素,但是运营商必须安全地部署它们。 这需要密钥管理解决方案 (KMS)来管理和保护加密密钥。
Barbican是OpenStack服务,允许操作员和用户安全地管理和存储机密。 它由一个OpenStack API组成,该API提供了Keystone身份验证 , oslo.policy和配额以及存储密码的后端。 但是机密仅与部署在Barbican后面的存储后端一样安全。 本文将讨论Barbican部署选项,并探讨每种选项如何影响云的安全性。
在评估关键管理选项时,需要考虑许多因素。 根据使用情况,不同的标准将具有不同的权重。
其次,KMS应该能够面对压力或失败。 应该考虑密钥存储的可用性,耐用性和可伸缩性。 理想情况下,在硬件,软件或连接故障时,关键材料仍然可用。
最后,还有一些商业因素需要考虑,包括总价,易用性以及与现有基础架构的兼容性。
考虑到所有这些因素,让我们比较一下不同的Barbican部署选项。
部署的首要考虑因素是Barbican的体系结构。 与其他OpenStack服务一样,Barbican由API服务器,数据库和可通过可配置插件访问的后端组成。 一个重要的设计目标是最小特权原则 。 密钥管理管理员应具有与存储或计算管理员不同的访问权限。 将加密和签名的数据与软件与加密密钥分开可以实现此目标,并提高云的安全性。 虽然通常做法是将API服务放在同一位置,并在OpenStack服务之间共享一个公共数据库,但最佳做法是将Barbican与使用它的服务分开。
秘密商店插件允许Barbican与后端进行交互以存储,生成和检索秘密。 主要有两种类型。
第一个允许Barbican与Hashicorp Vault或Dogtag Key Recovery Authority等外部KMS交互以存储机密。 对于Barbican而言,外部KMS本质上是一个安全的黑匣子。 Barbican使用KMS的API与KMS进行交互,并提供凭据,并将额外的信息(例如参考ID)存储在Barbican数据库中,以便以后可以访问机密。
这些插件提供逻辑和特权分离,因为秘密存储在完全独立的应用程序中,通常存储在专用网络上的独立服务器上。 此外,由于您可以限制评估目标(TOE),因此整个系统可以更轻松地证明符合Common Criteria等标准。
加密插件是秘密存储插件的第二种类型。 他们加密秘密并将其直接存储在Barbican数据库中。 它们可以提供性能优势,因为它们不需要Barbican访问外部KMS。 只要数据库管理员无权访问加密密钥,加密插件即可提供特权分离。
让我们更详细地看一些可用的插件。
简单加密是最简单的插件,并且是在上游部门使用devstack测试的插件。 它也是默认的开箱即用的秘密存储插件。 所有机密均通过存储在Barbican配置文件中的AES-256位密钥(密钥加密密钥(KEK))进行加密。
该插件不仅最简单,而且性能最高。 另一方面,它具有明显的缺点。 首先,由于单个密钥用于所有加密,因此如果该KEK遭到破坏,则数据库中所有租户的所有机密都将受到威胁。 此外,如果不重新加密所有现有机密信息就不可能旋转此密钥。
PKCS#11是功能最丰富的插件之一。 它与硬件安全模块(HSM)(例如来自Yubikey,Thales,Safenet或ATOS的硬件)进行PKCS#11对话。
简单的加密插件使用单个密钥,而PKCS#11使用多个密钥。 HSM存储两个主密钥:主加密密钥(MKEK)和主HMAC签名密钥。 然后,HSM使用这些密钥对单个租户密钥加密密钥(pKEK)进行加密和签名。 pKEK用于加密每个租户的机密。 最后,这些加密值存储在Barbican数据库中。
这比简单的加密技术具有更好的安全性。 首先,不同的租户使用不同的pKEK加密他们的秘密,因此一个租户的pKEK的妥协不会影响其他租户。 此外,密钥旋转比简单的加密要简单得多。 旋转MKEK时,仅pKEK(而不是每个秘密)需要重新加密。
其次,所有密码操作都发生在密码设备的内存中,因为pKEK全部由MKEK加密,而MKEK从未从HSM中提取。 物理HSM提供审核,防篡改和防篡改,并具有足够随机的熵源来生成密钥。 他们通常还限制密码算法和密钥以满足通用标准,FIPS 140-2或其他标准。
但是它们可能很昂贵,可能需要调整以获得最佳性能。 如果您可以通过较低的性能或安全保证来解决问题,则Yubikey或基于软件的HSM可能是较便宜的选择。
基于软件的HSM (最初来自DNSSEC小组的一个项目)是使用PKCS#11进行通信的加密设备的软件实现。 与基于硬件的HSM一样,它使用多键方法。 这包括一个主密钥和一个密钥加密密钥,该密钥由主密钥解密。 加密密钥和其他工件存储在文件系统中的文件中。
将PKCS#11插件与软件HSM一起使用不会提供硬件HSM的审核,篡改保护和安全认证。 但是,它确实比简单的加密技术有了显着的改进,因为它允许更轻松的密钥旋转和每个项目的KEK。
OpenStack Stein周期(目前正在开发)中有计划在此配置的上游连续集成(CI)中包括测试门。
英特尔SGX是一项新的处理器技术,允许应用程序在内存中创建称为安全区的安全区域。 这些安全区为应用程序提供了受信任的执行环境,其中安全区内的任何代码和数据的机密性和完整性在CPU程序包边界之内得到保护。
英特尔提议创建一个Barbican加密插件,该插件可以在该安全边界内执行秘密加密操作,并将加密的秘密存储在Barbican数据库中。
这种安全功能和相对较低的成本将使该插件成为有吸引力的解决方案。 但是,尚未向开源Barbican项目提出Barbican插件的代码和Barbican API的更改。
KMIP插件与PKCS#11插件一样,使用HSM来帮助保护机密。 区别在于KMIP插件的加密机密直接存储在HSM中。 这提供了更强的安全性,同时可能降低性能和可伸缩性并增加成本。
Vault是由Hashicorp赞助的开源秘密管理工具。 在过去的几年中,由于其易于开发的设置和灵活的配置,它变得很流行。 存在多个身份验证插件(尽管不是针对Keystone令牌的),以及多个存储后端。
Barbican保险库插件是在OpenStack Rocky周期(2018年8月)中引入的,并在Barbican上游登机口进行了例行测试。 它允许Barbican将其秘密存储在Vault中。 保险柜主密钥用于加密机密信息,密钥旋转很容易。
但是,该插件尚未完全投入生产使用。 最大的缺陷是使用Vault根用户进行身份验证(这不是建议的安全做法),并且所有机密未分类存储在顶层。 斯坦因致力于解决这些缺陷。
Dogtag密钥恢复授权机构(KRA)是FreeIPA的一个组件,用于存储机密,其主密钥位于NSS数据库或HSM中。 巴比肯人将机密直接存储在Dogtag KRA中。 Dogtag提供FIPS和其他认证,对于已经拥有FreeIPA部署的部署者而言,它是一个不错的选择。
选择Barbican背后的秘密存储是一个重要决定,它将影响秘密管理系统的安全性,性能,可伸缩性和成本。 有许多因素需要考虑,这些因素将取决于您的需求。
有法规要求或现有HSM的用户将倾向于使用KMIP或PKCS#11插件。 预算紧张的用户将密切关注仅软件选项。 那些对性能有较高需求的人会使用加密插件。
幸运的是,Barbican支持多个插件,如果以后需要更改,这些插件将很有用。 它还可以允许具有不同要求的不同机密存储在不同的插件中。
阿德·李(Ade Lee)和戴夫·麦考万(Dave McCowan)将出席“您的秘密安全吗? 在11月13日至15日在柏林举行的OpenStack峰会上 。
翻译自: https://opensource.com/article/18/10/are-your-secrets-secure
openstack部署