要更改加密密码,我可以使用命令:
cryptsetup luksChangeKey /dev/sda2
...这有效。但是如何使用新密码再次加密/dev/sda2分区呢?
如果我的旧密码被泄露并且我只更改密码,则存储的数据将使用旧密码加密,而不是使用新密码。
答案1
你的假设是错误的。
存储的数据是不是使用您的密码进行加密,但使用存储在多个(通常是八个)密钥槽之一中的密钥。您的密码仅用于加密/解密该密钥。然后该密钥对 LUKS 容器中的数据进行加密/解密。当您更改该密码时,密钥将使用新密码重新加密。
这也意味着同一个 LUKS 容器最多可以有八个(或无论插槽数量多少)不同的密码,并且所有密码同时有效。这样,您可以为不同的人提供不同的密码,并在不再需要时一一撤销它们。所有密钥槽都保存相同的密钥,但使用不同的密码进行加密。
警告:一个重要的结论是,您不仅要记住密码,还应该备份 LUKS 标头。否则,如果 LUKS 标头区域出现错误,即使您仍然知道密码,您也无法取回数据。 (但无论如何你都应该备份数据。)
查看 LUKS 磁盘格式的详细信息这里。
^好吧,正确地说:如果仍然有空闲密钥槽,则将新加密的密钥保存在那里,然后删除旧槽。