10.12. 部署高可用性 NBDE 系统


Tang 提供两种构建高可用性部署的方法:

客户端冗余(推荐)
客户端应配置成能够绑定到多个 Tang 服务器。在此设置中,每个 Tang 服务器都有自己的密钥,客户端可以通过联系这些服务器的子集来进行解密。Clevis 已通过其 sss 插件支持此工作流。红帽建议对高可用性部署使用这个方法。
密钥共享
出于冗余的目的,可以部署多个 Tang 实例。要设置第二个或后续的实例,请安装 tang 软件包,并使用 rsync ,通过 SSH 将密钥目录复制到新主机上。请注意,红帽不推荐此方法,因为共享密钥会增加密钥的风险,需要额外的自动化基础设施。

使用 Shamir 的 Secret 共享的高可用性 NBDE

Shamir 的 Secret 共享(SSS)是一种加密方案,可将Secret 分成多个独特的部分。要重建 secret,需要几个部分。数字称为阈值,SSS 也被称为阈值方案。

Clevis 提供 SSS 的实施。它创建一个密钥,并将其分为若干个片。每片都使用另一个 pin 进行加密,甚至包括递归 SSS。另外,您可以定义阈值 t。如果 NBDE 部署至少解密了 t 片,那么它将恢复加密密钥,并且解密过程会成功。当 Clevis 检测到比阈值中指定的部分少时,它会打印错误消息。

示例 1:带有两个 Tang 服务器的冗余

当两个 Tang 服务器中至少有一个可用时,以下命令会解密 LUKS 加密设备:

# clevis luks bind -d /dev/sda1 sss '{"t":1,"pins":{"tang":[{"url":"http://tang1.srv"},{"url":"http://tang2.srv"}]}}'

上一命令使用以下配置方案:

{
    "t":1,
    "pins":{
        "tang":[
            {
                "url":"http://tang1.srv"
            },
            {
                "url":"http://tang2.srv"
            }
        ]
    }
}

在此配置中,SSS 阈值 t 设置为 1,如果列出的两个 tang 服务器中至少有一台可用,则 clevis luks bind 命令可以成功重建 secret。

示例 2:Tang 服务器和 TPM 设备上共享的 secret

tang 服务器和 tpm2 设备都可用时,以下命令可成功解密 LUKS 加密设备:

# clevis luks bind -d /dev/sda1 sss '{"t":2,"pins":{"tang":[{"url":"http://tang1.srv"}], "tpm2": {"pcr_ids":"0,7"}}}'

现在 SSS 阀值 't' 设置为 '2' 的配置方案是:

{
    "t":2,
    "pins":{
        "tang":[
            {
                "url":"http://tang1.srv"
            }
        ],
        "tpm2":{
            "pcr_ids":"0,7"
        }
    }
}

其它资源

  • tang (8) ( 高可用性部分)、clevis (1) ( Shamir's Secret Sharing)以及您系统上的 clevis-encrypt-sss (1) 手册页
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.