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

问题描述:

我希望能够从网页中的iOS设备读取设备UUID。我知道这是不可能的使用JavaScript的明显的安全问题,但我每天使用testflight,我可以看到他们有权访问设备uuid。由网站安装的iOS证书,允许将设备UUID链接到会话

看起来他们是这样做的,当你注册你的设备时,在iPhone上安装一种配置文件。

我应该用什么样的证书/配置文件来做类似的事情?

然后,我可以将设备UUID链接到网页会话。 据我所知,这需要用户的确认,这对我来说是完全可以的。我不是想找到解决办法,我们不能从代码访问设备uuid,我问这是因为我知道testflight正在这样做

好吧!我想我现在明白了。

你说得对,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的方式。

但是,这并没有完成答案,因为我还没有解决(但是)他们如何将这个Web会话与UDID实际关联起来,即使会话停滞并且DeviceID变得孤立。答案似乎是(未经确认,但99%肯定!)注册过程允许定义要插入到Springboard菜单中的WebClip。这个WebClip在URL中写入了设备的UDID,所以每当你通过这个WebClip进入testflightapp时,你都会刷新到会话中你的UDID号码,因此如果会话消失就无关紧要。

希望我的帖子能帮到您!对不起,以前的错误信息再次抱歉。

+0

听起来很不错。自己没有检查过,因为我没有执行这样的功能。谢谢 ! – rpechayr 2012-03-10 17:18:39

+0

我正在看这个确切的区域。我相信webclip指定了与URL匹配的签名信息(在本例中为* .testflightapp.com),并且任何时候iOS Safari都会匹配与该模式匹配的URL,还会发送签名信息。并且该签名信息将您的请求绑定到您的UDID /您的帐户。 – occulus 2013-03-04 11:30:51

+0

如果您查看跳板快捷方式的WebClip的URL,则该URL不包含任何用户信息。如前所述,他们依靠签署证书。 – occulus 2013-03-04 11:31:36