10.5. 基本的 NBDE 和 TPM2 加密客户端操作


Clevis 框架可以加密纯文本文件,并解密 JSON Web 加密(JWE)格式的密文和 LUKS 加密的块设备。Clevis 客户端可以使用 Tang 网络服务器或受信任的平台模块 2.0(TPM 2.0)芯片进行加密操作。

以下命令通过包含纯文本文件的示例演示了 Clevis 提供的基本功能。您还可以使用它们来对 NBDE 或 Clevis+TPM 部署进行故障排除。

绑定到 Tang 服务器的加密客户端

  • 要检查 Clevis 加密客户端是否绑定到 Tang 服务器,请使用 clevis encrypt tang 子命令:

    $ clevis encrypt tang '{"url":"http://tang.srv:port"}' < input-plain.txt > secret.jwe
    The advertisement contains the following signing keys:
    
    _OsIk0T-E2l6qjfdDiwVmidoZjA
    
    Do you wish to trust these keys? [ynYN] y

    更改上例中的 http://tang.srv:port URL,使其与安装了 tang 的服务器的 URL 匹配。secret.jwe 输出文件包含您加密的密码文本,格式为 JWE。这个密码文本是从 input-plain.txt 输入文件中读取的。

    另外,如果您的配置需要与 Tang 服务器进行非互动通信而无需 SSH 访问,您可以下载公告并将其保存到文件中:

    $ curl -sfg http://tang.srv:port/adv -o adv.jws

    对任何以下任务(如加密文件或消息)使用 adv.jws 文件中的公告:

    $ echo 'hello' | clevis encrypt tang '{"url":"http://tang.srv:port","adv":"adv.jws"}'
  • 要解密数据,请使用 clevis decrypt 命令,并提供密码文本(JWE):

    $ clevis decrypt < secret.jwe > output-plain.txt

使用 TPM 2.0 加密客户端

  • 要使用 TPM 2.0 芯片进行加密,请使用 clevis encrypt tpm2 子命令,唯一的参数是 JSON 配置对象:

    $ clevis encrypt tpm2 '{}' < input-plain.txt > secret.jwe

    要选择不同的层次结构、哈希和密钥算法,请指定配置属性,例如:

    $ clevis encrypt tpm2 '{"hash":"sha256","key":"rsa"}' < input-plain.txt > secret.jwe
  • 要解密数据,请提供 JSON Web 加密(JWE)格式的密码文本:

    $ clevis decrypt < secret.jwe > output-plain.txt

pin 还支持将数据封装到平台配置寄存器(PCR)状态。这样,只有 PCR 哈希值与密封时使用的策略匹配,数据才能被解封。

例如,对于 SHA-256 块要将数据密封到索引为 0 和 7 的 PCR:

$ clevis encrypt tpm2 '{"pcr_bank":"sha256","pcr_ids":"0,7"}' < input-plain.txt > secret.jwe
警告

PCR 中的哈希值可以重写,您无法再解锁加密的卷。因此,添加一个强大的密码短语,以便您手动解锁加密的卷,即使 PCR 中的值发生了变化。

如果在升级 shim-x64 软件包后系统无法自动解锁加密的卷,请遵照 重启后,Clevis TPM2 不再解密 LUKS 设备 KCS 文章中的步骤进行操作。

其他资源

  • clevis-encrypt-tang ( 1 )、clevis-luks-unlockers ( 7)、clevis (1)clevis-encrypt-tpm2 (1) 手册页
  • 不带任何参数的 clevisclevis decryptclevis encrypt tang 命令会显示内置 CLI 帮助信息,例如:

    $ clevis encrypt tang
    Usage: clevis encrypt tang CONFIG < PLAINTEXT > JWE
    ...
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.