用UUID唯一标识iPhone设备

时间:2018-12-06 11:15:40

标签: ios iphone swift uuid

我已经进行了很多研究,以找到有关如何唯一标识iPhone设备的解决方案。如果用户转到常规>重置>擦除所有内容和设置,即使我使用钥匙串来存储UUID,并将其存储在后端服务器中,我也将无法再识别出该身份。用户设备。

我找到的最后一个解决方案是框架 DeviceCheck 。有没有人有使用它的经验,可以告诉我用户擦除设备后,使用此框架提供的服务器到服务器API生成令牌的机制是否可以帮助我解决此问题?还是与“钥匙串”之路相同,您在用户擦除设备后就无法永久保存数据?

2 个答案:

答案 0 :(得分:3)

在iOS上使用 UDID 存在安全和隐私问题。使用UDID的应用程序可以将以前所有者的数据公开给新所有者,这是一个大问题。因此,Apple删除了开发人员对UDID的访问权限。试图唯一标识iOS设备正在与Apple的App Store审核流程相提并论。任何时候都可以禁止应用。

引用Secure Mobile Development Best Practices (Limit Use of UDID)

  

详细信息

     

大多数移动设备具有唯一的ID,也称为通用唯一标识符(UUID),在制造时就已分配该ID用于识别。例如,为iOS设备分配了唯一设备标识符(UDID)。唯一标识设备的能力通常对于采购,管理和保护数据很重要。开发人员迅速采用UUID和UDID进行设备标识,这使其成为许多系统安全的基础。

     

不幸的是,这种方法带来了一些隐私和安全性问题。首先,许多在线系统已将设备的UUID连接到单个用户,以便即使用户未登录应用程序也可以跨应用程序进行跟踪。跟踪用户的高级功能已成为主要的隐私问题。

     

除此之外,通过UUID识别人员的应用程序可能会将设备的先前所有者的数据暴露给新所有者。在一种情况下,重置iPhone后,即使所有用户数据都已删除,我们仍可以访问先前用户的在线音乐服务帐户。这不仅是隐私问题,而且是安全威胁,因为攻击者可以伪造UUID。

     

Apple已经意识到iOS UDID的隐私和安全风险,并取消了开发人员对其的访问权限。由于UDID无法使用,因此一些开发人员应用了其他设备标识方法,这些方法涉及无线网络接口的MAC地址或OpenUDID。这些方法现已在系统/ API级别被禁止,并且在AppStore审核过程中也被标记和拒绝。

     

修复

     

我们建议开发人员避免使用任何设备提供的标识符来标识设备,特别是如果它是实现设备身份验证所必需的。相反,我们建议在注册,安装或首次执行时创建应用程序专用的“设备系数”。然后可能需要将此应用程序唯一的设备因素与用户身份验证结合起来以创建会话。设备因子还可以用作加密例程中的附加因子。

     

由于它不依赖可预测的设备提供的数据,因此利用变得更加困难。通过利用质询-响应方法,服务器和设备可以在用户认证之前对彼此进行认证。为了获得系统访问权限,攻击者必须利用这两个因素。开发人员还可以实现一项功能,在客户端或服务器端重置设备因素,从而强制对用户和设备进行更严格的重新认证。

     

为保护用户隐私并同时保留广告功能,Apple建议使用advertiseIdentifier-在系统中所有应用程序之间共享的唯一标识符。人们可以随时在“设置”->“隐私”->“广告”菜单中,在其设备上重设广告标识符。

答案 1 :(得分:0)

使用UUID唯一标识iPhone设备

==>我喜欢这个问题。您想要(IMEI +您的ID)创建新ID。将此ID存储区重新打开以与此公式进行比较。

注意:-Apple不允许使用IMEI号码。