恶意应用可以在解密时访问密钥环中的数据吗?
在实践中(目前),是的,他们可以。 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