微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Android 开发者如何验证通过 Play 商店交付的应用的完整性?

如何解决Android 开发者如何验证通过 Play 商店交付的应用的完整性?

请注意,这与 What Stops Google From Modifying Our APKs That It Signs Via the App Signing Service? 不同 以上只是询问是什么阻止了谷歌修改应用程序 - 答案是“没有”。 我的问题是:鉴于 Google 没有提供保证完整性的流程,开发者可以(自行)采取哪些措施来为自己提供验证手段?

背景:

当开发者将应用作为 APK 文件发布到 Play 商店时,开发者会在上传前对 APK 进行签名。此签名可用于验证用户从 Play 商店下载的 APK 是否由开发人员构建,并且自开发人员构建以来没有以任何方式进行更改。开发者还可以发布 APK 文件的哈希/校验和以验证文件完整性。

developer generates and signs APK,and Play Store delivers that file unaltered to user

引用 Android documentation

如果您允许某人使用您的密钥,或者如果您离开您的密钥库 和密码位于不安全的位置,以便第三方可以 找到并使用它们、您的创作身份和用户的信任 受到损害。

如果第三方设法在您不知情的情况下拿走您的钥匙 或许可,该人可以签署和分发应用程序 恶意替换您的正版应用程序或损坏它们。这样的人 还可以在您的身份下签署和分发攻击的应用程序 其他应用或系统本身,或损坏或窃取用户数据。

很明显,开发人员不允许第三方访问他们的私人签名密钥是非常重要的。

但是,当开发者使用 Android App Bundle 格式 (aab) 将应用发布到 Play 商店时,用户下载的文件不是由开发者生成和签名的,而是由 Play 商店生成的。

developer uploads app bundle to Play Store,then Play Store generated and signs different APKs for different devices

在此模型中,签名和哈希都不能用于验证应用是否未经修改。 Play 商店理论上可以添加/删除/更改开发者提供的文件,并针对不同的更改针对个人用户

Play 商店已宣布,自 2021 年 8 月起,所有新应用都必须使用 AAB 交付格式。 一旦此政策到位,开发者可以使用哪些替代方法来对其发布的应用程序的完整性进行问责和验证?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。