我在 luks 加密的單一使用者電腦上需要密鑰環密碼嗎?

我在 luks 加密的單一使用者電腦上需要密鑰環密碼嗎?

標題已經說明了一切,但讓我再擴展一下:

我想知道密鑰環密碼如何保護我的密鑰。當然,它會加密容器文件,因此其他人無法存取它。但在我提供密鑰環密碼後它也會被解密。因此,事實上,當我登入時,金鑰可能會被某些惡意應用程式竊取(至少具有 root 權限的應用程式應該能夠)。

當然,我知道,密鑰檔案本身在輸入密碼後並不會被替換為解密版本,而是必須在記憶體中解密。

問題是:惡意應用程式可以在解密時存取我的金鑰環中的資料嗎?如果是這樣,當我的磁碟已經經過 luks 加密並且我是唯一使用我的電腦的人時,我還需要為我的金鑰環設定密碼嗎?

而且,如果密碼更安全,是否可以在登入後使用我的帳戶密碼(或其他)自動解鎖?

(我沒有使用登入管理員,透過 TTY 登入後我會自動啟動 i3wm,所以此設定也可以自動解鎖嗎?)

答案1

惡意應用程式可以在解密時存取我的密鑰環中的資料嗎?

在實踐中(目前),是的,他們可以。 Linux 中使用者會話的目前設計(或缺乏)使得 gnome-keyring-daemon 很難確定哪個程式正在嘗試存取它;這在某種程度上對於已編譯的程式是可行的,但是例如用Python 編寫的任何應用程式與用Python 編寫的任何其他應用程式沒有什麼區別。所以雖然 gnome-keyring 做了首先有應用程式白名單,目前版本不再有。

最終,這應該透過 Snap 或 Flatpak 等應用程式容器專案來改進。

如果是這樣,當我的磁碟已經經過 luks 加密並且我是唯一使用我的電腦的人時,我還需要為我的金鑰環設定密碼嗎?

我會說是的。

如上所述,任何程式都可以發送 D-Bus 訊息並向 gnome-keyring-daemon 詢問任何秘密。 (在某些情況下,它甚至可以作為一項功能使用。)

然而,存在相當多的安全漏洞,其中易受攻擊的程式(例如網頁瀏覽器)可被用來竊取你的文件,儘管仍然無法運行命令或發送 D-Bus 訊息。眾所周知,惡意軟體會竊取人們未加密的 SSH 金鑰 ( ~/.ssh/id_rsa) 或 Bitcoin Core 錢包。

同樣,如果未加密,您將面臨~/.local/share/keyrings/login.keyring透過網頁瀏覽器漏洞等被盜的風險。

(我沒有使用登入管理員,透過 TTY 登入後我會自動啟動 i3wm,所以此設定也可以自動解鎖嗎?)

在所有情況下,gnome-keyring 的自動解鎖都是透過 PAM 完成的。pam_gnome_keyring.so作為登入程序的一部分,名為的模組接收您的密碼,並啟動初始金鑰環守護程式。

PAM 模組應新增至/etc/pam.dLinux 發行版通常新增通用模組的位置,或僅新增至該login檔案(專門用於控制台和 telnet 登入)。

在 auth 群組中(在 Debian 風格的「附加」區塊中common-auth;否則作為最後一個模組)它將在記憶體中儲存密碼:

[...]
auth optional pam_gnome_keyring.so only_if=login

在會話組中(同樣,Debian 的「附加」區塊,否則是最後一個模組)它使用儲存的密碼來啟動gnome 密鑰環守護程式:

[...]
session optional pam_gnome_keyring.so only_if=login auto_start

相關內容