Android13 GMS相关RKP流程简述

2024-04-13 1670阅读

远程密钥配置 (RKP) 包括一种新型密钥管理,可将配置过程从工厂内配置转移到无线配置。这是通过将工厂内公钥提取和无线证书配置与短期证书相结合来完成的。作为 Android 认证基础设施的一部分,RKP 加强了 Android 信任链的安全性,并提高了发生漏洞时设备信任的可恢复性。

对于需要支持RKP的项目,如果在认证时未支持,会导致GTS fail

arm64-v8a GtsGmscoreHostTestCases
TestResultDetails
com.google.android.gts.security.AttestationRootHostTest#testEcAttestationChainRemProvLengthTee

fail

java.lang.AssertionError: on-device tests failed:

com.google.android.gts.security.AttestationRootHostTest#testRsaAttestationChainRemProvLengthTee

fail

java.lang.AssertionError: on-device tests failed:

armeabi-v7a GtsGmscoreHostTestCases
TestResultDetails
com.google.android.gts.security.AttestationRootHostTest#testEcAttestationChainRemProvLengthTee

fail

java.lang.AssertionError: on-device tests failed:

com.google.android.gts.security.AttestationRootHostTest#testRsaAttestationChainRemProvLengthTee

fail

java.lang.AssertionError: on-device tests failed:

所以基于认证需求,需要在项目开始时,向Google申请RKP。

1. 需要mada所属公司开通android-partner-api@mada公司邮箱地址,并使用该邮箱创建google账号。后续需要使用这个邮箱作为账户名,登录GCP,管理RKP项目。

完整步骤:

https://docs.partner.android.com/gms/building/integrating/att-keys/Setting-Up-Partner-API?hl=zh-cn

2. 在GCP上的项目,需要和公司ID绑定,公司ID是向Google提交项目的账号,和实验室有关。如果一个公司有多个合作的3pl实验室,则会有多个公司ID,eg.mada公司名-3pl实验室名。后续上传json时,GCP上的project需要和company id绑定,所以针对不同的company id,需要创建不同的GCP project。公司ID可以在APA上查询到(https://partner.android.com/approvals/)

Android13 GMS相关RKP流程简述

Android13 GMS相关RKP流程简述

3. 根据上面链接步骤创建OAuth2 凭证和服务帐户凭据,创建过程中生成的凭证文件务必保存好,后续上传json需要用到。

4. json的生成和上传

完整步骤:

https://docs.partner.android.com/gms/building/integrating/att-keys/rkp?hl=zh-cn#dev-best-practices

我的项目使用豆荚的写号方案,json由工具直接提取。我司只需要按照Google的脚本上传即可。

我司选择链接中方法2上传json

选项 2:将device_info_uploader.py与 GCP 服务帐户结合使用

使用csrs.json文件和您在Service Account Credentials中下载的my-project-0000000000-ffffffffffff.json密钥文件运行device_info_uploader.py脚本。示例命令如下所示:

./device_info_uploader.py --credentials-keyfile /secure/storage/my-project-0000000000-ffffffffffff.json --json-csr csrs.json --company-id COMPANY_ID 

命令说明, 

device_info_uploader.py是从google网站上直接下载的脚本

/secure/storage/my-project-0000000000-ffffffffffff.json是创建GCP项目时生成的秘钥

csrs.json是从写key后的设备中提取的json文件

COMPANY_ID是前面提到的公司ID

如果账号一切正常,配置正常,网络正常,GCP API也正常启用,直接上传json时会报这个错

公司 ID 的用户权限被拒绝

当当前用户没有上传指定公司 ID 的 CSR 的必要权限时,会出现此错误。

消息:此 CSR 未上传。不允许用户 {USER} 上传公司 ID {COMPANY_ID} 的设备信息。请提交错误或联系 TAM 以获得权​​限。

代码:7(权限被拒绝)403 禁止

这是由于GCP项目尚未和公司ID绑定,最快的方法是联系TAM帮忙绑定权限。绑定后,即可正常上传json了。

其他报错参考:

https://docs.partner.android.com/gms/building/integrating/att-keys/rkp-errors?hl=zh-cn 

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]