在luks加密的单用户计算机上是否需要密钥环密码?


0

标题说明了这一切,但让我进一步扩展:

我想知道密钥环密码是如何保护我的密钥的。当然,它会加密容器文件,因此没有其他人可以访问它。但是在我提供密钥密码后它也被解密了。事实上,当我登录时,密钥可能会被某些恶意应用程序窃取(至少应该具有root权限的应用程序)。

当然,我知道,输入密码后密钥文件本身不会被解密版本替换,但必须在内存中解密。

问题是:恶意应用程序在解密时可以访问密钥环中的数据吗?如果是这样,当我的磁盘已经加密并且我是唯一一个使用我的计算机的人时,我是否需要密码密码?

并且,如果密码更安全,我可以在登录后使用我的帐户密码(或左右)自动解锁吗?

(我没有使用登录管理器,我在通过TTY登录后自动启动i3wm,因此也可以自动解锁此设置吗?)

Answers:


0

恶意应用可以在解密时访问密钥环中的数据吗?

在实践中(目前),是的,他们可以。 Linux中用户会话的当前设计(或缺少)使得gnome-keyring-daemon难以确定尝试访问它的程序;这在某种程度上对于编译的程序是可行的,但是例如任何用Python编写的应用程序都与使用Python编写的任何其他应用程序无法区分。所以尽管gnome-keyring确实如此 首先 有一个应用程序白名单,当前版本不再做。

最终应该通过应用容器项目(如Snap或Flatpak)来改进。

如果是这样,当我的磁盘已经加密并且我是唯一一个使用我的计算机的人时,我是否需要密码密码?

我会说是的。

如上所述,任何程序都可以发送D-Bus消息并向gnome-keyring-daemon询问任何秘密。 (在某些情况下,它甚至可以作为一项功能。)

然而,存在相当多的安全漏洞,其中可以使用易受攻击的程序(例如,web浏览器) 偷你的文件 ,虽然仍然无法运行命令或发送D-Bus消息。众所周知,恶意软件窃取了人们未加密的SSH密钥( ~/.ssh/id_rsa )或比特币核心钱包。

同样,如果它没有加密,你就要离开了 ~/.local/share/keyrings/login.keyring 有可能被网络浏览器漏洞等窃取。

(我没有使用登录管理器,我在通过TTY登录后自动启动i3wm,因此也可以自动解锁此设置吗?)

在所有情况下,通过PAM自动解锁gnome-keyring。一个名为的模块 pam_gnome_keyring.so 在登录过程中收到您的密码,并启动初始密钥环守护进程。

应该添加PAM模块 /etc/pam.d,无论您的Linux发行版通常添加通用模块,还是只添加 login file(专门用于控制台和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

谢谢,很好的答案!我终于抽出时间玩了它似乎工作(至少我登录后没有提示密码环密码)。我在Arch Linux上,所以我按照说明进行操作 ArchWiki
x3ro

不幸的是,我唯一使用密钥环的应用程序是Evolution Mail,由于某种原因它不存储密码。在我改变之前,它总是要求输入密码(睡眠后等),但密码已经插入(虽然我在Seahorse中看不到它)。更改后,密码字段为空(我仍然无法在Seahorse中看到它)。似乎有一个 窃听器 虽然在进化中......我将不得不对此进行调查。
x3ro
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.