如何以可靠的方式检测击键记录器?


14

我一直在不信任的计算机(例如非技术朋友的计算机)上输入密码时遇到问题,尽管我通常可以避免这样做,但有时候我仍然需要使用它们。我主要担心的是按键记录器窃取了我的密码。

所以我的问题是-是否有可靠的方法来检测击键记录器?

我知道像KeyGhost这样的硬件按键记录器,但我对基于软件的记录器最感兴趣。


1
另请参见可靠的软件键盘记录程序检测?在服务器故障上:serverfault.com/questions/39445/…–
Arjan

Answers:


10

在将问题标题的重点更改为“如何以可靠的方式检测击键记录器?”之后,我在下面的大部分回答都无关紧要。简而言之,我认为您无法以可靠的方式检测击键记录器。有一些方法可以检测其中的一些,有一些限制其有效性的对策,也可以有一些绕过它们的方法,我在下面相当陈旧的答案中讨论了其中一些,但是没有可靠的方法可以检测到它们。阅读Wikipedia上有关密钥记录方法和对策的文章

这不是一个简单的问题。

软件按键记录

可以通过使用屏幕键盘或从基于屏幕的数据剪切和粘贴来绕过在按下和释放键时拾取键控代码的软件,但不适用于较低级别的软件(在某些情况下,操作系统必须将“模拟按键”输入应用程序以等待输入)。

通过使用不太可能成为键盘记录软件攻击目标的操作系统,可以进一步降低风险。

如果这确实很重要,并且硬件没有日志记录设备,则值得考虑是否使用硬件/网络所有者允许的已知干净操作系统的只读副本(例如,校验和的实时CD或DVD)和硬件。包含您需要的应​​用程序,并且您知道所需的设置参数(密码和数据可能位于安装在类似Unix的系统中的加密USB记忆棒上,不允许执行文件)。使用您自己的硬件/软件,遵循良好的安全做法,并定期从干净,可信赖的校验和媒体中进行重建是另一种方法。

建议的机制旨在降低在系统上安装按键记录软件的风险。如果键盘记录程序进入系统,则可能会采用强大的防火墙策略检测到试图通过网络将数据发送回其“所有者”的键盘记录程序,但这通常假设手动参与了防火墙过程(例如,调整系统以允许特定的应用程序使用特定的IP端口和地址)。最后,以及系统上的按键记录程序,如果数据是通过网络传输的,或者文件系统的物理完整性受到损害,则键入的某些内容可能是可见的。如何缓解这些问题超出了此问题的范围,但是在考虑应用程序和系统完整性时必须包括在内。但是,监视网络可以显示敏感数据是否正常传输,还有助于识别意外传输。

一次性密码,可能会遭到破坏的情况下快速更改密码,使用键盘记录软件检测器(扫描PC以寻找已知键盘记录软件签名的软件)也是可能的对策,但是所有对策都有缺点。

硬件和其他按键记录

尽管不在您的问题的直接范围内,但需要牢记这些。它们包括观察网络流量,在键盘和PC之间连接的设备,跨肩监听,摄像机,声学或电磁或振动监控(例如,请参阅TEMPEST措施)或检查RAM内容以获取信息(如果有人感兴趣)您输入的内容足够。这些检测范围从容易到不可能。

一般

Wikipedia上有一篇非常有用的文章,涉及键盘记录方法和对策,非常值得一读。


1
请记住,格式化USB驱动器NTFS或ext2 / 3/4而不是FAT32更加容易-可能更慢,但是它正确支持UNIX权限-因此您可以将FSTAB中的默认设置设置为no-exec。
卢卡斯·琼斯,

感谢您提供全面的答案,在理解了这些问题之后,我的解决方案是使用Pocket OS(例如SLAX)。
gacrux

2

随着Wikipedia进入,这不是一个容易的问题,到目前为止,“可靠”似乎遥不可及。 不过,有些人正在尝试一下(用“ 100%有效和可靠”的语言来完成,这使我可以用一大袋食盐来理解他们所说的一切)。


3
“每次成功的测试都有效。”
GalacticCowboy

2
百分之六十的时间,每次都能工作!
混乱

@chaos免费获取此反键盘记录器它的价格仅为 9.99美元!
Mateen Ulhaq,2011年

1

击败键盘记录器的一种方法是输入带有一些额外字符的密码,然后使用鼠标选择额外的字符并将其删除。由于按键记录器仅记录按键,因此它将得到无效的密码。


3
是的,但是您的密码仍然在那儿,只要有人查看键盘记录器捕获的文本,可能就不会花很长时间就能弄清楚。但是,您可以按随机顺序键入密码字符,然后用鼠标重新排列它们……这就是在其中散布一些额外的字符会很有用的地方。
David Z

1

不要输入字符。从浏览器或文本文件或从字符映射表复制它们(在Windows中为charmap.exe)。Charmap甚至可以让您排队几个字符,因此您不必一个接一个地做...如果您确定没有人在肩膀上冲浪。


-1

为了安全起见,我要做的就是使用有时超过70个字符的安全密码。然后,例如在Windows安装程序上,我将在ENTRY和RE ENTRY字段之间交替。

最重要的是,我将单击或向后箭头并插入字符(即,从不顺序输入密码(如果我担心安全性的话))

如果您担心按键记录,也可以在屏幕上键入。

我使用字母,数字和符号的组合,通常将它们分成若干块。然后,我为这些块分配该块中包含多少个字符的数字值,以实现并跟踪前面提到的单击和箭头化方法,因为这可能会引起混淆。抱歉,如果不清楚,我将根据需要澄清此部分。

因此,假设您将密码分为16个不同的部分(或一致的字符串长度)。我将这16个组件分成4行,然后从那里开始实现。另外,设置密码时,我没有像在任一密码输入字段中那样实现这4行的顺序。我认为这是可靠的安全性,对于任何一个能够推断出您的密码的人,如果可能的话,将花费大量的精力。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.