2012-03-29 217 views
0

我的目标,找出可以在Android设备上他们。一是出现不同的安全顾虑安全问题是键盘拦截键盘输入

以下是我的发现

a)如果我不使用第三方输入法(键盘),我相信没有应用程序可以拦截我输入的密钥。

B)如果我使用的是第三方IME的应用程序,这个程序能得到什么我已经输入,并且可以将其转发给其他一些应用程序/上传至网络等

上述两个点是有效的一个非根深蒂固的电话。

如果我使用的是标准键盘(Android或通过固件提供),这是不可能截获键盘事件,除非固件修改 链接我审阅的OneTwo

如果我插上会发生什么在外接键盘上,就像我们在Galaxy选项卡上执行的操作一样。2.当我们在顶部的Activity上的EditText上使用此键盘进行键入时,可以确保没有其他人可以拦截按键(Rooted/Non-rooted phones,并且没有固件更改) ?我希望Security Section下的Android文档here中给出的IME安全规则也适用于外部键盘。

我最近在Market上找到了DoMobile ShareKeyboard应用程序,它可以通过计算机键盘在Android设备上使用Wifi/GPRS进行输入。显然,用户在使用第三方IME时,在安全性是主要问题的情况下,它完全不安全。

如果我在提到的问题上错了,请纠正我。

回答

1

当我们在顶部的Activity上的EditText上使用此键盘进行键入时,是否保证没有其他人可以拦截按键(Rooted/Non-rooted phones并且没有固件更改)?

是的,如果操作系统是处理键盘的操作系统。

+0

什么在哪里OS将无法处理的键盘事件的场景?这不会发生在设备不扎根的情况下,我是正确的先生? – 2012-03-29 13:57:26

+0

@AlokKulkarni:“什么在哪里OS将无法处理的键盘事件的方案是什么?” - 非标准键盘可能会使用IME作为硬件和Android之间的桥梁,就像您在问题中引用的“DoMobile ShareKeyboard”应用程序一样。 – CommonsWare 2012-03-29 14:13:44

+0

好thanks.But因为我们不能强迫的输入法是用户首选的安全性。也许在键盘代码中实现布局,并使用Textview而不是Edittext来获取用户输入可能会工作 – 2012-03-29 14:38:57

1

a)你不能确定。您的设备附带的原始键盘是由您的设备制造商制造的,但可能会被修改,直到它被您的手中(由运营商,经销商,ROM模块或只是您的老板) - 它非常容易。根据我个人的经验,固件开发人员通常不记得从他们的IME应用中清除调试信息,并且所有的按键(甚至触摸输入)都被打印在记录器中。

b)实际上,这可能只是一个更安全的解决方案。你从谷歌市场得到它,所以你知道没有人触及它的方式。这些应用程序也是由专业人员构建IME的人员制作的,因此他们会更好地了解如何改进其安全性和性能。

如果你的设备是根植的,你根本没有机会保护你的隐私,那么使用root权限的应用程序将能够从最低级别读取你的密钥 - 比如/ dev/input/eventX内核输入设备不是事件谈论阅读Android密钥调度器也很容易。

外部键盘与虚拟键盘没有区别,其键可以通过活动的IME应用程序拦截。

如果您的安全对你很重要,使用官方固件,不铲除你的设备,并从其中已经安全考虑市场使用一个好的成熟的IME的应用程序。

+0

我正在考虑实现我自己的键盘,就像这里给出的那样https://github.com/rciovati/Android-KeyboardView-例子。至少在无根设备的情况下,我将确保用户提供的输入将来自我的应用程序本身,而用户无法使用任何IME – 2012-03-29 14:11:11