【问题标题】:Security Concerns for Keyboard input键盘输入的安全问题
【发布时间】:2012-04-13 01:27:39
【问题描述】:

我的目标是找出 Android 设备上可能出现的不同安全问题。其中之一是键盘拦截

以下是我的发现

a) 如果我不使用第三方 IME(键盘),我确信没有应用程序可以截取我输入的键。

b)如果我使用第三方 IME 应用程序,该应用程序可以获取我输入的任何内容,并可能将其转发到其他应用程序/上传到网络等。

以上两点对无根手机和根手机都有效。

如果我使用标准键盘(Android或固件提供的),除非修改固件,否则无法拦截按键事件 我推荐的链接是OneTwo

如果我像在 Galaxy 选项卡 2 上那样插入外部键盘会发生什么。当我们在顶部的 Activity 上的 EditText 上使用此键盘键入时,是否可以保证没有其他人可以拦截按键(Rooted /无根电话且无需更改固件)?我希望 Android 文档here 在安全部分下给出的 IME 安全规则也适用于外部键盘。

我最近在 Market 上发现了 DoMobile ShareKeyboard 应用程序,它可以在 Android 设备上使用 Wifi/GPRS 通过电脑键盘进行输入。显然,用户使用的是第 3 方 IME,因此在安全是主要问题的情况下,它完全不安全。

如果我提到的几点有误,请纠正我。

【问题讨论】:

    标签: android root


    【解决方案1】:

    当我们在顶部的 Activity 上的 EditText 上使用此键盘键入时,是否可以保证没有其他人可以拦截按键(root/non-root 手机且无需更改固件)?

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

    【讨论】:

    • 操作系统不处理键盘事件的场景有哪些?如果设备未植根,则不会发生这种情况,先生,我说得对吗?
    • @AlokKulkarni:“在哪些情况下操作系统不会处理键盘事件?” -- 非标准键盘可能使用 IME 作为硬件和 Android 之间的桥梁,就像您在问题中引用的“DoMobile ShareKeyboard”应用程序一样。
    • 好的,谢谢。但由于我们不能强制输入 IME,因此它是用户的安全选择。也许在键盘代码中实现布局并使用 Textview 而不是 Edittext 来获取用户输入可能会起作用
    【解决方案2】:

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

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

    如果您的设备已植根,您根本没有机会保护您的隐私,使用 root 权限的应用程序将能够从最低级别读取您的密钥 - 例如 /dev/input/eventX 内核输入设备而不是事件对话关于阅读 Android 密钥调度程序,这也很容易。

    外接键盘与虚拟键盘没有区别,它的按键可以通过激活的 IME 应用程序截取。

    如果您的安全性对您很重要,请使用官方固件,不要对您的设备进行 root,并使用市场上经过验证且已考虑安全性的良好 IME 应用程序。

    【讨论】:

    • 我正在考虑实现我自己的键盘,就像这里给出的 github.com/rciovati/Android-KeyboardView-Example 一样。至少在无根设备的情况下,我将确保用户提供的输入将来自我的应用程序本身,而用户无法使用任何 IME
    猜你喜欢
    • 1970-01-01
    • 2013-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-08
    • 2016-12-23
    相关资源
    最近更新 更多