【问题标题】:Device fingerprinting (Android and iOS)设备指纹识别(Android 和 iOS)
【发布时间】:2018-11-09 02:09:10
【问题描述】:

即使在我的应用程序被卸载并再次安装后,我也需要一种方法来唯一地识别 android 和 iOS 设备。 ANDROID_ID 和 UUID 都不起作用。 也许有一些专门用于此任务的库?

【问题讨论】:

    标签: android ios fingerprinting


    【解决方案1】:

    关于iOS端,如this thread中所述:

    爱斯基摩人的回答:

    “出于隐私考虑,iOS 对唯一持久标识符进行了严格限制。有几个 WWDC 会议讨论了这一点,我强烈建议您观看它们:

    1. WWDC 2012 Session 710 iOS 和 OS X 中的隐私支持
    2. WWDC 2013 Session 714 保护用户隐私
    3. WWDC 2014 Session 715 iOS 和 OS X 中的用户隐私
    4. WWDC 2015 会议 703 隐私和您的应用程序
    5. WWDC 2016 会议 709 为您的用户提供工程隐私

    鉴于上述情况,没有任何单一值可以在不相关的应用程序中唯一标识 iOS 设备,无论是现在还是永远。相反,有一套可供您使用的选项,您使用哪一个取决于您的要求。”

    这里是 iOS 的 another thread,其中 Eskimo1 描述了你可以做什么:

    1. 使用 MDM 获取设备的 UDID 和 IMEI
    2. 使用该信息在您的设备数据库中创建记录
    3. 生成一个随机的唯一 ID 并将其添加到您的设备数据库中
    4. 使用托管应用首选项将该唯一 ID 推送到您的应用
    5. 然后,您的应用可以将该唯一 ID 添加到请求中,您可以根据该 ID 查找您需要的信息

    在我前段时间开发的应用程序中,我们使用了第三个选项。

    Android 方面: 如'Best practices for unique identifiers'中所述:

    "1:避免使用硬件标识符。在大多数用例中可以避免使用硬件标识符,例如 SSAID (Android ID) 和 IMEI,而不会限制所需的功能。

    2:仅将广告 ID 用于用户分析或广告用例。使用广告 ID 时,请始终遵守限制广告跟踪标志,确保标识符不能与个人身份信息 (PII) 相关联,并避免桥接广告 ID 重置。

    3:在所有其他用例(支付欺诈预防和电话除外)中尽可能使用实例 ID 或私人存储的 GUID。对于绝大多数非广告用例,实例 ID 或 GUID 就足够了。

    4:使用适合您的用例的 API 以最大程度地降低隐私风险。使用 DRM API API 保护高价值内容,使用 SafetyNet API 防止滥用。 Safetynet API 是确定设备是否为正品的最简单方法,而且不会产生隐私风险。”

    另外,我建议您阅读this article,其中描述了适用于 Android 的所有方法。

    【讨论】:

      猜你喜欢
      • 2010-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多