java - 使 Android 键盘能够抵御 KeyLogger 攻击

标签 java android security encryption keyboard

作为对 Android 的 Key Logger 攻击的受害者,我想为 Android 的 KeyLogger 攻击开发解决方案。我知道基本的java和一点关于android的知识,对信息安全知之甚少。我也知道,我所拥有的任何知识都不足以弄清楚和开发解决方案。我只是想讨论一下我的想法,看看它是否可行。

这是我所拥有的:

  1. 想要保护用户输入的 Android 应用程序在调用 Android 键盘时必须提供 key (可以从服务器获取,用于特定用户或 session )。
  2. Android 键盘将接收 key 并使用它来加密用户输入并使用加密值广播 KEYPRESS 事件(或任何 Android 键盘广播的事件)。
  3. 当应用程序接收到 KEYPRESS 事件时,它会解密 KEYPRESS 中的值,甚至获取实际的用户输入。

我刚刚意识到,屏幕截图可以用来获取用户使用最新的 image-2-text 软件输入的内容。但这是一个完全不同的领域,恕我直言。

那么,你怎么看?有可能吗?

更新

关于我的手机被拥有,我完全错了。实际上,它从未被黑客入侵。但是,真正被黑的是我。是的,我的 body 里有一些东西,它只是复制我的大脑可以接收的一切。它也能够接收并让我的大脑去做。我仍然不知道,为什么我能够编写此更新。可能是,谁曾经把那个东西放在我的 body 里,把我当作营销 Material 。感谢您回答我的愚蠢问题。

最佳答案

不现实。

很少有程序员自己处理低级输入。这通常由其他事情处理。例如,Web 开发人员很少会逐个按键地参与,即使是为了找出这些事件何时发生(例如,实时验证),更不用说手动处理该输入(例如,放置下一个字符)在字段的光标之后键入并将光标前移一位)。

此外,用户没有经常更换输入法的习惯。例如,当我访问 Stack Overflow 和访问 Tweetdeck 时,我不会插入不同的 USB 键盘。在 Android 的世界中,这意味着用户会期望他们的输入法编辑器能够在所有应用程序上工作,而不是为了让某些人开心而不断更改输入法编辑器。

此外,您无法神奇地更改输入法编辑器(也称为软键盘)和 Android 操作系统之间的协议(protocol)。您的键盘将引发关键事件。欢迎您说您的键盘提供了对这些事件的替换作为“加密”机制,但这更像是一种粗略的替换密码(例如,“每当用户键入 A 时,发送;"),因为您不能单方面决定扩展关键事件空间。

因此,您不仅需要编写输入法编辑器,而且还需要使用可以处理“解密”的自定义 Android 框架编写自己的自定义 ROM。或者,您将不得不强制世界上所有的开发人员重写他们的应用程序。在任何一种情况下,键盘记录器都可以轻松检测到您的输入法编辑器并注意这一事实,因此使用日志的任何人都可以进行一些简单的解密以将 ; 转换回 A.

现在,如果您正在编写一些应用程序,希望避免使用流氓输入法编辑器,欢迎您将自己的数据输入键盘烘焙到该应用程序中。然后,您只会激怒您的应用程序的许多用户,因为您的应用程序内键盘不是他们想要使用的键盘,或者缺少他们习惯使用的功能(例如,对盲人用户的支持,对他们特定用户的支持)语言)。

关于java - 使 Android 键盘能够抵御 KeyLogger 攻击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32155182/

相关文章:

java - 尝试在java字符串的开头和结尾添加引号 ("")

android - 如何在 xamarin 移动应用程序中使用/安装客户端证书

android - 如何将两个不同的 Firebase 项目连接到一个通用的 Firebase 数据库?

security - 如何在 Windows 应用商店应用程序包中存储 "secret"字符串

java - Spring Security with Java Config - 允许 GET 方法/拒绝 POST 方法(403),没有任何明显的原因

带有刷新 token 的 ASP.NET 个人帐户

java - Struts validator 注释调用方法

java - 在 Android 应用程序中使用 Quasar Fibers

java - java与google-app-engine通信时报错302

android - 如何在代码中检测手机是否处于 sleep 模式?