实际上,它的工作方式更像SSL。注册Apple帐户后,Apple会为您的用户名生成一个公钥/私钥对。然后,它会为您提供私钥,并保持公开状态。(这就是为什么当您第一次购买或恢复iDevice时必须使用iTunes帐户激活它的原因)。激活后,它将您的私钥转移到您的iDevice。基本上,当您购买一个应用程序(免费或付费)时,Apple会生成一个4096字节长的标头,并使用您的公钥加密该标头。
如果您对公用/专用密钥有所了解,则公用密钥可以对其专用对进行加密...例如,我将使用服务器的公用密钥来加密要发送到服务器的数据。然后,服务器将使用其私钥对其进行解密。当它想发回数据时,它使用我的公钥来加密数据,而我使用我的私钥来解密它!公钥只能加密数据,而不能解密,反之亦然。
当您下载应用程序时,它具有使用您的公共密钥加密的标头。只有您的私钥才能解密应用程序中嵌入的标头。因此,例如,如果我复制为您生成的IPA,并将其放在我的iDevice上(这是假设您可以在其中获取它,iTunes仍将拒绝对其进行同步),然后我尝试运行它,则会崩溃因为我的私钥无法解密标头!还值得注意的是IPA文件(IPA本质上是一个已重命名的zip文件)没有标题,如果您查看IPA的内容,您会发现它包含一个无扩展名的文件,以Facebook的应用为例,它将有一个名为“ Facebook”的文件。这是应用程序的二进制文件,也是其中具有加密头的文件。
是的,如上所述,只要您能记住Apple ID,您的应用程序就可以继续运行,因为iDevice(和iTunes)不会通过iTunes进行签名检查!这意味着您可以安装已删除的应用程序,还可以将较旧的IPA同步到您的设备,只要它们是您自己的并且无限期地拥有IPA!