試圖理解 LUKS 加密
我決定用 LUKS+LVM 加密我的根分區。
我的 ThinkPad 設置:
- 三星 830 128GB SSD
- 750GB 硬碟
- Core 2 Duo 2,5 GHz P9500
- 8GB 記憶體
但是我讀的越多,我對以下兩個主題的了解就越少:
1a。密碼
cryptsetup
由於FAQ中的引用,我打算使用SHA1而不是2/512(正如一些人建議的那樣) :5.20 LUKS 壞了!它使用 SHA-1!
不它不是。SHA-1(在學術上)因發現衝突而被破壞,但不適用於在密鑰派生函式中使用它。並且該碰撞漏洞僅供非迭代使用。你需要逐字逐句的雜湊值。
這基本上意味著,如果您已經有一個 slot-key,並且您已將 PBKDF2 迭代計數設置為 1(通常 > 10'000),您可以(也許)派生一個不同的密碼,為您提供相同的 slot-鑰匙。但是如果你有槽鑰匙,你已經可以解鎖鑰匙槽並獲得萬能鑰匙,打破一切。所以基本上,這個 SHA-1 漏洞允許你在已經打開的 LUKS 容器中打開它。
這裡真正的問題是那些不了解加密並聲稱事情被破壞的人只是因為使用了一些已經被破壞用於特定的不同用途的機制。該機制的使用方式非常重要。一個用途被破壞的散列對於其他用途來說是完全安全的,就是這樣。
我讀為“除了 SHA-1 之外沒有任何意義”。但後來有人告訴我,這不完全是那樣。所以我不再知道該怎麼想。
1b。
此外,一旦磁碟解鎖並登錄系統,我找不到任何資訊是否密碼對磁碟讀/寫/尋軌性能有任何影響。
那麼密碼的複雜性是否僅影響密碼輸入階段的“性能”,或者在系統的正常使用過程中?
2.算法
這幾天我一直在讀這個,但我讀得越多,我就越困惑。我讀到的所有內容都說 AES 是最快的,而 Serpent 是最慢的。但不是根據我的筆記型電腦:
$ cryptsetup benchmark Tests are approximate using memory only (no storage IO). PBKDF2-sha1 344926 iterations per second PBKDF2-sha256 198593 iterations per second PBKDF2-sha512 129007 iterations per second PBKDF2-ripemd160 271933 iterations per second PBKDF2-whirlpool 134295 iterations per second # Algorithm | Key | Encryption | Decryption aes-cbc 128b 149.8 MiB/s 147.9 MiB/s serpent-cbc 128b 51.0 MiB/s 196.4 MiB/s twofish-cbc 128b 127.6 MiB/s 152.5 MiB/s aes-cbc 256b 114.3 MiB/s 113.8 MiB/s serpent-cbc 256b 51.2 MiB/s 198.9 MiB/s twofish-cbc 256b 129.8 MiB/s 167.5 MiB/s aes-xts 256b 153.3 MiB/s 150.6 MiB/s serpent-xts 256b 176.4 MiB/s 184.1 MiB/s twofish-xts 256b 160.8 MiB/s 159.8 MiB/s aes-xts 512b 115.4 MiB/s 112.1 MiB/s serpent-xts 512b 178.6 MiB/s 184.2 MiB/s twofish-xts 512b 160.7 MiB/s 158.9 MiB/s
因此,Serpent 不僅是最快的,而且最重要的是,它是最快的,鍵也最複雜。
不應該反過來嗎?我讀錯了嗎,還是什麼?
1a - 這真的沒那麼重要。無論您將哪個雜湊用於密鑰派生函式,LUKS 都會確保它的計算成本很高。它會簡單地循環它,直到 1 秒的實際時間過去。
1b - 密鑰派生方法對性能沒有影響。密碼本身可以。
cryptsetup benchmark
盡可能多地向您展示。2 - 如果您的 CPU 足夠現代以支持 AES-NI 指令(AES 的硬體加速),則 AES 是最快的。如果您現在使用 serpent,您可能無法使用下一台筆記型電腦的 AES-NI。
# Tests are approximate using memory only (no storage IO). PBKDF2-sha1 1165084 iterations per second PBKDF2-sha256 781353 iterations per second PBKDF2-sha512 588426 iterations per second PBKDF2-ripemd160 726160 iterations per second PBKDF2-whirlpool 261882 iterations per second # Algorithm | Key | Encryption | Decryption aes-cbc 128b 692.9 MiB/s 3091.3 MiB/s serpent-cbc 128b 94.6 MiB/s 308.6 MiB/s twofish-cbc 128b 195.2 MiB/s 378.7 MiB/s aes-cbc 256b 519.5 MiB/s 2374.0 MiB/s serpent-cbc 256b 96.5 MiB/s 311.3 MiB/s twofish-cbc 256b 197.9 MiB/s 378.0 MiB/s aes-xts 256b 2630.6 MiB/s 2714.8 MiB/s serpent-xts 256b 310.4 MiB/s 303.8 MiB/s twofish-xts 256b 367.4 MiB/s 376.6 MiB/s aes-xts 512b 2048.6 MiB/s 2076.1 MiB/s serpent-xts 512b 317.0 MiB/s 304.2 MiB/s twofish-xts 512b 368.7 MiB/s 377.0 MiB/s
請記住,此基準測試不使用儲存,因此您應該使用您實際要使用的任何儲存和文件系統來驗證這些結果。