Encryption
確定是否存在 LUKS/dmcrypt 密鑰
我正在編寫一個 Chef LWRP 來向 LUKS 容器添加一個密鑰,但我很難想出一種方法來確定我的密鑰是否已經存在。
cryptsetup luksAddKey
會很樂意多次添加相同的密鑰文件,所以我不能簡單地繼續呼叫luksAddKey
每個 Chef 執行。到目前為止,我想出的最好的是
cryptsetup luksDump /dev/xvdf1 --dump-master-key --key-file <thenewkey> > /dev/null
那看起來:
- CPU 密集型
- 不是很安全
有人有更好的主意嗎?
謝謝!
我看不到在不解鎖音量的情況下測試密鑰的任何機會(至少指的是 CPU 負載)。但是誰沒有這幾秒鐘的 CPU 時間呢?每個系統是否有很多 LUKS 卷?
您也可以這樣做:
每次添加密鑰時,都會儲存文件的摘要(甚至不需要是安全摘要;甚至 MD5 也可以)。你做一個目錄
/etc/my_luks_keyfiles
。為系統中的每個 LUKS 卷創建一個帶有 UUID (cryptsetup luksUUID /dev/bla
) 的子目錄。如果您添加一個密鑰,那麼您將創建一個文件,例如時間戳作為名稱,摘要作為內容。如果刪除密鑰,則刪除文件。如果您想知道某個密鑰是否處於活動狀態,那麼您可以將目錄中的所有文件與摘要進行比較(即您不需要傳輸密鑰文件)。如果文件比活動插槽多或少,那麼你就知道你搞砸了……