Encryption

確定是否存在 LUKS/dmcrypt 密鑰

  • May 18, 2013

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

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

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

那看起來:

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

有人有更好的主意嗎?

謝謝!

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

您也可以這樣做:

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

如果文件比活動插槽多或少,那麼你就知道你搞砸了……

引用自:https://serverfault.com/questions/508784