27日周五,本人写了一篇“被Google Play下架刷爆朋友圈:聊聊SDK采集数据的秘密”,和互联网圈里的开发者朋友一同针对SDK采集用户隐私数据行为进行了探讨,文章中也列举出了5条目前一些第三方数据公司在未经用户容许的状况下利用SDK采集的用户隐私数据指标,同时也强调了这些隐私数据被采集后将对用户自己有何影响及相关危险性,有想了解的朋友能够添加“友盟数据运营舍”微信公众帐号查看。linux
在完成第一篇文章后,有些开发者反映仍是想看到些更技术层面的SDK分享,因此今天抛出SDK第二篇分享——技术篇,从代码层面出发,为众多开发者梳理下SDK采集数据的代码都有哪些,不一样数据指标的代码有什么区别,这些数据指标涉及用户信息隐私的程度如何,帮助开发者规避SDK中存在的“地雷“。但愿看完如下内容能够给互联网开发者一些实质性的帮助,同时也但愿引发行业内对利用SDK采集用户隐私数据的反思。shell
接下来介绍的SDK代码是以Android平台为主列举的,其中包括五大类开发者能够采集到信息:“设备信息”、“应用信息”、“传感器信息”、“帐号信息”、“网络相关信息”。若是一旦开发者须要采集这些数据,必须给出数据披露,不然可能会被应用商店作下架处理安全
1、应用信息类(信息隐私程度:隐私)
获取到用户手机上已经安装的APP信息列表和正在运行的应用列表。这类数据属于严重涉及用户隐私的数据,不建议开发者在应用中作这样的操做。微信
2、帐号信息类(信息隐私程度:隐私)
获取用户帐号信息。此类数据也属于严重涉及用户隐私的数据,不建议开发者在应用中作这样的操做。
3、网络相关信息类(信息隐私程度:隐私)
获取用户移动设备的联网信息、用户通讯的设备信息、GPS、NFC信息等。开发者能够利用这些信息准肯定位用户地理位置,但这些信息都属于用户很是敏感及隐私的,若是您的服务不是专门提供位置服务,请不要在APP中获取这类信息,避免违反隐私政策。网络
4、设备信息类(信息隐私程度:较高)
获取用户移动设备标识信息、SIM标识信息等。但像手机号码这样的用户隐私数据是必定不能采集的,不然会触及各应用商店审核的红线。
5、传感器信息类(信息隐私程度:隐私)
如今的智能移动设备内部集成了大量的传感器,用以完成智能化工做。不一样型号的移动设备,集成传感器的数量与种类也有所区别,好比用户的行踪能够经过位置传感器精确追踪,但这类数据也属于用户隐私数据。
以上五大类数据指标是能够经过Android提供的标准系统接口获取,但若是使用,必须第一时间告知用户要采集用户哪些数据,并告知用户这些数据用途是什么,在用户赞成的状况下才可以使用。不过对于其中涉及用户隐私程度较严重的几类数据,例如:安装的软件列表信息、运行的安装列表信息、GPS信息、NFC信息等,几大应用商店都禁止使用,一旦被发现确定会作下架处理。spa
跨越Android系统接口做弊的采集方式接口
面对目前应用商店严格的规则,个别第三方SDK也会经过别的方式采集用户隐私数据,例如:执行shell获取移动设备上已经安装的应用信息,这种采集方式是跨越Android系统接口的方式,经过执行linux命令的方式获取。这种跨过Android系统接口采集户隐私数据的行为能够说属于做弊、钻漏洞行为,我本人坚定抵制这种行为。这种做弊的相关代码也分享给开发者,开发者可根据代码中的信息判断SDK是否经过跨越Android系统接口的方式采集隐私数据。
隐私数据的用途及风险图片
以上代码基本能够囊括目前市场上SDK采集数据涉及用户隐私的类别,下面再就本文中各种数据采集后的用途,以及每一个数据存在的隐私风险为你们作个评估。开发
一、应用信息类(风险程度:高)产品
SDK采集数据指标:安装的软件列表、运行的安装列表。
用途与风险:经过采集这类信息能够清楚了解用户设备中各种APP应用的信息,若数据量庞大,便可推算出每款APP应用的市场占有率状况、各种竞品APP的状况。同时也能够用于分析用户喜爱、兴趣特征、行为习惯等。彻底泄露用户隐私数据,侵犯用户隐私。
隐私保护建议: 提早作数据披露,须要得到用户许可。
二、帐号信息类(风险程度:高)
SDK采集数据指标:获取用户帐号。
用途与风险:经过采集这类信息能够获取用户帐户列表,将移动设备信息与用户帐号关联,对设备进行惟一标示。这种数据的采集会给用户带来极高的风险,若用户帐号被泄露、克隆,用户的利益和生命财产可能受到威胁。
隐私保护建议: 提早作数据披露,须要得到用户许可。
三、网络相关信息类(风险程度:高)
SDK采集数据指标:Wifi信息、GPS信息、蓝牙信息、NFC适配器信息。
用途与风险:经过采集GPS信息能够获取用户位置信息,进行用户地域行为分析;采集Wifi、蓝牙、NFC信息可获取网络链接状态及配对设备信息、用户支付信息、用户登陆验证信息等。这些信息的采集彻底侵犯了用户隐私,支付、登陆验证等信息将泄露更多用户身份,使用户赤裸裸的“公布于众”,毫无安全可言。
隐私保护建议: 提早作数据披露,须要得到用户许可。
四、设备信息类(风险程度:较高)
SDK采集数据指标:电话类型、网络类型、注册国家、硬件厂商。
用途与风险:经过采集这类信息能够获取用户机型信息、运营商信息、地域分部信息等,通常用于进行机型适配、用户地域分析、网络模式分析等。这类数据的采集对于用户隐私安全的侵害影响不大,多数用于行业趋势分析。
隐私保护建议: 提早作数据披露,须要得到用户许可。
五、传感器信息类(信息隐私程度:隐私)
SDK采集数据指标:加速度传感器、环境光传感器、距离传感器、磁力计传感器、平衡传感器、震动传感器。
用途与风险:经过采集这类信息能够获取用户移动设备上传感器配置信息,了解用户移动设备可支持哪些功能,适合运行哪一种类型APP。也有一些安全类APP可经过触发传感器判断此移动设备是不是真机。此类数据的采集对于用户隐私安全的侵害影响不大。
隐私保护建议: 提早作数据披露,须要得到用户许可。
SDK隐私政策、协议
开发者除了对SDK代码要有详细的了解外,还要对隐私政策有所重视和规范,以保护全部使用服务用户的我的隐私权。以安卓为例,目前市场上对于隐私政策的规范都包含:适用范围、信息使用、信息披露、信息存储和交换、Cookie的使用、信息安全这几大方面。
隐私政策举例(模板)
隐私政策举例(模板)
其中信息的使用与信息披露尤其重要,如Google Play都要求凡涉及我的信息及敏感信息的,必须提供隐私权政策,以及任何形式的应用内披露声明,以及完整说明您的应用会收集、如何使用、分享和处理用户数据。但通常来讲,应用市场对于在用户不知情的状况下采集获取用户的“帐户信息”、“传感器信息”、“蓝牙信息”、“NFC信息”、应用安装信息“等是严格禁止的。一旦发现APP中有这样的行为存在,APP下架处理是必然的结果。因此开发者要充分重视对用户的告知义务,包括将第三方SDK的数据采集信息,也应列入APP的用户隐私政策条款中。
最后,回答一个网友问的问题:【友盟+】算是有良心的那种么。【友盟+】从建立公司至今都是以维护用户与开发者权益及隐私安全为己任,【友盟+】SDK中毫不涉及在隐私协议范围外私自采集用户隐私数据行为,你们能够下载【友盟+】SDK使用看看。
做者:【友盟+】高级产品研发专家 马巍源