9.3. 轮转 Tang 服务器密钥并更新客户端上的绑定
为安全起见,轮转 Tang 服务器密钥,并定期更新客户端上的现有绑定。轮转它们的确切间隔取决于您的应用程序、密钥大小以及机构策略。
或者,您可以使用 nbde_server
RHEL 系统角色来轮转 Tang 密钥。如需更多信息,请参阅 使用 nbde_server 系统角色来设置多个 Tang 服务器。
先决条件
- Tang 服务器在运行。
-
clevis
和clevis-luks
软件包已安装在您的客户端上。
步骤
重命名
/var/db/tang
密钥数据库目录中的所有密钥,使其前面有一个.
,将它们隐藏起来,以防被看到。请注意,以下示例中的文件名与 Tang 服务器的密钥数据库目录中的独特文件名不同:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查是否重命名了,是否隐藏了 Tang 服务器中的所有密钥:
ls -l
# ls -l total 0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
/usr/libexec/tangd-keygen
命令,在Tang 服务器上的/var/db/tang
中生成新的密钥:/usr/libexec/tangd-keygen /var/db/tang ls /var/db/tang
# /usr/libexec/tangd-keygen /var/db/tang # ls /var/db/tang 3ZWS6-cDrCG61UPJS2BMmPU4I54.jwk zyLuX6hijUy_PSeUEFDi7hi38.jwk
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查您的 Tang 服务器是否可以显示新密钥对的签名密钥,例如:
tang-show-keys 7500
# tang-show-keys 7500 3ZWS6-cDrCG61UPJS2BMmPU4I54
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 NBDE 客户端上,使用
clevis luks report
命令检查 Tang 服务器显示的密钥是否保持不变。您可以使用clevis luks list
命令识别带有相关绑定的插槽,例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要为新密钥重新生成 LUKS 元数据,在上一个命令提示时按
y
,或使用clevis luks regen
命令:clevis luks regen -d /dev/sda2 -s 1
# clevis luks regen -d /dev/sda2 -s 1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 当您确定所有旧客户端都使用新密钥时,您可以从 Tang 服务器中删除旧密钥,例如:
cd /var/db/tang rm .*.jwk
# cd /var/db/tang # rm .*.jwk
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
在客户端仍在使用旧密钥时删除旧密钥可能会导致数据丢失。如果您意外删除了这些密钥,请在客户端上使用 clevis luks regen
命令,并手动提供您的 LUKS 密码。