操作系统是否具有安全文本输入功能?

Do operating systems have facilities for secure text input?

我想知道是否有一种方法可以确保您在程序中键入的文本对任何其他程序都不可见(显然 OS 除外)。我知道有些键盘记录器会做一些事情,比如挂钩到 OS 来规避用户空间键盘记录器预防方法(例如 https://code.google.com/p/logkext/)。

是否可以确保完全私密的文本输入,禁止硬件键盘记录器?

不是真的。除了进行键盘记录的物理适配器外,您将无法在任何 OS 中完全阻止内核-space 键盘记录器。您可以在内核和应用程序之间引入某种信任,但无法完全防止应用程序级别的欺骗信任或某些恶意内核级别代码(例如设备驱动程序)读取输入并将其传递.

我想不同的操作系统对恶意代码(或潜在的恶意代码)有不同的保护措施,但总有一些方法可以绕过这些保护措施以允许内核级执行。考虑安装驱动程序时收到的警告,并确保它们来自可信来源等。

对于特定于应用程序的保护,您可能会采取其他策略,例如确保各种驱动程序由正确的可信来源签名,但您可能不会比 OS 做得更好。最后,当愚蠢的用户使用提升的权限安装他们不理解的东西时,他们可以阻止所有这一切。

我认为这真正有效的唯一方法是使用加密保护的静态内核和应用程序代码的嵌入式系统 - 换句话说,OS 不允许加载任何外部代码,这通常不会在日常计算中有用(但在许多嵌入式和其他敏感系统中很有用)。即使那样,也可能需要考虑固件责任,但甚至可以正确锁定固件数据——尽管如此,足够聪明和足够坚持的人如果可以物理访问设备,就会找到解决方法,如果你为外部代码执行留出哪怕是最小的空隙,即使没有物理访问设备,他们也会得到它。研究方程组 (http://arstechnica.com/security/2015/02/how-omnipotent-hackers-tied-to-the-nsa-hid-for-14-years-and-were-found-at-last/) 作为示例。