根据我的理解,android签名步骤是确保用户要安装的apk是不修改的。apk是由一个私钥签名的,但是根据我的理解,公钥就写在同一个apk文件中。我想知道用户如何信任公钥并使用它解密和验证apk?因为我是一个黑客,我可以简单地获取原始的apk,修改它的内容,用我自己的私钥加密它,并在其中插入我自己的公钥,这样当用户得到这个被黑客攻击的apk时,他/她仍然应该能够通过验证过程,因为apk使用的是有效的私钥和公钥对,这是我的?
发布于 2022-10-11 15:11:39
APK签名适用于应用程序更新方案。您只能使用与最初安装的应用程序相同的密钥签名APK来更新应用程序。
修改APK并使用另一个密钥对其进行签名当然是可能的,而且确实发生了。一个障碍是发行版:欺骗用户安装修改后的版本。应用程序存储有检测此类应用程序修改或其他恶意应用程序的机制,默认平台安全设置不允许从不受信任的来源安装应用程序。这些当然不是100%的效率,坏的应用程序确实会被安装。
发布于 2022-10-11 15:48:46
除了@laalto所说的:签名还用于签名受保护的权限。如果您有几个应用程序,并且它们使用Android意图进行通信(例如,一个应用程序在另一个应用程序中使用服务),并且意图目标(服务、接收者、内容提供者)受到私有权限的保护,并且使用“签名”的保护级别声明权限,那么Android只会在两个应用程序使用相同的密钥进行签名时才授予权限。这就是潜在的黑客将被挫败的地方;如果他们用自己的密钥重新签署APK,Android会注意到这一点,并拒绝访问。
https://stackoverflow.com/questions/74030031
复制相似问题