LUKS 的安全優勢是什麼?
只有基本的加密知識,我試圖了解 LUKS 相對於普通模式 dm-crypt 的安全優勢。希望這是一個問的好地方。
鑑於 LUKS 標頭包含描述有效負載如何加密的資訊,那麼使用普通 dm-crypt 會不會更安全?
我認為普通設備看起來就像隨機數據,並且不會附加標籤來告訴所有它是加密數據以及密碼和其他細節是什麼。普通模式允許合理的否認,而 LUKS 則不允許。
LUKS 標頭不僅包含主密鑰(儘管它經過拉伸和加密),而且還包含多達 8 個可用於獲取主密鑰的攻擊向量。然而,在這一切的基礎上,相同的 dm-crypt 引擎用於加密普通和 luks 有效負載。
因此,可以直接攻擊普通或 luks 有效載荷(儘管這可能不切實際),但 LUKS 會拋出一些額外的方法來破解數據,而普通模式不會洩露任何資訊。
我想這可能歸結為這樣一個事實,即普通模式的使用者需要擁有實際的密鑰,並且可能無法安全地儲存它或使用僅簡單地散列的密碼,而 LUKS 模式的使用者永遠不會擁有實際密鑰,但將使用通過加鹽迭代密鑰派生函式放置的密碼片語。
那麼,LUKS 是否不如普通的 dm-crypt 安全?
我認為,在評估密碼設置的質量時,通常認為這是一項原則,首先要假設對手知道算法並且唯一的變數 unknown 是 key。鑑於此,鑑於您使用相同的密碼(+ 塊連結操作模式),並沒有太多以密碼為動機的安全優勢/差異。
可以說,對於人眼來說,LUKS 標頭會向攻擊者洩露資訊,這樣做感覺不對。我預計我們會被誤導,認為由於感知到的有關加密細節的資訊量很大,因此感覺不好是一種人類情緒,因為加密的一個重點是首先避免洩露資訊。
然而,通過直接使用 dm-crypt,我擔心通過 obscurity實現的大部分安全性,許多人都相當懷疑。也許這是因為它的效果很難估計。例如,在某種程度上,您可能會被迫使用安全的加密方案,並且由於這種受信任的密碼(block-chaining-mode+)並不大量存在,因此您很有可能使用 AES 256 CBC 或類似的. 如果您要使用其他密碼,您可能會獲得更好的保護,以防止試圖濫用 AES 特定弱點的密碼分析。另一方面,不使用 AES 來實現這種不可估量的安全性可能會導致您使用未針對標準密碼分析攻擊進行測試和強化的密碼 XXX。
畢竟是要點風格(要考慮的事情):
- LUKS 標頭將擊敗許多似是而非的否認,而 dm-crypt 偽隨機硬碟驅動器“更好”(這當然不是加密屬性,並且更側重於http://security.stackexchange.com)
- LUKS 將使用一些隨機數據源(我認為
/dev/random
甚至是)來創建用於加密硬碟驅動器/分區的主密鑰,這可能被認為比從密碼片語派生的密鑰更具熵(如果這是您提供的方式 dm-用密鑰加密)。- 再一次,LUKS 將生成使用密鑰派生函式的密鑰槽來接受用於解鎖主密鑰的密鑰。
還要考慮安全性是一個依賴於上下文的概念。例如,可以說 LUKS 設置更安全,因為它可以保護您不失去加密主密鑰,因為它畢竟儲存(再次加密)在 LUKS 標頭中。您仍然可能會因為忘記密碼而無法訪問您的數據。
此外,LUKS 提供了一些安全性來失去有關使用哪個密碼的資訊,因為它直接儲存在標頭中,而這將是您需要保護您的 dm-setup 的東西(您需要記住您做了什麼)。