网站安装的iOS证书允许将设备UUID链接到会话

时间:2012-03-10 14:15:25

标签: ios certificate provisioning-profile testflight

我希望能够从网页中的iOS设备读取设备UUID。我知道使用JavaScript是不可能出现明显的安全问题,但我每天都使用testflight,我可以看到他们确实可以访问设备uuid。

通过在注册设备时在iPhone上安装一种配置文件,他们就会这样做。

我应该使用哪种证书/配置文件来执行类似的工作?

然后我就可以将设备UUID链接到网页会话。 我知道这需要用户的确认,这对我来说完全没问题。我并没有试图找到解决我们无法从代码访问设备uuid这一事实的方法,我问这是因为我知道testflight正在这样做

1 个答案:

答案 0 :(得分:3)

确定!我想我现在就明白了。

你没错,UDID当然不是由浏览器发送的。我也确信它是由Safari的安全漏洞或类似的东西引起的,因为testflightapp添加了一个类似于UDID的唯一ID,但没有。

他们实际做的是生成一个新的DeviceID(与UDID无关)。然后,要注册设备,他们会生成一个专门针对此DeviceID的配置文件,其中包含Enrollment Payload,该设置会根据包含testflightapp生成的DeviceID的URL注册设备。

在此注册过程中,配置文件会询问设备以发送UDID(以及其他数据)。这是个人资料要求的信息:

<array>
    <string>UDID</string>
    <string>IMEI</string>
    <string>ICCID</string>
    <string>VERSION</string>
    <string>PRODUCT</string>
    <string>MODEL</string>
    <string>DEVICE_NAME</string>
</array>

因此,当设备要求testflightapp服务器注册此设备时,他们能够将存储在配置文件中的DeviceID与当前设备的实际UDID相关联。这就是他们在浏览器中显示进程完成并保留UDID的方式。

但是,这并没有完成答案,因为我还没有解决它们如何将这个网络会话与UDID实际联系起来,即使会话已经死亡,而且DeviceID也会成为孤儿。答案似乎是(未确认,但99%肯定!)注册过程允许定义要插入到Springboard菜单中的WebClip。此WebClip在URL中写入了设备的UDID,因此每当您通过此WebClip进入testflightapp时,您都会刷新会话中的UDID号,因此会话终止无关紧要。

希望我的帖子现在有所帮助!对于前一个不完整的错误信息再次抱歉。