所以我在配置文件中窥探,发现唯一标识符列表以纯文本格式存储。如果我将100多个设备添加到此列表中它是否有效?如果您通过网站进行,Apple会将您的价格降至100。有人有这方面的经验吗?如果我这样做,它会禁用我的应用程序吗?如果是这样的任何其他方式围绕他们强加的Ad Hoc限制
<key>ProvisionedDevices</key>
<array>
<string>the number</string>
<string>another number</string>
<string>etc</string>
</array>
答案 0 :(得分:1)
不幸的是,这不会起作用。正如您在浏览移动配置文件时看到的那样,在这些配置文件之一中以纯文本编码的大量信息 - 应用程序ID,开发人员证书的公钥,预配置设备ID等。虽然没有任何禁止你在这个纯文本部分中添加或更改信息(它毕竟是你机器上的文件)会导致失败的是在这个文件的二进制部分编码的信息。
如您所知,Apple要求开发人员对所有App Store应用程序进行签名,以便1)在商店中提供“开发者身份”的基础,并且2)确保您上传到Apple的二进制文件不被篡改与客户下载或使用时。此过程利用公钥基础结构来验证开发人员生成的加密签名实际上是由平台“信任”...本质上是一种确保文件/应用/消息内容自签名以来未被修改的数学方法由开发商。
为什么这是一个重要的区别?
这种“信任”概念是平台安全的基础 - 一切都必须签署。从引导程序一直到您的应用程序,链中的每个链接都必须由设备信任的权限签名...在本例中为Apple。如果在任何时候数学都没有成功,那么就会出现安全漏洞并且不允许执行该代码(注意:这不一定适用于越狱设备,但它是一个完全不同的问题的主题)。
由于您已经表明已经查看了配置文件,因此您可能还会看到一些二进制数据与您询问的纯文本数据混在一起。这个二进制数据是部分代码签名和部分PKI数据 - 它确保纯文本部分中包含的信息不是......我们应该说'调整'......因为该文件是由Apple发给您的并由Xcode和iOS验证。这可以回到你可能听到过的一句话:“你的安全性与最薄弱的环节一样强大”。在一个没有签署供应配置文件的假设世界中,一些流氓个人可以通过一系列简单的文本编辑绕过iOS安全架构,我们可以通过多种方式绕过App Store分发机制并规避100-证书,身份和配置文件工具强加的设备限制 - 从平台安全的角度来看,这种假设情况并不理想,因此我们首先要有代码签名要求。
我也不能承认这通常是讨论'开放'与'封闭'生态系统优劣的切入点。因为它远远超出了这个问题的范围,并且冒险进入慷慨激昂的意见的雷区,我们不会深入研究它......抱歉让人失望。
Apple发布了一个whitepaper on iOS security,讨论了构建在核心iOS中的安全启动加载程序,代码签名和安全架构 - 对于那些对公开展示的iOS安全内容感到好奇的人来说,这是一本很棒的读物。 / p>
在此期间,如果没有一堆越狱设备,获得额外测试设备插槽的唯一合法方法是购买第二个iOS开发者计划并设置第二个appID,第二组配置文件,并通过扩展名a第二组构建配置,可以使用一组不同的配置设备重新签名应用程序。