【问题标题】:What is difference between signature and certificate in apk file?apk文件中的签名和证书有什么区别?
【发布时间】:2018-02-27 19:27:31
【问题描述】:

我知道证书包含公钥和一些额外信息(我希望如此),但它是否保存在 apk 文件中?它是文件还是文本或什么?什么是签名? 在 Android 中,我们可以轻松读取哪一个来验证应用程序?

【问题讨论】:

    标签: android certificate apk signature


    【解决方案1】:

    证书和密钥库

    公钥证书,也称为数字证书或身份证书,包含公钥/私钥对的公钥,以及标识密钥所有者的其他一些元数据(例如,姓名和地点)。证书的所有者持有相应的私钥。

    当您对 APK 进行签名时,签名工具会将公钥证书附加到 APK。公钥证书充当“指纹”,将 APK 与您和您的相应私钥唯一关联。这有助于 Android 确保将来对您的 APK 的任何更新都是真实的并且来自原作者。用于创建此证书的密钥称为应用签名密钥。

    密钥库是包含一个或多个私钥的二进制文件。

    每个应用程序必须在其整个生命周期内使用相同的证书,以便用户能够安装新版本作为应用程序的更新。如需详细了解在所有应用的整个生命周期内使用相同证书的好处,请参阅下面的签名注意事项。

    签署您的调试版本

    从 IDE 运行或调试您的项目时,Android Studio 会自动使用由 Android SDK 工具生成的调试证书对您的 APK 进行签名。首次在 Android Studio 中运行或调试项目时,IDE 会自动在 $HOME/.android/debug.keystore 中创建调试密钥库和证书,并设置密钥库和密钥密码。

    由于调试证书是由构建工具创建的,并且在设计上不安全,因此大多数应用商店(包括 Google Play 商店)将不接受使用调试证书签名的 APK 进行发布。

    Android Studio 会自动将您的调试签名信息存储在签名配置中,因此您不必在每次调试时都输入它。签名配置是一个对象,包含对 APK 进行签名的所有必要信息,包括密钥库位置、密钥库密码、密钥名称和密钥密码。您不能直接编辑调试签名配置,但您可以配置如何对发布版本进行签名。

    有关如何构建和运行用于调试的应用程序的更多信息,

    【讨论】:

    • 感谢您的解释。请把你的最后一句话说完好吗? :)
    【解决方案2】:

    当您编译您的APK 时,最后的步骤之一是签署您的APK。实际上它正在添加3个小文件。您可以将任何APK 重命名为ZIP,解压缩它,您将找到目录META-INF - 它是您的签名信息。

    MANIFEST.MFCERT.SF 非常相似,包含文件列表及其 sha1/sha256 哈希和(一个用于文件,第二个仅用于第一个文件的条目)和 CERT.RSAx509 证书你的公钥。

    【讨论】:

    • Cert.rsa 包含证书?什么是签名?安装应用时,Android会检查应用签名,对吧?
    • “实际上是添加了 3 个小文件”这句话并不能准确描述签署 APK 的含义。当一个 APK 被签名时,它的内容是用私钥加密的,并且可以用公钥(包含在 apk 中)解密。更多信息:source.android.com/security/apksigningen.wikipedia.org/wiki/Digital_signature
    【解决方案3】:

    据我所知(我对 android 开发相当陌生),您使用证书签署您的 apk。如果我错了,请有人纠正我。

    以下是一些附加信息: https://source.android.com/security/apksigning/v2 https://developer.android.com/studio/publish/app-signing.html

    此外,如果您想通过 google play 商店发布,请务必了解以下信息: The apk must be signed with the same certificates as the previous version

    【讨论】:

      猜你喜欢
      • 2010-11-28
      • 2019-12-11
      • 2017-10-24
      • 2011-02-22
      • 2014-03-16
      • 2015-10-19
      • 2011-03-08
      • 2017-12-15
      • 1970-01-01
      相关资源
      最近更新 更多