1、通信管理与技术 2022 年 12 月 第 6 期 13产业聚焦 Industry Focus1引言近年来,我国移动 APP 创新活跃、量大面广,已经渗透到千行百业,为广大人民群众提供生活生产便利,目前,我国国内市场上监测到的 APP 数量为 235 万款,第三方应用商店在架应用分发总量达到20163 亿次。移动互联网发展焕发新活力的同时,也带来了一系列侵害用户个人信息权益问题,特别是违法违规收集用户位置、行踪轨迹等行为普遍存在。位置信息作为用户个人敏感信息,除了被用于导航、送餐、打车、商品配送等业务外,在优化算法模型、精细化统计分析等方面也发挥着至关重要的作用。因此,对于位置信息的收集方法、
2、安全机制进行研究,并提出位置信息保护机制及建议尤为重要。2位置信息现状分析Android 位置信息分为精确位置和粗略位置信息,两种位置信息所使用的 APP 功能场景不同,收集方法及相关权限也有所区别。2.1 定位服务基础架构Android 定位服务基础架构分为四个层面,分别为应用层、Framework 层、动态链接库层(so 层)及Linux内核层,该层级结构自底向上逐级支撑上层服务,贯穿底层硬件到上层应用软件服务。应用层作为 LBS 服务最上层,主要在 APP 开发过程中调用 Android 原生 API 进行位置信息数据的获取和处理,该部分的位置信息处理是由 android.locatio
3、n包中的 LocationManager 类来进行实现的。Framework 层衔接 APP 及系统服务。APP 通过在 Framework 层请求调用位置管理系统服务,获取位置服务提供者(LocationProvider)提供的三种定位服务,分别为 GPS 定位、网络定位和被动定位服务。其中 GPS 定位服务会向下对接动态链接库层,通过调用安卓(Android)位置信息保护策略研究及建议 中国信息通信研究院 移动应用创新与治理技术工业和信息化部重点实验室 杜云 王艳红 王淞鹤 陈鑫爱/文摘要:APP 违法违规收集使用用户位置信息,是当前个人信息保护工作面临的主要问题,本文重点研究安卓定位服务
4、的基础架构、位置信息的收集方法,分析位置信息存在的超范围收集、权限管控机制不健全等问题,提出了细分权限、细分信息类型、细分使用场景的位置信息保护机制,并给出了相关建议。关键词:安卓;位置信息;最小必要;单独同意中图分类号:TN919.3文献标识码:B文章编号:1672-6200(2022)06-0013-05图 1 AndroidLBS 基本框架142022 年 12 月 第 6 期 通信管理与技术Industry Focus 产业聚焦 硬件获取位置信息,网络定位则通过网络接口、IP 地址等信息进行定位。在动态链接库层,GPSLocationProvider 通过JNI 接口对 libgps.
5、so 文件中的 C+代码进行调用,libgps.so 负责对 GPS 相关协议进行解析,并通过硬件抽象接口与底层进行互动。在 Linux 内核层,上层代码通过接口与硬件驱动程序进行交互,通过调用移动终端GPS硬件获取位置信息。2.2 位置信息收集方法目前,Android收集位置信息的方法分为GPS定位、网络定位、被动获取定位信息三种,对应定位服务基础架构中 GPS_PROVIDER、NETWORK_PROVIDER和 PASSIVE_PROVIDER 三种服务提供者。不同定位服务使用不同的定位方法,某些移动业务场景也会将多种定位方法相组合以适应相关需求。表 1 Android 定位方法在移动应
6、用软件或第三方 SDK 使用 GPS 定位服务时,通常获取GPS定位的二维位置信息,即经度和纬度,其实现原理可简述为利用多个卫星与 GPS 接收器的距离,使用三角定位方法确定当前位置。而在此基础上发展出的 AGPS 方法,将传统 GPS定位辅以网络定位方法,通过蜂巢基站辅助或 GSM 定位中 Cell-ID 方法来进一步提升 GPS 定位的精度。GPS 服务获取的位置信息相较其他定位方法更为精确,因此在 Android 系统中服务的调用受到严格的权限管控,应用软件或第三方服务如需要调用 GPS 服务,需向系统申请 android.permissions.ACCESS_FINE_LOCATION
7、 权限。定位方法收集信息相关权限GPS定位GPS定位LatitudeLongitudeandroid.permissions.ACCESS_FINE_LOCATIONAGPS定位LatitudeLongitude基站信息android.permissions.ACCESS_FINE_LOCATIONandroid.permission.ACCESS_COARSE_LOCATION网络定位基站定位基站信息(MCC、MNC、LAN、CID、BSSS)android.permission.ACCESS_COARSE_LOCATIONWIFI定位WIFI 信息(BSSID、RSSI)android.p
8、ermissions.ACCESS_FINE_LOCATIONandroid.permission.ACCESS_COARSE_LOCATION被动定位被动获取定位信息位置信息更新(LatitudeLongitude)android.permissions.ACCESS_FINE_LOCATIONandroid.permission.ACCESS_COARSE_LOCATIONAndroid 网络定位服务包括基站定位和 WIFI 定位方法。基站定位方法与 GPS 定位类似,通过获取移动设备周边基站信息进行三角定位,从而确定当前位置。收集的基站信息包括 MCC(Mobile Country Co
9、de,移动国家代码)、MNC(Mobile Network Code,移动网络号码)、LAN(Location Area Code,位置区域码)、CID(Cell Identity,基站编号),通过将上述信息上传到远程LBS数据库,可以确定基站的经纬度,再根据设备与各基站之间的信号强度计算得到设备的大致位置。相较于 GPS 定位,基站定位的精度较差,但延时较低,能耗较小。WIFI 定位通过终端设备开启 WIFI 扫描周边无线AP(路由器),将收集的无线AP的BSSID(MAC地址)等信息上传到 LBS 服务器,服务器根据 BSSID 检索出每一个 AP 的地理位置,再结合每个 AP 信号的强弱
10、计算并返回移动终端设备的位置信息。在网络定位中,终端应用软件获取的基站信息或是无线 AP 信息需要上传到远程 NLP 服务器,远程 NLP服务器不仅存储着基站及 AP 的具体地理位置,同时可以根据终端应用软件提供的各类定位信息(物理地址、信号强弱等)计算出设备具体位置并返回给应用软件。远程服务器由位置服务商进行维护和数据更新,以确保定位的准确性。Google 公司集成并提供调用网络定位服务的 API 给应用软件开发者,而在国内开发者一般使用百度或高德进行网络定位。被动获取定位也有很多种实现方式。例如,通过访问终端存储数据,从而获取媒体中的位置信息等。3位置信息保护问题分析随着移动互联网服务业务
11、功能趋于多元化,位置信息的收集方式和使用场景也逐渐复杂化。过度收集使用位置信息问题主要集中在 APP(包含第三方软件开发工具包 SDK)及终端层面。3.1 APP 层面从应用软件层面出发,位置信息安全事件的发生通常带有人为属性,比如应用软件带有某种主观目的去进行位置信息的收集,无论是为了增强服务体验或是将位置信息共享给第三方,其最终目的是通过分析使用用户位置信息进行商业利益的获取,由于获取位置信息的行为主观可控,因此该类位置信息安全事件更为普遍。在此之上应用软件除自身存在位置信息收集行为以外,其集成的第三方 SDK 也同样存在相应的需求,两者通信管理与技术 2022 年 12 月 第 6 期
12、15产业聚焦 Industry Focus间由于存在接口调用、数据共享等行为,导致位置信息收集情况更为复杂,相应的需要更加细粒度的管控措施。3.1.1 收集使用位置信息告知不清晰位置信息的告知通常以个人信息处理规则,即隐私政策的形式呈现,但普遍存在着未明示告知用户收集使用位置信息的目的、方式、范围等,或收集使用规则用词含糊,语义不清,冗长难懂,为用户理解设置障碍。如 APP 在隐私政策中含糊其辞,只明示收集使用用户位置信息,并未明示具体的位置信息种类,在运行过程中一揽子收集用户的全部位置信息,包括经度信息、纬度信息和行踪轨迹等。3.1.2 超范围收集位置信息问题严重部分 APP 在非服务所必需
13、或无合理应用场景情况下,超范围、超频次、超精度收集用户位置信息,特别是 APP 存在静默或后台的情况下,按照一定的频率收集位置信息。例如,某打车 APP 后台超范围收集骑手的地理位置信息,某订餐类和社交类应用软件在用户未打开或静默的情况按照每 5 分钟一次收集位置信息,某天气 APP 超精度收集用户的经纬度信息等。3.1.3 位置信息使用共享行为不规范部分 APP 未明示第三方共享的收集使用规则,未经用户同意或者在用户拒绝同意的情况下,私自将用户位置信息共享至第三方(包含 SDK),同时 APP 未对第三方进行安全评估,不能对第三方进行约束,无法保障所共享用户位置信息在第三方的安全性。如 20
14、19 年,某神探 APP 涉嫌非法提取聊天类软件中用户位置并转卖给第三方,对软件开发商利益、公民个人隐私权益造成了严重损害,产生了恶劣的社会影响。3.2 终端层面在终端层面,位置信息泄露的产生通常是由系统漏洞导致的,其中系统产生的安全事件往往需要多个漏洞并配合手段共同实现,其不以某一种特殊数据类型的获取作为目的,即当攻击者通过系统漏洞成功提权后,所收集的用户数据往往是全量的,而作为个人敏感信息的地理位置通常会是主要收集目标,因此当系统出现数据泄露风险时,经常会发生位置信息安全事件,而系统级的安全事件往往影响范围更广,后果更严重。3.2.1 系统漏洞导致位置信息泄露操作系统漏洞对位置信息安全构成
15、严重的威胁,并且系统层面上的安全威胁影响范围及危害性更高,而且往往难以被发现。如 2019 年 11 月,Checkmarx 公司的研究人员发现 Android 系统中的高危漏洞 CVE-2019-2234,该漏洞利用系统相机应用软件提供给Google Assistant 语音助手的接口构造隐式 Intent 间接调用摄像头进行拍照和录像,并根据照片中嵌入的GPS 位置信息确定用户的地理位置,无需获得位置权限。该漏洞影响到数百万台设备,严重侵犯了用户隐私。3.2.2 位置权限管控机制不健全Android 系统在版本迭代过程中不断加强了对位置信息的保护,从数据访问控制、应用行为管理等方面进行更为
16、严格的管控,并在一定程度上缓解了位置信息导致的安全问题。但是仍然存在位置权限组权限管控粒度过粗的问题,尤其是 APP 获得位置权限后,可随时调用终端位置权限相关的API,无合理业务场景的情况下,超频次、超精度调用位置 API 的问题获取位置信息。如某地图 APP 在获取用户精准位置权限后,在用户未使用导航功能时,持续读取用户位置信息,获取用户行踪轨迹。3.2.3 位置调用行为记录不完善Android 12 版本中应用软件行为得到可视化,终端会持续监控并记录 APP 读取用户位置信息的情况,并以列表形式展现给用户,但调用行为记录并不完善。如某终端厂商的位置信息行为记录功能,未详细区分前台调用、后台调用、用户主动触发、关联调用、APP 本身调用还是第三方 SDK 调用,而是直接全部展示给用户,反而更容易给用户造成困扰。4位置信息保护机制研究针对位置信息存在的告知不充分,超范围收集和权限管控过粗等问题,按照细分细化思路,分权限、分信息、分场景提出位置信息保护机制,旨在规范 APP 按照最小必要原则处理位置信息。4.1 细分典型场景我们对当前 APP 收集使用位置信息常见的业务类表 2 位置场