iOS应用DRM到底如何工作?


10

当我在Windows计算机上的iTunes中购买应用程序时,会得到一个* .ipa文件,它是一个独立的iOS应用程序包。我可以使用7-Zip浏览这些IPA文件的内容,甚至可以提取资源和其他详细信息,这表明这些IPA文件根本没有被加密。

因此,如果未加密它们,DRM如何工作?是什么让我无法将IPA文件复制到其他人的计算机上并将该IPA导入iTunes,然后再将其安装在其他人的设备上?

另外,有人可以确认我只要保留IPA文件就可以将其安装到我的iDevices(当然,在相同的Apple ID下)?我只是担心,将来某个应用程序可能会进行更新以删除功能,甚至可能完全从应用程序商店中删除。


1
我不知道是什么阻止了您这样做,但是我至少知道可以这样做的一种方式:即,通过iOS拒绝运行某个应用程序(除非已付款),该付款记录以表格形式存在数据上的一些数字签名,包括应用程序的校验和。
哈拉德·汉彻·奥尔森

Answers:


14

实际上,它的工作方式更像SSL。注册Apple帐户后,Apple会为您的用户名生成一个公钥/私钥对。然后,它会为您提供私钥,并保持公开状态。(这就是为什么当您第一次购买或恢复iDevice时必须使用iTunes帐户激活它的原因)。激活后,它将您的私钥转移到您的iDevice。基本上,当您购买一个应用程序(免费或付费)时,Apple会生成一个4096字节长的标头,并使用您的公钥加密该标头。

如果您对公用/专用密钥有所了解,则公用密钥可以对其专用对进行加密...例如,我将使用服务器的公用密钥来加密要发送到服务器的数据。然后,服务器将使用其私钥对其进行解密。当它想发回数据时,它使用我的公钥来加密数据,而我使用我的私钥来解密它!公钥只能加密数据,而不能解密,反之亦然。

当您下载应用程序时,它具有使用您的公共密钥加密的标头。只有您的私钥才能解密应用程序中嵌入的标头。因此,例如,如果我复制为您生成的IPA,并将其放在我的iDevice上(这是假设您可以在其中获取它,iTunes仍将拒绝对其进行同步),然后我尝试运行它,则会崩溃因为我的私钥无法解密标头!还值得注意的是IPA文件(IPA本质上是一个已重命名的zip文件)没有标题,如果您查看IPA的内容,您会发现它包含一个无扩展名的文件,以Facebook的应用为例,它将有一个名为“ Facebook”的文件。这是应用程序的二进制文件,也是其中具有加密头的文件。

是的,如上所述,只要您能记住Apple ID,您的应用程序就可以继续运行,因为iDevice(和iTunes)不会通过iTunes进行签名检查!这意味着您可以安装已删除的应用程序,还可以将较旧的IPA同步到您的设备,只要它们是您自己的并且无限期地拥有IPA!


0

只需将扩展名从更改为.ipa即可.zip。如果您使用的是旧版本的iTunes,则IPA文件将位于:

C:\user\ ...\music\itunes\mobile applications 

您看到了……转到下载该应用程序时使用的用户。


此答案未解释iOS如何实施许可证限制。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.