-3

因此,我在我的配置文件中四处窥探,发现唯一标识符列表以纯文本形式存储。如果我在此列表中添加 100 多个设备,它会起作用吗?如果您通过网站进行操作,Apple 会以 100 的价格打断您。有人有这方面的经验吗?如果我这样做,它会禁用我的应用程序吗?如果是这样,他们施加的临时限制的任何其他方式

<key>ProvisionedDevices</key>
<array>
            <string>the number</string>
            <string>another number</string>
            <string>etc</string>

</array>
4

1 回答 1

1

不幸的是,不,这是行不通的。正如您在阅读您的移动配置文件时所看到的那样,在这些配置文件之一中有大量以纯文本编码的信息——应用程序 ID、开发人员证书的公钥、配置的设备 ID 等。虽然没有什么禁止您在此纯文本部分(毕竟它是您机器上的文件)中添加或更改信息会导致此失败的是此文件的二进制部分中编码的信息。

如您所知,Apple 要求所有 App Store 应用程序都由开发人员签名,这是为了 1)在商店中提供“开发人员身份”的基础,以及 2)确保您上传到 Apple 的二进制文件在被篡改时不会被篡改客户下载或使用。此过程利用公钥基础设施来验证开发人员生成的加密签名实际上被平台“信任”......本质上是一种确保文件/应用程序/消息的内容自签名后未被修改的数学方法由开发商。

为什么这是一个重要的区别?

这种“信任”的概念是平台安全的基础——一切都必须签名。从引导加载程序一直到您的应用程序,链中的每个链接都必须由设备信任的授权机构签署……在这种情况下是 Apple。如果在任何时候数学无法解决,那么就会出现安全漏洞并且不允许执行那段代码(注意:这在越狱设备上不一定适用,但它是一个完全不同的问题的主题)。

由于您已经表明您已经查看了您的配置文件,您可能还会看到一些二进制数据与您询问的纯文本数据混合在一起。此二进制数据部分是代码签名,部分是 PKI 数据——它确保纯文本部分中包含的信息没有被......我们说“调整”......因为文件是由 Apple 发布给你的并通过 Xcode 和 iOS 验证。这又回到了您可能听说过的一句话:“您的安全性与最薄弱的环节一样强大”。在未签署配置文件的假设世界中,

如果我没有承认这通常是讨论“开放”与“封闭”生态系统的优点的切入点,我也会失职。因为它远远超出了这个问题的范围,并且冒险进入了慷慨激昂的意见的雷区,所以我们不会深入研究它......抱歉让您失望了。

Apple 发布了一份关于 iOS 安全性的白皮书,讨论了核心 iOS 中内置的安全引导加载程序、代码签名和安全架构——对于那些对公开展示的 iOS 安全性感到好奇的人来说,这是一本很好的读物。

在此期间,除了拥有一堆越狱设备之外,获得额外测试设备插槽的唯一合法方法是购买第二个 iOS 开发人员程序并设置第二个 appID、第二组配置文件,并通过扩展获得第二组构建配置,以便能够使用一组不同的预置设备退出应用程序。

于 2013-05-07T20:25:36.903 回答