首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android在使用PackageManager.GET_SIGNATURES时发出警告

Android在使用PackageManager.GET_SIGNATURES时发出警告
EN

Stack Overflow用户
提问于 2016-08-28 15:25:07
回答 1查看 6.1K关注 0票数 17

我需要获得包签名,目前我使用以下代码获得它:

代码语言:javascript
复制
Signature[] sigs = c.getPackageManager()
                        .getPackageInfo(c.getPackageName(),
                                        PackageManager.GET_SIGNATURES).signatures;

然而,Android给了我这个警告:

从getPackageInfo读取应用程序签名:如果没有正确验证,应用程序签名可能被利用;有关详细信息,请参阅问题说明。 不正确地验证应用程序签名可能会导致恶意应用程序向Play Store提交其真实证书和假证书的问题,并访问它不应该拥有的功能或信息,这是因为另一个应用程序只检查假证书,而忽略了其他应用程序。请确保验证此方法返回的所有签名。

在这种情况下验证签名意味着什么?我要在服务器上检查签名,以确保它们匹配--这就是它们的意思吗?

在本地测试中,它只输出一个负整数,而不是代码所包含的数组。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-06 11:46:47

跟踪弹出文本将导致Android的这个源代码片段

在同一个文件中,有一个一条线,它包含指向外部资源的链接。

进一步跟踪导致这份报告关于“假ID”漏洞。

对问题的描述

问题是,当Android构建信任链时,验证过程只比较“subject”,而不是将实际密钥与证书签名者的详细信息中提供的密钥进行比较。因此,攻击者可以修补信任链,并声称是由一方签署的,而没有实际签署。 由于这个错误,会生成错误的证书链,并且可能包含合法的证书,这些证书嵌入在APK中,但并没有用于对应用程序进行实际签名。

下面是承诺到Android的源代码,防止使用此漏洞。这意味着如果设备上有Android4.4,问题就不会发生。当运行较低的Android设备时,可能会造成危害。

票数 20
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39192844

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档