Linux密码输入的安全模型

6 security password gui user-interface

每当 Windows 应用程序想要执行需要管理员权限的操作时,我的屏幕就会变黑并出现提示,询问我是否要授予管理员权限。我理解这种安全模型:它依赖于用户对键盘和鼠标的控制。特权属于可以控制输入的人。如果应用程序在安全提示出现时获得对输入的控制,那么它就获得了对管理员权限的控制,即使它不知道我的密码。

相比之下,在 Linux 上, sudo 命令是等效的。当应用程序请求权限时,它会提示我输入密码。因此,窃取输入不足以获得全部权限;应用程序必须窃取我的密码。但是,我不明白这个模型。似乎这个模型只是让窃取我的凭据变得容易,因为我不断地给出我的密码。是什么阻止恶意应用程序提供虚假提示并窃取我的密码,从而永远获得特权?

  1. 安全提示是否以某种方式绑定到请求它的应用程序?
  2. 如果一个应用程序能够冒充安全提示,或者冒充另一个应用程序发出安全提示,那么是否假定该应用程序已经完全控制了计算机并且无法通过学习我的密码来提升其权限?
  3. 如果我信任某个应用程序一次,那么该应用程序是否可以窃取我的密码?
  4. Linux(理论上)是否会阻止非 root 键盘记录器,或者即使我在合法的安全提示中输入密码,非 root 键盘记录器也能嗅探到我的密码?

我不明白是什么阻止恶意的非特权程序从管理员帐户中获取特权。安全模型可能只是假设管理员运行的所有程序都可以访问 root,如果他们愿意的话,并且管理员不能依赖 root/非 root 作为一个有意义的障碍。Windows 在实践中就是在这个前提下运行的。我不知道 Linux 是否试图做出任何额外的保证。

Jod*_*mon 2

我和 Wayland 一起读到有基础设施来禁止它,但现在它仍然是一个问题。

看看吧

xinput test-xi2
Run Code Online (Sandbox Code Playgroud)

我读到的关于这个问题的第一篇文章:

http://theinvisiblethings.blogspot.de/2011/04/linux-security-circus-on-gui-isolation.html

进一步深入的讨论:

http://lwn.net/Articles/517375/