第 20 章 volume_key Function
volume_key 功能提供两个工具:libvolume_key 和 volume_key. libvolume_key,是用于操作存储卷加密密钥的库,并将它们与卷分开存储。volume_key 是一个关联的命令行工具,用于提取密钥和密码短语,以便恢复对加密硬盘驱动器的访问。
这对于员工突然离开后,主要用户忘记了他们的密钥和密码,或者由于硬件或软件故障破坏了加密卷的头后提取数据时,非常有用。在公司设置中,IT 帮助台可以使用 volume_key 在将计算机移交至最终用户之前备份加密密钥。
目前,volume_key 只支持 LUKS 卷加密格式。
注意
volume_key 不包含在 Red Hat Enterprise Linux 7 服务器标准安装中。有关安装的详情,请参考: http://fedoraproject.org/wiki/Disk_encryption_key_escrow_use_cases
20.1. volume_key 命令
volume_key 的格式是:
volume_key [OPTION]... OPERAND
volume_key 的操作对象和操作模式是通过指定以下选项之一来确定的:
- --save
- 此命令需要操作对象 volume [packet]。如果提供了 数据包,则 volume_key 将从中提取密钥和密码短语。如果没有提供 数据包,则 volume _key 将从卷中提取密钥和密码短语,并在需要时提示用户输入。然后这些密钥和密码短语将存储在一个或多个输出数据包中。
- --restore
- 此命令需要操作对象 volume packet。然后,它打开 volume ,并使用 packet 中的密钥和密码短语使 volume 可再次访问,并在需要时提示用户,例如允许用户输入新的密语。
- --setup-volume
- 此命令需要操作对象 volume packet name。然后,它打开 volume ,并使用 packet 中的密钥和密码短语来设置 volume,以便将解密的数据用作 name。Name 是 dm-crypt 卷的名称。此操作使解密的卷作为
/dev/mapper/名称
提供。例如,此操作不会通过添加新密码短语来永久更改 volume。用户可以访问和修改解密的卷,从而可以在过程中修改 volume。 - --reencrypt、--secrets 和 --dump
- 这三个命令使用不同的输出方法执行类似的功能。它们每个都需要操作对象 packet,并且每个都打开 packet,根据需要对其进行解密。然后 --reencrypt 将信息存储在一个或多个新输出数据包中。--secrets 输出包含在 数据包 中的密钥和密码短语。--dump 输出数据包的内容,但默认情况下不会输出密钥和密码短语。这可以通过在命令中附加 --with-secrets 来更改。也可以使用 --unencrypted 命令仅转储数据包的未加密部分(若有)。这不需要任何密语或私钥访问。
每个选项均可附加以下选项:
- -o,--output packet
- 此命令将默认密钥或密语写入 packet。默认密钥或密语取决于卷格式。确保它不太可能过期,并且允许 --restore 恢复对卷的访问。
- --output-format format
- 此命令对所有输出数据包使用指定的 format。目前,format 可以是以下之一:
- 非对称 :使用 CMS 来加密整个数据包,并且需要证书
- asymmetric_wrap_secret_only: 仅打包 secret 或密钥和密码短语,并且需要证书
- 密码短语 :使用 GPG 来加密整个数据包,并且需要密码短语
- --create-random-passphrase packet
- 此命令生成随机的字母数字密码短语,将它添加到 volume 中(而不影响其他密语),然后将此随机密语存储到 packet 中。