是什么保护Android AccountManager密码不被其他应用程序读取?

时间:2011-11-17 21:50:03

标签: android security accountmanager

我在写1)存储在一个的AccountManager用户名和密码的应用程序,和2)访问这些凭据独立的后台服务的应用程序登录到我的服务器,等玩这个的时候,我发现我”我可以从服务(app 2)调用AccountManager.getPassword(account)来访问我使用其他应用程序(app 1)添加到AccountManager的帐户类型。

由于这一点,我是从通过特定类型的所有账户进行迭代,并呼吁开始不知道从1停止任意的恶意应用程序),包括在清单中的字段有帐户管理权限,然后再用2) mAccountManger.getPassword(帐户)就可以了。我知道在安装过程中会弹出一个对话框请求使用的所有权限的对话框,但我认为我们不能指望普通用户拒绝某个应用,因为它会请求可疑权限。

有没有办法阻止在帐户类型上调用getPassword?有没有办法保护AccountManager中的帐户免受那些给自己很多帐户权限的应用程序的影响?

1 个答案:

答案 0 :(得分:9)

帐户数据保护基于发出请求的进程的Linux用户ID(UID)。 (请参阅指南中的Security and Permissions。)每个帐户都与帐户身份验证器(具有UID)相关联,并且调用getPassword(或其他几种方法)的流程必须与身份验证器具有相同的UID