前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >安卓应用安全指南 5.3.3 将内部账户添加到账户管理器 高级话题

安卓应用安全指南 5.3.3 将内部账户添加到账户管理器 高级话题

作者头像
ApacheCN_飞龙
发布2022-12-01 20:08:01
6340
发布2022-12-01 20:08:01
举报
文章被收录于专栏:信数据得永生信数据得永生

5.3.3 将内部账户添加到账户管理器 高级话题

原书:Android Application Secure Design/Secure Coding Guidebook 译者:飞龙 协议:CC BY-NC-SA 4.0

5.3.3.1 账户管理和权限的使用

要使用AccountManager类的每种方法,都需要在应用的AndroidManifest.xml中分别声明使用相应的权限。 表 5.3-1 显示了权限和方法的对应关系。

表 5.3-1 账户管理器的函数以及权限

账户管理器提供的函数

权限

方法

AUTHENTICATE_ACCOUNTS(只有由认证器的相同密钥签名的软件包才可以使用。)

getPassword()

getUserData()

addAccountExplicitly()

peekAuthToken()

setAuthToken()

setPassword()

setUserData()

renameAccount()

GET_ACCOUNTS

getAccounts()

getAccountsByType()

getAccountsByTypeAndFeatures()

addOnAccountsUpdatedListener()

hasFeatures()

MANAGE_ACCOUNTS

getAuthTokenByFeatures()

addAccount()

removeAccount()

clearPassword()

updateCredentials()

editProperties()

confirmCredentials()

USE_CREDENTIALS

getAuthToken()

blockingGetAuthToken()

MANAGE_ACCOUNTS或USE_CREDENTIALS

invalidateAuthToken()

在使用需要AUTHENTICATE_ACCOUNTS权限的方法组的情况下,存在软件包的签名密钥以及权限相关的限制。 具体来说,提供认证器的包的签名密钥,和使用方法的应用的包的签名密钥应该是相同的。 因此,在分发使用方法组的应用时,除了认证器之外,必须使用AUTHENTICATE_ACCOUNTS权限,并且应使用认证器的相同密钥进行签名。

在 Android Studio 的开发阶段,由于固定的调试密钥库可能会被某些 Android Studio 项目共享,开发人员可能只考虑权限而不考虑签名,来实现和测试帐户管理器。 特别是,对于对每个应用使用不同签名密钥的开发人员来说,因为这种限制,在选择用于应用的密钥时要非常小心。 此外,由于AccountManager获得的数据包含敏感信息,因此需要小心处理,来减少泄漏或未授权使用的风险。

5.3.3.2 在 Android 4.0.x 中,用户应用和认证器应用的签名密钥不同时发生的异常

认证令牌获取功能是由开发者密钥签发的用户应用所需的,它不同于认证器应用的签名密钥。通过显示 认证令牌许可证屏幕(GrantCredentialsPermissionActivity),AccountManager验证用户是否授予认证令牌的使用权。但是 Android 4.0.x 的 Android 框架中存在一个错误,只要AccountManager打开此屏幕,就会发生异常并且应用被强制关闭 。 (图5.3-3)。 错误的详细信息,请参阅 https://code.google.com/p/android/issues/detail?id=23421。 这个 bug 在 Android 4.1.x 及更高版本中无法找到。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-04-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 5.3.3 将内部账户添加到账户管理器 高级话题
    • 5.3.3.1 账户管理和权限的使用
      • 5.3.3.2 在 Android 4.0.x 中,用户应用和认证器应用的签名密钥不同时发生的异常
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档