我正在尝试提高 Web 应用程序的安全性。该应用程序有一个管理站点,键盘记录器是我试图解决的一个问题。应用程序可以做一些可以阻止键盘记录器正常工作的事情吗?我读过关于击键干扰软件(对于每个用户击键,他们随机添加更多击键而不干扰用户输入),可以在 javascript 中完成类似的操作吗?
键盘记录器 Web 应用程序保护
信息安全
Web应用程序
键盘记录器
保护
2021-08-29 13:39:38
4个回答
许多应用程序通过使用复杂(且繁琐)的密码输入方法来阻止键盘记录器和间谍软件是徒劳的。没有一个对键盘记录器有效,许多实际上导致用户的安全性较低,因为它们使使用密码管理器变得困难。
处理这类事情的最佳方法是使用一次性密码。有几种方法可以解决,所以让我建议两种: TOTP ( RFC 6238 ) 可与许多软件验证器(例如 Google 验证器)一起使用,因此它既方便又便宜,而且可以免费使用。不过,它确实需要用户进行设置并拥有智能手机。
另一种方法是通过 SMS 发送一次性密码。这有点贵(因为您必须发送消息),但对用户来说也更容易(只需要手机而无需设置)。
如果您单独处理键盘记录器,那么可能会降低风险(例如使用屏幕键盘、2FA 或类似工具),但是如果攻击者能够在系统上安装键盘记录器,则很有可能(除了物理击键记录器)他们有权访问相关系统,因此可能能够规避您实施的任何其他保护措施(假设他们有这样做的动机)
例如,由于这是一个 Web 应用程序,假设您实现了 2FA,一旦用户通过身份验证,就会发出一个会话令牌,然后通常保持有效,直到发生空闲超时或用户明确注销。如果攻击者拥有对系统的特权访问权限,他们就有可能发出“保持活动”请求以防止空闲锁定并使用浏览器注入来阻止注销。
如果您担心用户从受感染的客户端访问特权系统,更好的解决方案是使用专用/锁定设备并限制对这些设备的访问。
如果您担心记录击键(手动密码输入)或复制/粘贴(密码管理器)的键盘记录器,那么您必须使用鼠标:
- 向用户显示一个虚拟键盘以输入密码。这确实不是非常用户友好,并且很难设置为全球使用(键盘布局的区域差异)。我仍然会让“不那么偏执”的用户按照他们习惯的方式输入密码。
或其他(外围)设备:
- 通过应用程序或短信进行双重身份验证。