本报记者 武晓莉
当你第一次下载使用某应用软件(APP)时,多半会被要求通过微信、QQ或者支付宝授权一键登录。对用户来说,虽然很简单,但有可能会增加个人信息泄露风险,甚至直接被SDK收集更多的个人信息。
那么,SDK是什么?它是如何嵌入APP的?治理APP侵权为何要规范SDK?记者对这些用户关心的问题进行了深入的采访。
用SDK降低开发成本
“SDK就是软件开发工具包。”知乎博主刘看山说,“用以辅助开发某一类软件的相关文档、范例和工具的集合都可以叫做SDK。”一项功能被封装成SDK,就可以出售给不想从头搞研发又需要这项功能的公司。
“APP都是一个一个的信息孤岛,但各个APP 需要和其他APP产生联系,比如互相调用或者开放接口进行信息交换,由此会产生很多能与这个APP连接到一起的开发行为。”业内观察人士马继华对《中国消费者报》记者说,“APP就会将一些需要的程序打包提供给开发者,这就是SDK。”
“对于APP来说,嵌入SDK是非常普遍的一个现象。”赛迪智库网络安全研究所所长刘权对《中国消费者报》记者说,“对于用户而言,一个APP的身份认证、数据加密、支付、信用查询、信息核验、安全服务、数据统计等服务功能,被打成一个包,直接通过SDK调用第三方的应用。SDK在APP上的应用很多,其作用就是为程序开发人员提供便利,通过调用别人做好的模块,需要什么功能就按文档来调用对应接口,具体功能不需要自己开发。”
国家计算机网络应急技术处理协调中心、中国网络空间安全协会此前发布的《APP违法违规收集使用个人信息监测分析报告》显示,一款APP平均会嵌入10款以上SDK,并通过SDK实现认证登录、消息推送、访问统计等功能。更有甚者,一些自主开发水平较低的中小APP,甚至主要功能也依靠SDK实现。
SDK违规不易察觉
“SDK违规收集个人信息(设备Android ID)”“SDK违规收集个人信息(设备MAC地址)”“SDK违规收集个人信息(设备传感器信息)”……工信部最新公布的侵权APP名单里,明确列出了SDK的违规收集行为。
“目前SDK应用存在诸多问题,如没有明示SDK功能、收集使用信息的规则、目的、方式、范围、用途等。”刘权说。
“第三方SDK收集行为不规范,引发的APP违规问题日益凸显。”TalkingData法务合规负责人及数据合规官葛梦莹告诉《中国消费者报》记者,“一是同类型SDK收集的个人信息范围存在较大差异,缺乏统一标准;二是SDK的权限调用和声明行为不规范。目前,手机操作系统并未提供单独的SDK权限管理机制,而是由SDK直接调用APP的已有权限,部分SDK借此强制要求APP捆绑声明权限,或者调用APP权限过度收集个人信息。”
“基于开发便利和用户研究的需要,往往需要大量的手机用户信息,因为在使用这些信息前往往不能判断哪些信息有价值,所以就会过量地收集一些看起来不必要的信息。”马继华说。
比如很常见的一键登录SDK,实现功能相同,但有的收集IMSI(国际移动用户识别码)、WiFi网络信息,有的获取系统设置项等信息,有的则需要WLAN状态等权限,APP想要兼容多个登录入口,就必须声明获取上述全部信息,这就增加了APP过度收集个人信息的风险。又如,用户为实现订餐功能授权APP调用位置权限,但技术分析发现,APP内嵌的广告类、用户画像类SDK也趁机调用了位置权限。
用技术界定SDK是否合规
“SDK的问题相对比较隐蔽,用户往往感觉不到,只是后台的开发者、程序员们才能了解,但这种信息的收集也有可能被用于非法的目的。”马继华说,“因此,有关部门应该定期通过专业技术进行检查测试,保护普通用户的合法权益。”
“目前主要是靠APP主动去下载SDK的安装包链接,再自行嵌入至其APP的代码中,以实现相关功能。”葛梦莹说,从SDK的版本层面说,有些是标准化的版本,有些是根据APP的要求定制的个性化版本。从SDK的个人信息处理行为看,有些SDK仅作为技术工具,个人信息最终收集至APP的服务器,这种情况下,SDK和APP之间不涉及数据传输和交互等处理活动,就无需界定SDK的法律角色。但有些是SDK自行收集至自己的服务器,这就需要从技术上加以区分。从SDK的角色来说,有些SDK是以独立的处理者身份面向最终用户的,例如支付类、地图类,这种情况下,个人信息的处理行为就应该由SDK自行向个人用户负责。有些SDK与APP是共同处理者,双方共同决定个人信息的处理目的、方式,这种情况就可视为APP的一部分。
“SDK作为个人信息保护的一环被关注的时间较短,相关标准和经验较少。”刘权说,“从技术上讲,应组织开发检测平台、软件和工具,鼓励APP厂商或服务商开展自我检测或委托第三方进行检测。从标准上讲,应组织制定SDK信息披露方式及模板,将SDK功能、收集使用信息的规则、目的、方式、范围、用途等清晰地逐一列出,以保证用户知情权。”
国家计算机网络应急技术处理协调中心相关负责人指出,部分头部企业已开始重视SDK权限的管理,增加了SDK控制中间件等技术手段,用于管控各类SDK对系统权限的滥用。
多层面规范SDK权限
专家们认为,应该从技术、标准和法律层面规范SDK权限的管理,管控各类SDK对系统权限的滥用。
“从政策上讲,应将SDK隐私政策内容加入APP隐私政策中,同时加大对违规企业的处罚力度。”刘权说。
“法律和标准层面上,SDK相关的国家标准已经在制定中。SDK作为个人信息处理者,需要遵循相关法律法规,对自身的隐私政策要及时、完整地披露。而隐私政策作为向个人用户告知个人信息处理行为的必要载体,是用户感知最为明显的重要手段,不仅是APP所必备的,也是SDK厂商须对外披露的。”葛梦莹说,“除了很多SDK没有隐私政策的问题,隐私政策写得过于晦涩难懂,也是一个广受个人用户诟病的问题。隐私政策的写法、展示方式等,也需要严格符合相关法律法规和国家标准,例如落实《个人信息保护法》要求的‘处理个人信息应当具有明确合理的目的’‘收集个人信息,应当限于实现处理目的的最小范围’‘单独同意’等。在合规的前提下还须充分考虑个人用户的阅读习惯,并且切实保障用户权利的行使,这些也是接下来APP合规工作的重点。”
如何防范SDK侵权
“SDK本身不需要防范,它就是一段代码,APP里也全是代码。”葛梦莹说,“实际上,APP是可以在嵌入之前做好SDK的合规性评估,并向个人用户明确告知其所嵌入的SDK类型、收集的数据类型、处理的目的和方式的,APP对SDK是可以尽到谨慎的选择和评估义务的,是可控的。目前都要求APP在隐私政策里公布SDK的类型、作用范围等。”
“因为SDK的服务对象是APP,不是个人用户,所以最终向个人用户负责的应该是APP。”葛梦莹认为,对监管者来说,首先需要从技术层面上判断SDK的法律角色定位、处理个人信息的合法性基础以及特定角色。以自己名义独立提供服务的第三方才需要自己获得用户同意,自己承担责任。例如支付宝这样的SDK以及其他给企业提供服务的SDK,都是由被嵌入的APP一并获得用户同意,并且APP自己承担责任。其次要判断SDK处理行为的合规性,可以利用官方有相关资质的检测工具做检测,对SDK实际收集的个人信息与其隐私政策中所披露的内容进行一致性判断,对比相关字段是否一致。如果检测出SDK实际收集字段小于其隐私政策所披露的字段,则可认为其符合一致性。
据葛梦莹介绍,工信部此前已经要求互联网企业建立个人信息保护双清单(已收集个人信息清单和与第三方共享个人信息清单),并在APP二级菜单中展示,以便用户查询。首批设立双清单的企业包括腾讯、阿里、美团、快手、拼多多等39家。按照规定,已收集个人信息清单应简洁、清晰列出APP包括内嵌第三方SDK,已经收集到的用户个人信息基本情况,包括信息种类、使用目的、使用场景等。
马继华认为,此次专门提出对SDK的管理,是保护个人信息向深度发展的体现。监管部门应该联合相关开发企业、消费者代表等,严格制定个人信息收集标准以及相关的处罚规定。
关键词: 个人信息