真的按照标题,在验证访问时可以做些什么来打败键/击键记录?
我刚刚发布了一个相关问题(how-to-store-and-verify-digits-chosen-at-random-from-a-pin-password),就从 PIN/密码中选择随机数字征求建议。还有哪些其他合理不显眼的方法?
任何和所有解决方案都表示赞赏。
真的按照标题,在验证访问时可以做些什么来打败键/击键记录?
我刚刚发布了一个相关问题(how-to-store-and-verify-digits-chosen-at-random-from-a-pin-password),就从 PIN/密码中选择随机数字征求建议。还有哪些其他合理不显眼的方法?
任何和所有解决方案都表示赞赏。
击败键盘记录器的一种解决方案是不在乎它们是否捕获了您键入的内容。
一次性密码(搜索:“OTP”)是一种解决方案。智能卡身份验证是另一个。
你可以有一个带有字母的可点击图像。不过,您的用户会很生气...
任何需要使用键盘的解决方案都不会欺骗基于硬件的键盘记录器。因此,要绕过这些,您只需要通过鼠标进行输入。但是可以通过在您自己的代码中添加一个键盘挂钩来停止基于软件的键盘记录程序,该挂钩捕获键并且不会调用挂钩列表中的下一个挂钩过程。但是如果使用不当,键盘钩子往往会触发防病毒软件,如果您在任何带有错误参数的动态库中使用它们,则会导致错误。
基本上,键盘记录器将使用 keyhook 来捕获击键。通过在恶意软件 keyhook 之上添加您自己的 keyhook,您将禁用键盘记录器。
然而,有一些键盘记录器隐藏在内核的更深处,所以你很快就会得到一个键盘记录器,它会再次绕过你的安全性。
不过,不要过分关注键盘记录器的危险。这只是黑客用来获取各种帐户信息的众多方法之一。更糟糕的是,您无法保护您的用户免受社交工程技巧的侵害。基本上,黑客获取帐户信息的最简单方法就是向受害者询问这些信息。通过虚假网站、虚假应用程序和各种其他技巧,他们可以收集您试图通过阻止键盘记录程序来保护的任何信息。但键盘记录器并不是最大的危险。
一个建议是使用可爱的小猫(或小狗)的图片供用户点击。你可以做的是使用一组 10 张图片,让用户选择其中的四张作为他们的“密码”。然后,每当用户需要输入他们的代码时,以任何随机顺序显示图片,这样黑客就无法使用它的位置。如果是 Web 应用程序,也可以给图片起一个随机名称,让服务器知道哪个是哪个。更复杂的是,您可以创建 10 组 10 张图片,其中每张图片显示一个对象,但从稍微不同的角度、不同的角度或不同的颜色显示。第 1 组是椅子,第 2 组是桌子,第 3 组是小猫,第 4 组是小狗,等等。用户只需记住:桌子、小猫、椅子、小狗。(或者小狗,椅子,椅子,桌子。或者小猫,小狗,小狗,
您可以只允许使用屏幕键盘输入密码。
或者您可以编写模块(例如在闪存上)用于手写(通过鼠标或 Stillus)密码识别。
How about a variation of standard password. For example you could have a list of words and have program leave out random letters from each word. In addition to that it would leave out one word from the list which user would have to remember and type it out.
If the words form a sentence, it would be easier or users to remember it but on the other hand creation of the sentence would be more difficult because you'd need to use words which can't be guessed from sentence's context.
Another variation of this could be to have program at random ask user to replace all letters i with 1 or a with 4 or to place say letter R after every third letter A or something similar.
Basically have a password which would be modified at random and have it instructions displayed to user how to modify the password.
Now that I think of it, I'm not sure how unobtrusive my ideas are...
假设只捕获键盘而不是鼠标输入,您可以乱序键入密码,用鼠标移动光标。
不过,我真的更喜欢一次性方法。
唯一真正的方法是适当的第二因素身份验证:无论是这个人是什么:指纹,虹膜扫描。或者他们拥有的东西:一次性密码列表/生成器;加密生成器。
我的银行的网上银行门户网站有一个很好的方式,我觉得它非常不引人注目。创建帐户时,您定义了一个 6 位数的 PIN(除了普通密码之外)。输入密码后,系统会要求您在 2 个随机位置输入 6 位 PIN 的 2 位数字。例如,如果您的 PIN 是 654321,它会要求您输入数字 2 和 5,然后您将单击 5 和 2(它有一个带有数字的小键盘可以单击)。即使您使用键盘输入数字,它仍然是安全的,因为攻击者不会知道您被要求输入哪些数字(除非他也捕获屏幕,可能使用暴风雨)。
所以,简短的回答:只要求密码/PIN 的某些部分,以随机顺序。让用户使用鼠标可以提高安全性。
另一个想法:如果您有 PIN(数字密码),请要求用户修改某些数字,例如“第 2 位加 3,第 4 位减 1”。