用户识别问题风险描述文档

1. 概述

​ 在Android操作系统方面,因传统的移动终端设备标识如国际移动设备识别码(IMEI)等已被部分国家认定为用户隐私的一部分,并存在被篡改和冒用的风险,所以在Android 10及后续版本中非厂商系统应用将无法获取IMEI、MAC等设备信息,无法获取IMEI会在用户行为统计过程中对设备识别产生一定影响。为了更好保护用户隐私,谷歌对安卓Q系统中所有获取设备识别码的接口都增加了新的权限控制:READ_PRIVILEGED_PHONE_STATE,该权限需要系统签名的应用才能申请。同时,系统默认WiFi Mac地址随机化,当设备连上不同的WiFi网络时会随机生成不同的Mac地址。以上变更意味着我们当前只能以Device ID 或 WiFi Mac 地址作为用户唯一的标志符。

​ 而iOS操作系统,在2020年6月时苹果在全球开发者大会上宣布,App开发者需要在iOS 14中通过弹窗获得用户同意,才可获取用户iOS设备中的IDFA(Identifier for Advertising,设备标识符的一种)。在苹果的IDFA新政策实施后,会有超六成的用户会在弹窗中拒绝同意,这意味着App开发者将无法拿到IDFA这个“身份ID”来跟踪用户。

2. 版本要求

Android方面

业界推荐的方案依次是:IMEI > OAID > Android ID > Mac地址

备注:OAID是中国移动安全联盟为了保证广告厂商提供的一个设备标识码,当前接入华为、小米、OPPO、vivo、中兴、努比亚、魅族、联想、三星等设备厂商均将逐步支持(一些老的设备且没有经过系统更新的不支持)。
但当前支持度不够,而且需要到各自的手机厂商申请ID才能支持,比较复杂,当前不建议接入。
平台 版本要求 获取设备ID
Android Android 6.0以下
Android 6.0-Android 8.0
- 需要申请READ_PHONE_STATE权限
IMEI方案
Android 8.0-Android 10
- 需要申请READ_PHONE_STATE权限**
IMEI方案
Android 10及以上
- 需要申请READ_PHONE_STATE权限
Android ID方案(可能存在重复,但概率很低)
Android 12以后 可能会禁用Android ID

iOS方面

业界推荐的方案依次是:UDID > UUID > IDFA > IDFV > Mac Address

版本要求 获取设备ID方法
iOS 2.0~5.0 UDID方案
iOS 6.0~14.0 UUID、IDFA、IDFV

​ iOS主体方案应该都是使用了UUID、IDFA、IDFV,但在UUID方案可能会受限于上架AppStore,而IDFA、IDFV也听说iOS 14后将会逐步禁止,所以存在一定的风险。

3. 变更影响

Android应用

  1. 影响范围

    所有通过READ_PHONE_STATE权限获取Device ID的应用以及将设备WiFi,Mac地址作为设备唯一标志符的应用都将受影响,预计受影响的应用比例超过90%。

  2. 兼容性表现

    对于TargetSdkVersion=Q的全部应用,获取device id会抛异常SecurityException。

    对于 TargetSdkVersion<Q且申请了READ_PHONE_STATE权限的应用,通过getDeviceId接口读取的值为Null。

    当设备连接到不同的 Wi-Fi 网络时,系统会随机生成不同的 MAC 地址,将无法作为用户唯一标志。

  3. 受影响的业务场景

    所有依赖DeviceID以及固定Mac地址数据的业务都会受到影响,如数据统计、推荐、用户历史数据记录、广告、用户画像等。

    在iOS应用方面,当前暂时使用UUID、IDFA、IDFV方案,暂无解决方案。

4. 适配指导

Android方面

4.1 可参照官方文档进行适配

唯一标识符最佳方案:

https://developer.android.google.cn/training/articles/user-data-ids

Device ID变更介绍文档:

https://developer.android.google.cn/preview/privacy/data-identifiers

4.2 使用Android ID 代替Device ID

Android ID获取代码:

Settings.System.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID);

Android ID和Device ID主要区别在于手机恢复出厂设置后,Android ID将被重置,而Device ID无法重置。

iOS方面

iOS14之后,App开发者需要通过“App跟踪透明度”功能(App Tracking Transparency,简称ATT),以弹窗方式获得用户同意后,才能获取IDFA用于跟踪用户在其他App和网站中的行为。这意味着,用户不用再迷失在冗长的App《隐私政策》中,而是可以通过弹窗选择是否同意授权App获取自己的IDFA。

© Appfactory Team all right reserved,powered by Gitbook最后修订时间: 2021-05-14 11:02:00

results matching ""

    No results matching ""