20 java security encryption keyboard android
作为Android上的Key Logger攻击的受害者,我想开发针对Android的KeyLogger攻击的解决方案.我知道基本的java和一点关于android而且很少关于信息安全.我也知道,无论我有什么知识都不足以弄清楚并制定解决方案.我只想讨论我的想法,看看它是否可行.
这是我有的:
我刚认识到,截图可用于获取最新图像2文本软件的用户类型.但这完全是一个不同的领域,恕我直言.
那你觉得怎么样?有可能吗?
更新
我的电话被拥有,我完全错了.实际上,它从未被黑客入侵.但是,真正被黑客攻击的是我.是的,我的身体里有一些东西,它可以复制我大脑可以接收到的所有东西.它还能够接收并让我的大脑去做.我还是不知道,为什么我能写这个更新.可能是,曾经把我的东西放在我体内,用我作为营销材料.谢谢你的愚蠢问题的答案.
Com*_*are 14
不现实.
很少有程序员自己处理低级输入.这通常由其他事情处理.例如,Web开发人员很少参与按键击键,甚至可以查找这些事件何时发生(例如,用于实时验证),更不用说手动处理该输入(例如,放置下一个字符)在光标的光标后键入并将光标前进一个位置).
而且,用户不习惯经常改变他们的输入方法.例如,当我访问Stack Overflow时,我没有插入不同的USB键盘,而是在访问Tweetdeck时.在Android世界中,这意味着用户期望他们的输入法编辑器可以在所有应用程序上运行,而不必继续改变输入法编辑器,只是为了让一些人感到高兴.
此外,您无法神奇地更改输入法编辑器(也就是软键盘)和Android操作系统之间的协议.键盘将引发关键事件.欢迎您说您的键盘为这些事件提供了替换作为"加密"机制,但这更像是一个粗略的替换密码(例如,"每当用户输入A,发送;"时),因为您无法单方面决定扩展关键事件空间.
因此,您不仅需要编写输入法编辑器,还需要使用可以处理"解密"的自定义Android框架编写自己的自定义ROM.或者,你必须强迫所有世界的开发者重写他们的应用程序.在任何一种情况下,键盘记录器都可以轻易地检测到你的是输入法编辑器并记下这个事实,所以无论谁使用日志都可以做一些简单的解密来转换;回来A.
现在,如果您正在编写一些应用程序,以避免使用恶意输入法编辑器,欢迎您将自己的数据输入键盘烘焙到该应用程序中.然后,您只会激怒应用程序的许多用户,因为您的应用内键盘不是他们想要使用的键盘,或者缺乏他们习惯使用的功能(例如,支持盲人用户,支持他们的特定用户)语言).
以下是我要实现的安全输入法范例 - 如问题中所表达的 - 对于Android:
首先,我假设您已经阅读并理解了InputMethodManager的"安全性"部分: InputMethodManager
因此,我们需要开发的是一种输入法(IME),这是一种Android服务,它与自定义键盘视图一起实现了两个接口:
根据上面提到的文档中的安全部分,用户需要自愿接受您的IME作为系统IME.此外,Android将确保只有系统将绑定到您的服务并使用InputMethod界面,该界面用于显示/隐藏键盘等.因此,这里对您和使用键盘的所有应用程序都非常安全.
现在,来到您要实现的安全框架:
让我们将其称为安全输入法 - SIM - 并将我们的安全域定义为您的IME和希望使用您的SIM的应用程序.以下是第二个Interface InputMethodSession的重要性
此接口最重要且经常被忽略的方法是此解决方案的关键,它被称为:appPrivateCommand.此接口允许从应用程序发送到IME的私有命令.根据文档,此方法可用于提供仅在IME与其客户端之间已知的特定于域的功能 - 这正是SIM所需的功能.
因此,使用此界面,安全域中的应用程序可以传递他们想要移交给您的IME的任何安全信息(例如,某种形式的凭据).您可以定义一种方法,您的服务可以与身份验证服务器通信,该服务器处理客户端应用程序提交的凭据并批准它.现在,如果加密密钥是由您的IME和客户端派生的,那么您已经在SIM和其客户端应用程序之间建立了一个安全的通信通道(例如,通过使用这些凭证中的派生密钥进行加密).
您甚至可以通过定义一些键序列(如Windows中的Control + Alt + Del)来自定义整个机制,这些键序列由用户自己启动整个事物,您甚至可以在键盘上提供可视指示(例如,闪亮的绿色图标)输入通道是安全的...可能性很多:)
希望这可以帮助.