Operating system 操作系统是否有用于安全文本输入的设施?

Operating system 操作系统是否有用于安全文本输入的设施?,operating-system,keylogger,Operating System,Keylogger,我想知道是否有一种方法可以确保您输入到程序中的文本不会被任何其他程序(除了操作系统)看到。我知道有些键盘记录者会做一些事情,比如挂接到操作系统中,以绕过用户空间键盘记录者预防方法(例如) 除了硬件密钥记录器,是否可以确保完全私有的文本输入?不太可能。如果排除一个进行键记录的物理适配器,您将无法在任何操作系统中完全阻止内核空间键记录程序。您可以在内核和应用程序之间引入某种信任,但无法完全防止在应用程序级别或某些恶意内核级别代码(如设备驱动程序)读取输入并传递该输入 我可以想象不同的操作系统对恶意代

我想知道是否有一种方法可以确保您输入到程序中的文本不会被任何其他程序(除了操作系统)看到。我知道有些键盘记录者会做一些事情,比如挂接到操作系统中,以绕过用户空间键盘记录者预防方法(例如)


除了硬件密钥记录器,是否可以确保完全私有的文本输入?

不太可能。如果排除一个进行键记录的物理适配器,您将无法在任何操作系统中完全阻止内核空间键记录程序。您可以在内核和应用程序之间引入某种信任,但无法完全防止在应用程序级别或某些恶意内核级别代码(如设备驱动程序)读取输入并传递该输入

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

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


我认为这种方法真正有效的唯一方法是一个具有加密安全的静态内核和应用程序代码的嵌入式系统——换句话说,一个不允许加载任何外来代码的操作系统,这在日常计算中通常不会有用(但在许多嵌入式和其他敏感系统中很有用)。即使这样,也有可能要考虑固件的责任,但也有可能正确地锁定固件数据——即使如此,即使有足够的智能和持久性的人也会找到一种方法,如果他们对设备有物理访问,并且即使你留下最小的外码执行,即使没有对设备的物理访问,他们也能得到它。以等式组()为例进行研究。

操作系统至少在理论上可以提供这样的功能,对吗?即使是像驱动程序这样接近内核的东西也可以防止被篡改的东西。完全防止篡改的唯一方法是在内核和用户级别上使用加密保护的完全静态代码——想想一个操作系统和应用程序代码无法修改的嵌入式系统,而且操作系统是硬编码的,只能与不可修改的应用程序一起工作;参见本文的示例