Google Play Android应用程序的App签名密钥和上传签名密钥有什么区别?

4

我正在使用一个简单的TWA(支持PWA的网站打包成本地Android应用程序)和 bubblewrap。为了使这个TWA正常工作,它必须有一个包含签名密钥的sha256指纹的assetlinks.json文件上传到web服务器。

似乎有两个用于签名的密钥:应用程序密钥和上传密钥。

  1. 如果通过Play Store发布应用程序,则TWA希望看到应用程序密钥
  2. 如果只是安装本地apk文件,则期望上传密钥

此外,不同的密钥工具将输出不同的密钥:

  1. Bubblewrap似乎使用应用程序密钥:bubblewrap/bubblewrap指纹generateAssetLinks
  2. Google Play也使用应用程序密钥。
  3. keytool似乎使用上传密钥:keytool-printcert-jarfile app-release-signed.apk|grep SHA256
现在我在想,我是否误解了什么。为什么本地apk文件期望的密钥与Play商店发布的不同?将两个shasum都上传到assetlinks.json文件中以允许Play商店发布和本地测试是否安全?
1个回答

4
所以,我花了一些时间来理解整个过程,并找到正确的文档。
  1. 强烈建议阅读文档
  2. 应用密钥用于Google Play发布,上传密钥用于本地apk文件。
  3. 将两者都集成到assetlinks.json文件中是安全的,文档中也有解释。
  4. 对于同时进行本地测试和Google Play发布,需要在文件中列出两个密钥
  5. 这些密钥可以从问题中提到的3个位置获取。
  6. 可能需要一些时间才能使您的设备识别该文件的更新。 它被谷歌缓存。

还有一个来自谷歌开发人员的有趣评论:

在资产链接文件中拥有两个指纹绝对更方便,这也是我个人所做的。 但是,我的TWA是用于测试的,因此我不太关心安全方面的影响。

缺点是你增加了攻击面 - 如果有人窃取了你的调试密钥(它可能未经加密,带有一些默认密码在您的计算机上),他们可以声称与您的网站相关联(并拦截来自其应用程序的链接)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接