【问题标题】:Why Play Store requires same certificate while updating an app but App Store does not?为什么更新应用时 Play Store 需要相同的证书,而 App Store 不需要?
【发布时间】:2016-06-29 13:48:59
【问题描述】:

即使证书丢失并重新创建,Apple App Store 也允许向应用程序发布更新,但 Google Play Store 不允许这样做。

使用相同的捆绑 ID 可以将应用程序更新发布到 Apple App Store,因此可以在发布应用程序更新时使用新证书。

那么,为什么 Google Play 商店不允许呢?允许它是安全漏洞吗?还是 Google Play 商店夸大了安全性并不必要地要求相同的证书?

苹果应用商店allows it

但是 Google Play 商店does not allow it

【问题讨论】:

    标签: android ios iphone google-play app-store


    【解决方案1】:

    这与 Play 商店关系不大。出于安全原因,Android 不允许这样做。恶意软件作者会喜欢用注入恶意软件的替代品替换现有应用程序的能力。要求匹配的签名是 Android 阻止这种情况的方法之一。

    【讨论】:

      【解决方案2】:

      很简单,Apple 证书只能由帐户所有者(或获得访问权限的黑客)生成。此外,如果证书被吊销,所有者将收到一封关于此问题的电子邮件 => 这对安全来说不是大问题。

      对于 Android,任何对 Android 有一点了解的人都可以生成密钥库,找到应用程序包名称,然后,他/她可以将更新上传到您的应用程序 => 巨大的安全问题。

      另一方面,作为开发人员,您有责任生成这些密钥/证书并将它们交付给您的客户,并向您的客户指明它们非常重要,并且应该将它们存储在安全的地方。这就是我滚动的方式:D

      【讨论】:

      • 所以,我知道,只有 Apple 颁发签名证书,但对于 Android,开发人员可以生成签名证书。因此,由于 Apple 正在签署身份,我们会知道我们的证书是否被丢弃。但是,我们不会知道何时将新证书用于 Android。因此,Android 需要使用相同的证书来识别应用程序。
      • 那么,为什么 Play Store 不使用与 App Store 相同的方式并自行管理证书呢?
      • @lockedscope 你说的是对的,但是你要考虑到有两个不同的签名过程,所以可能还有其他隐藏的问题。另外,我认为 Android 正在使用密钥库 SHA1 和包名称之间的组合来通过不同的平台(例如 Google Play 和 Google Console)来识别您的应用程序。
      • @lockedscope 我不确定您在 Android 和 iOS 上开发了多少应用程序,但老实说,我喜欢 Android 对应用程序进行签名的方式。简单快捷。我总是将密钥库保存在 repo 中,或者通过 Eamil 将其发送给我的客户,并将该邮件标记为重要,因此我不会使用它。 iOS 签名程序,从我的角度来看,这很麻烦。
      • 所以,我不考虑证书签名过程的可用性。我想知道为什么 Google Play Store 不使用与 App Store 相同的方式,从而摆脱使用相同的证书来更新应用程序?
      猜你喜欢
      • 1970-01-01
      • 2021-07-08
      • 2015-04-09
      • 2015-05-14
      • 2020-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多