確定 LUKS/dmcrypt 金鑰是否存在

確定 LUKS/dmcrypt 金鑰是否存在

我正在編寫一個 Chef LWRP 來為 LUKS 容器添加金鑰,但我很難想出一種方法來確定我的金鑰是否已經存在。 cryptsetup luksAddKey我會很高興多次添加相同的密鑰文件,所以我不能簡單地繼續調用luksAddKey每次 Chef 運行。

到目前為止,我想出的最好的是

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

那看起來:

  1. CPU密集型
  2. 不太安全

有人有更好的點子嗎?

謝謝!

答案1

我看不到在不解鎖卷的情況下測試密鑰的任何機會(至少指的是 CPU 負載)。但誰沒有這幾秒的CPU呢?每個系統是否有大量 LUKS 磁碟區?

您也可以這樣做:

每次新增金鑰時,您都會儲存文件的摘要(甚至不需要是安全摘要;甚至 MD5 也可以)。你建立一個目錄/etc/my_luks_keyfiles。對於系統中的每個 LUKS 卷,您都可以使用 UUID ( cryptsetup luksUUID /dev/bla) 建立子目錄。如果您新增金鑰,那麼您將建立一個文件,例如將時間戳記作為名稱,將摘要作為內容。如果刪除密鑰,則會刪除該檔案。如果您想知道金鑰是否處於活動狀態,則可以將目錄中的所有檔案與摘要進行比較(即您不需要傳輸金鑰檔案)。

如果檔案數量多於或少於活動插槽,那麼您就知道您搞砸了...

相關內容