Android SHA256 签名算法,证书具有 SHA1 算法

Android SHA256 signature algorythm with certificate having a SHA1 algorythm

我的问题有点跟进这个问题:

我正在使用 apksigner 签署一个 APK,并遵循上面的建议 post,我将 minSDK 提高到 18+。正如预期的那样,生成的 MANIFEST.MF 和 ANDROID.SF 摘要报告包中文件的 SHA-256 摘要哈希而不是 SHA-1 摘要哈希。

Android-minSDK18.SF摘录

Android-minSDK16.SF摘录

然而,使用 keytool -printcert -file "ANDROID - minSDK18.RSA"keytool -printcert -file "ANDROID - minSDK16.RSA" 打印 .RSA 证书给出了相同的结果,指定了 SHA1withRSA 签名算法。

这可能是因为 SHA1withRSA 是证书中嵌入的签名算法:

我的问题是,即使 APK 使用 SHA-256 算法签名,用于签署 APK 的证书的签名算法是否对 SHA-1 冲突问题有影响。

不,应用签名证书中的签名算法——证书颁发者用来签署证书的算法——对您的 Android 应用的安全性没有影响。原因是 Android 没有在应用程序签名证书中验证此加密签名。

有关更多背景信息,在应用签名证书中对 Android 重要的是:

  1. 它解析,
  2. 它声明其public密钥可用于数字签名,
  3. (仅在更新已安装的应用程序时)它与当前安装的应用程序版本的应用程序签名证书相同。