Linux密码输入的安全模型

Linux密码输入的安全模型

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

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

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

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

答案1

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

看看吧

xinput test-xi2

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

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

进一步深入的讨论:

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

相关内容