Xterm 不允许隔离,除非您将其设置为在另一个 tty 中以另一个用户身份运行。Gksu 和 Gksudo 根本不提供任何形式的隔离。这同样适用于所有其他密码输入实用程序,如 kdesu/kdesudo、pinentry 等。它们是常规窗口,就像任何其他窗口一样。
Wayland 支持隔离 Windows,但仅适用于支持该协议的应用程序,Truecrypt 不支持。所有不支持 Wayland 的程序都回退到旧的 X11 协议,Wayland 作为回退支持该协议,但它不能为其提供任何窗口隔离。结果,将它与一堆遗留应用程序一起使用并不能为您提供额外的安全性,并且您的 Truecrypt 密码仍然可以被窥探。
我能想到两种可行的解决方案:
- 以新用户身份在新的 tty 中打开一个新的 Xorg 会话,并在那里打开 Truecrypt。
- 在没有运行 Xorg 的情况下进入 tty,以 root 身份登录,然后使用命令行挂载 Truecrypt。
请注意,除非您非常小心,否则如果攻击者可以访问您的普通用户,他们几乎总能获得这样的密码。例如,如果您曾经使用 sudo 或 su 获取 root 权限,他们可以对其进行键盘记录。如果您不在 X 会话中执行此操作,他们仍然可以使用函数、别名、Shell 上的LD_PRELOAD等来劫持它。如果您曾经是 root 并且使用 su 将自己降级为普通用户,那么 root 可以被劫持带有tty 后推攻击. 如果您尝试切换到不同的 tty 以 root 身份登录,那么您可能被泄露的普通用户在您以 root 或安全用户身份输入时无法嗅探您的 Truecrypt 密码,您实际上可能会看到一个假的登录控制台,您给它你的root密码,而不是agetty(或logind)。减轻这种情况的唯一方法是记住每次切换到新 tty 以 root 身份登录时都使用SAK 组合。所以你看,有很多事情你必须记住,你只需要滑一次,让一个可以访问你的普通用户的坚定的攻击者获取你的 Truecrypt 密码。
我的个人安全程序非常强大,但如果您非常面向 GUI,可能会有点累。我几乎在终端中做所有事情,而不使用 Xorg。我使用 grsecurity 和 RBAC 来隔离单个程序,因此如果它们被劫持,它们就不会弄乱我的 $HOME 或任何配置文件,我总是在切换到不同的 tty 登录时使用 SAK,当我确实需要使用 Xorg 时,我一次只打开一两个程序。我只需要使用浏览器、我在 Wine 下运行的一些视频游戏以及用于照片编辑的 Gimp。Xorg 在不同的用户下运行。这可能看起来有些过分,但这几乎是最低限度的保证,如果我的普通用户受到威胁,那么除了我滑倒并忘记使用 SAK 或使用 su 获取 root 而不是以 root 身份登录新的 tty ,