LUKS:使用主密鑰而不是密碼進行解密
據我了解,LUKS 使用隨機生成的主密鑰對數據進行加密,然後該主密鑰本身由我的密碼加密儲存。當我想訪問數據時,我使用我的密碼來解密主密鑰,然後用它來解密數據。
問題: 是否可以讓 LUKS 只使用隨機生成的主密鑰加密數據(我可以指定大小嗎?),但不是用我的密碼加密並儲存它,只需告訴我主密鑰(我會記住或寫在一張紙上)。當我想要訪問數據時,我將使用主密鑰對其進行解密。
作為旁注,讓我解釋一下為什麼我認為這會比通常的程序更安全:當對 USB 或非自加密 SSD 驅動器進行加密消毒(或更改 LUKS 密碼)時,我的理解是主密鑰由舊密碼加密的驅動器將始終物理存在,因為 USB 和 SSD 很難實現數字清理。然後可以通過猜測舊密碼或暴力破解來恢復隨機生成的主密鑰。
通常,您不直接提供主密鑰。主密鑰由密鑰加密密鑰保護。所有儲存加密系統都以這種方式工作。
如果不重新加密所有數據,就無法更改主密鑰。使用儲存在由密鑰加密密鑰包裝的表單中的主密鑰允許更改密鑰加密密鑰,而無需重新加密數據。它還允許擁有多個密鑰加密密鑰。
您建議不使用密鑰加密密鑰並直接使用主密鑰。這總是比使用密鑰加密密鑰弱,除非處理密鑰加密的機制有缺陷*。*在您的提案中,您建議記住主密鑰(128 位或更多)。如果主密鑰被洩露,你就輸了。相反,假設您記住的密碼片語具有與主密鑰一樣多的熵(在 128 位或更多位的空間中選擇的隨機密碼片語)。然後,如果您記住了主密鑰,您就可以免受所有攻擊,等等。
您擔心的攻擊是有人發現使用舊的、弱密碼片語加密的主密鑰副本。如果您想防止這種攻擊,請不要使用弱密碼!如果您只使用強密碼片語,那麼周圍不會有任何由弱密碼片語構成的東西。儲存使用與主密鑰本身一樣強大的密碼片語加密的主密鑰不是風險。密碼片語甚至可能更弱,因為它通過了強化功能(PBKDF2 或 Argon2)。
LUKS 是管理密鑰如何儲存在磁碟上的標準,因此對您的問題的迂腐確切答案是否定的。
但是,如果您的問題是“我可以使用 linux 磁碟加密,並自己提供整個密鑰,而不是使用 LUKS 來儲存密鑰”,那麼答案是肯定的,是的。
您需要的搜尋詞是“dm-crypt”
載入鍵和映射設備的命令看起來像
dmsetup create name-of-red-device --table "0 $(blockdev --getsz name-of-black-device
crypt twofish-xts-plain64 YOURKEYINHEXGOESHERE 0 name-of-black-device 0"`其中name-of-black-device 是您加密的真實塊設備(例如/dev/sda3),name-of-red-device 是您解密的虛擬塊設備(例如/dev/mapper/crypt1),顯然您可以更改加密類型 &c。