不少人都想知道关于如何检查手机上安装的应用程序是否是正版?的题,本文就对一起看手机版安卓下载这样的题进行讲解,希望各位支持!
作者|
译者|苏本鲁,编辑|
标题图片|CSDN视觉中国下载
生产|
译文如下
仔细查看Android手机上的应用程序。如何确保我的所有应用程序都是正版?换句话说,如何确保手机上的Instagram应用程序是正版的,而不是盗版或假冒的?
当您上网时,您可以了解该网站是否是正版的。对于网站来说,有证书、安全锁标记、完整的URL等,让您知道该网站是真实且安全的。那么,有没有相应的app可以帮助我们识别所有Android应用呢?
作为Android手机用户,如果您转到“设置/应用程序信息”,您将看到如下内容
无法直接验证您的申请的真实性。对于从GooglePlay商店安装的应用程序,您将看到指向GooglePlay商店中的应用程序地址的链接,但除此之外,您找不到任何其他信息或有效性证明。
那么您如何确定您的应用程序值得信赖呢?同时,Android应用程序如何验证与其工作或交换信息的同一设备上其他应用程序的真实性?
案是签署证书信息。
出于安全原因,Android上的所有应用程序在分发到AppStore之前都必须经过正式签名。
因此,在了解为什么您需要签署申请后。在本文中,我们将仔细研究以下题什么是应用程序签名?我怎样才能实现这个目标?您如何确保您的申请的真实性?
什么是应用程序签名?
应用程序签名是在操作系统深处实现的。
根据Android提供的文档
“应用程序签名允许开发人员识别应用程序的作者并更新其应用程序,而无需创建复杂的接口或获取权限。这确保他们的应用程序无需修改即可在Android设备上使用。您对该应用程序的行为负责。”
在Android中,应用程序签名是将应用程序放入应用程序沙箱的第一步。签名的应用程序证书定义哪个用户身份作为哪个其他用户身份运行。应用程序签名可确保一个应用程序无法访另一个应用程序,除非通过明确定义的IPC。
如何实现应用签名?
Android提供了一种使用自签名证书对代码进行签名的方法,开发人员无需外部帮助或许可即可生成该证书。申请证书时无需中央机构批准。
Android支持三种应用程序签名方案
v1解决方案基于JAR签名
该解决方案基于签名的JAR包。这里需要注意的一点是,v1签名方案并不能保护APK中的所有文件。有一些例外,但这些修改不会使ZIP元数据等签名失效。APK验证器必须处理许多不受信任的数据结构,然后丢弃签名中未包含的数据。这提供了一个重要的攻击面。此外,APK验证器必须解压缩所有压缩项,这会消耗更多时间和内存。为了解决这些题,Android70引入了APK签名方案v2。
v2方案Android70中引入的APK签名方案v2。v3方案Android9中引入的APK签名方案v3。
运行Android70及更高版本的设备支持APK签名方案v2及更高版本。v2方案对APK的内容进行哈希和签名,然后将生成的APK签名块插入到APK中。
对应用程序进行签名非常简单,可以通过AndroidStudio中的选项或通过命令行。
打开AndroidStudio并转到“构建”>“生成签名的APK”。
您可以按照以下步骤生成签名密钥。
可以选择在GooglePlay上签署应用程序的所有版本,这为您提供了多种选择。请参阅上面的链接了解更多详情。
生成密钥并查看其内容的简单命令是
生成密钥
keytool-genkey-v-keystorelt;keystorealiasgt;-storepasslt;keyAliasgt;-keypasslt;keyPasswordgt;-keyalgRSA-keysize2048-validity30000查看秘钥
keytool-list-v-keystorelt;keystorealiasgt;-storepasslt;keyStorePasswordgt;-keypasslt;keyPasswordgt;注意您必须将上面尖括号中的变量替换为实际值。根据您应用程序的实际需求,设置生成密钥的算法、密钥大小以及到期日期应提供的值。
您还可以使用APKSigner和ZipAlign工具方便地进行检查。
如何通过代码验证应用签名信息?
您可以使用以下代码验证应用程序签名信息
publicbooleanverifyAppSignatureContext在上下文中返回NameNotFoundException。当应用程序安装在Android设备上时,程序包管理器使用APK中包含的证书来验证APK文件是否已正确签名。如果证书与用于签署设备上另一个APK的密钥匹配,您可以在清单中指定新APK与其他类似签名的APK共享其UID。
如果我丢失设备的私人签名密钥会怎样?
这将阻止您的旧应用程序更新!这将创建一个新的包名称和一个新的证书。例如
Authenticator应用程序是一个身份验证器,其私有应用程序签名密钥之一丢失或损坏,因为包名称在几年前的更新中从comgoogleandroidappsauthenticator更改为comgoogleandroidappsauthenticator2。此更改确保所有后续身份验证器应用程序更新只能使用新的包名称和使用新的私有签名密钥生成的新签名进行发布。
不过,谷歌最近增加了对“滚动键”的支持,这可能会减轻遇到此题的开发人员的负担。
以上内容仅供参考,希望对您有所帮助。签名是一个关键场景,需要深入的知识才能了解Android系统的整体安全状况。
原来的
本文翻译自CSDN。
NB-IoT拥有数亿个连接。开发商如何抓住新机遇?
华为云在中国Gartner报告中排名前三。这是否预示着云计算市场未来的变化?
深入探讨40年来令人兴奋的数据库、PostgreSQL和NewSQL的演变
您是否担心黑客正在使用机器学习?了解7种窃取数据的新方法!
非常详细!本文讲解SparkStreaming如何集成Kafka!附练习代码
初步学习Libra的Move语言,10行代码实现你的第一个智能合约
No Comment