Encryption

如何更改 manjaro 全盤加密的 luks 加密難度

  • May 18, 2019

我正在使用帶有全盤加密的 manjaro,但是,啟動時解密的等待時間很長(我假設是因為難度設置很高)。如何在安裝過程中更改加密設置的加密難度/等待時間?

密碼散列過多?

如果它只是因為您正在等待大量密碼片語雜湊迭代而變慢,您可以添加一個更快的新密碼片語--iter-time,但這可能會降低安全性並允許更快地猜測密碼片語。如果您想等待 1 秒(1000 毫秒),請使用如下命令:

cryptsetup -v luksAddKey --iter-time 1000 <device>

然後,您可能必須刪除舊的慢速密碼片語(帶有luksKillSlot),除非它的關鍵插槽在新的快速密碼之後(它們顯然是按順序測試的,因此可能必須等待第一個慢速插槽在稍後的快速插槽之前進行測試一)。或者更改您的初始打開命令以指定新的更快--key-slot編號。

luksChangeKey命令可以結合這兩個步驟,添加一個新密鑰然後刪除舊密鑰(即使 v1.7 手冊頁沒有具體說明它可以使用--iter-time,顯然它可以):

cryptsetup -v luksChangeKey --iter-time 1000 <device>

現在有多慢?

測試解密/打開設備需要多長時間:

cryptsetup -v luksOpen --test-passphrase <device>

或者使用以下選項測試特定的鍵槽--key-slot

cryptsetup -v luksOpen --test-passphrase --key-slot N <device>

使用該time命令可能會有所幫助,但也可以計算您的打字速度。

您可以使用luksDump命令查看目前的 key slotIterations:是什麼,這是一個非常慢的 slot 0 和一個非常快的 slot 1 的範例:

Key Slot 0: ENABLED
   Iterations:             4663017
   Salt:                   ......
   Key material offset:    8
   AF stripes:             4000
Key Slot 1: ENABLED
   Iterations:             1000
   Salt:                   ......
   Key material offset:    264
   AF stripes:             4000

來自man cryptsetup

  • --iter-time,-i

用於 PBKDF2 密碼片語處理的毫秒數。此選項僅與設置或更改密碼片語的 LUKS 操作相關,例如 luksFormat 或 luksAddKey。指定 0 作為參數選擇編譯的預設值。

  • luksChangeKey <device> [<new key file>]

更改現有密碼。要更改的密碼必須以互動方式或通過 –key-file 提供。新密碼可以以互動方式提供,也可以在作為位置參數給出的文件中提供。

如果指定了密鑰槽(通過 –key-slot),則必須給出該密鑰槽的密碼,並且新的密碼將覆蓋指定的密鑰槽。如果未指定密鑰槽並且仍有空閒密鑰槽,則在清除包含舊密碼片語的密鑰槽之前,新密碼將被放入空閒密鑰槽。如果沒有空閒的密鑰槽,則直接覆蓋帶有舊密碼的密鑰槽。

警告: 如果鍵槽被覆蓋,則此操作期間的媒體故障可能會導致在擦除舊密碼後覆蓋失敗,並使 LUKS 容器無法訪問。

這不是密碼雜湊?

  • 啟動時間慢的原因有很多,可能與加密無關。

或者,如果實際的加密/解密本身太慢,則可能需要更改算法或密鑰大小,這將需要對所有內容進行解密和重新加密。有一些程序(或較新版本中的命令)可以就地執行此操作,希望不會失去任何內容,但是備份將不僅僅是一個好主意。

但在那種情況下,這不僅僅是一個漫長的初始等待,而且所有的讀寫都會慢一點。

您可以使用該cryptsetup -v benchmark命令查看一些速度測試,但*“注意:此基準測試僅使用記憶體且僅提供資訊。您無法從中直接預測實際儲存加密速度。”*

引用自:https://unix.stackexchange.com/questions/497746