确定是否存在LUKS / dmcrypt密钥

我写了一个厨师LWRP添加一个密钥到一个LUKS容器,我很难想出一个方法来确定我的密钥是否已经存在。 cryptsetup luksAddKey会高兴地多次添加相同的密钥文件,所以我不能简单地保持调用每个厨师运行luksAddKey

到目前为止,我所提出的最好的是

 cryptsetup luksDump /dev/xvdf1 --dump-master-key --key-file <thenewkey> > /dev/null 

那看起来:

  1. CPU密集型
  2. 不是很安全

任何人有更好的主意?

谢谢!

我没有看到没有解锁卷的情况下testing一个密钥(至less是指CPU负载)的机会。 但谁没有这几个CPU秒? 每个系统有多lessLUKS卷?

你也可以这样做:

每次添encryption钥时,都会存储文件的摘要(甚至不需要安全摘要;即使MD5也可以)。 你创build一个目录/etc/my_luks_keyfiles 。 对于系统中的每个LUKS卷,使用UUID( cryptsetup luksUUID /dev/bla )创build一个cryptsetup luksUUID /dev/bla 。 如果你添加一个键,然后你创build一个文件,例如时间戳作为名字,摘要作为内容。 如果您删除一个密钥,然后您删除该文件。 如果您想知道某个键是否处于活动状态,则将该目录中的所有文件与摘要进行比较(即不需要传输密钥文件)。

如果有更多或更less的文件比活动槽,那么你知道你搞砸了…