目前实践中,绝大多数App都会嵌入第三方的SDK以降低研发成本、提高服务效率,所以SDK收集个人信息的合规性也日益引起监管的重视。据全国标准信息公共服务平台显示,国家标准GB/T 43435-2023《信息安全技术 移动互联网应用程序(App)软件开发工具包(SDK)安全要求》(以下简称《要求》)已于2023年11月27日发布,并将于2024年6月1日正式实施,其在GB/T 35273—2020《信息安全技术 个人信息安全规范》(以下简称GB/T 35273—2020)的基础上进一步细化了SDK生命周期的安全规范和个人信息处理活动的安全要求。本文将对此标准进行分析解读,并总结TalkingData的行业实践情况。
SDK运营者在设计阶段应确保SDK的实际功能与告知内容的一致性;在开发阶段应注意SDK自身的安全性、稳定性;在部署阶段应注意SDK的版本管理和功能说明,以及完整性校验;在运营阶段应注意建立投诉管理机制,并履行相关的告知义务。《要求》的具体内容汇总如下:
阶 段 |
安 全 要 求 |
设计 |
- SDK仅包含与其声明功能相符合的功能;
- SDK宜提供单独控制热更新功能开启或关闭的选项,并确保App运营者在不接受热更新功能的情况下仍可正常使用SDK其他功能;
- 在非服务所必需或者无合理场景下,SDK不得自启动或关联启动其他App。
|
开发 |
- 对SDK进行代码审计和安全风险检测;
- 宜对SDK采用安全技术措施提高逆向分析的难度;
- SDK与服务端之间的接口应进行保护;
- 对于部分安全要求较高的SDK服务类型(如广告、支付、认证、安全风控等类型),应对SDK进行安全性测试;
- 符合GB/T 34975—2017《信息安全技术 移动智能终端应用软件安全技术要求和测试评价方法》第4.1.5.1、4.1.5.2、4.1.5.3节的要求。
|
部署 |
- 在官方网站、开源社区、公共仓库或以其他方式提供SDK下载文件、集成文档和API文档、隐私政策等,并对目前可用的历史SDK版本进行管理,提供版本迭代的功能变化说明;
- 在官方网站、开源社区、集成文档或隐私政策中声明SDK所具有的全部功能以及是否存在热更新行为,并具体说明热更新的功能和作用;
- 提供完整性校验机制;
- 通过公共仓库进行SDK分发时应对公共仓库账号进行妥善保管。
|
运营 |
- 宜向App运营者提供SDK安全能力说明及安全评估报告;
- 在进行热更新操作前通知App运营者,在涉及用户利益受损的紧急情况下,应在紧急情况消除后及时告知;
- 建立投诉管理机制和投诉跟踪反馈流程,并在接到投诉后10个工作日内进行响应;
- 因SDK引发个人信息安全事件的,应按照GB/T 35273—2020第10章关于个人信息安全事件处置的要求进行处置;
- SDK停止运营前,应提前告知受影响的App运营者。
|
《要求》提出,SDK运营者应通过隐私政策等方式简洁、清晰、易懂地告知其SDK处理个人信息的范围、种类、使用目的、需申请的相关权限等内容,并提示App运营者需要获得终端用户授权同意或满足其他处理个人信息的合法性基础,这与《个人信息保护法》等法律规范的要求是一致的。
除此之外,GB/T 35273—2020进一步要求披露收集、使用个人信息的业务功能,以及各业务功能分别收集的个人信息类型,附录C也指出产品或服务需区分基本业务功能和扩展业务功能,所以SDK运营者均需要通过隐私政策来告知具体的个人信息收集使用规则,随着监管要求不断细化,SDK运营者的告知义务需细化至具体的个人信息字段以及是否属于必选或可选收集的个人信息类型。
此外,《关于进一步提升移动互联网应用服务能力的通知》进一步指出,要加强服务协同,通过明确易懂的方式主动向App运营者提供合规使用指南。团体标准《软件开发包(SDK)个人信息处理规范》进一步细化了SDK合规指引的内容,即个人信息的权限使用、涉及个人信息处理的增强功能(例如数据收集可选与否)、基础的合规资料参考(例如法律法规要求)等相关合规内容。所以目前很多SDK运营者都需要提供针对App运营者的合规指引,帮助App运营者合规地使用SDK。
监管部门目前发布了《常见类型移动互联网应用程序必要个人信息范围规定》为App实现处理个人信息的最小必要性提供明确指引,但是SDK与App是不同的产品,而目前SDK行业缺乏类似的按照常见服务类型逐项明确SDK的最小必要范围的指引,在此背景下,《要求》首次通过附录E,对15类常见服务类型SDK的最小必要个人信息范围及其使用目的进行了表格化总结,对于SDK的最小必要性判断提供了有力的参考。
目前行业内往往都会收集唯一设备识别码,其可分为不可变和可变更两类,《App收集使用个人信息最小必要评估规范 设备信息》对此具体列举如下。不可变的唯一设备识别码往往会受到更严格的限制,《要求》附录E中的15类SDK均只将可变更的唯一设备识别码视为最小必要的个人信息。
此外,为了确保个人信息收集的最小必要性,针对不同业务功能的SDK也需要区分是属于基本业务功能还是扩展业务功能,明确个人信息是否为可选收集。GB/T 35273—2020特别指出扩展业务功能不能强制收集个人信息,应保障选择权。如果不同意收集扩展业务功能所必要收集的个人信息的,也不能因此拒绝提供基本业务功能或降低基本业务功能的服务质量。所以,如果SDK同时存在基本业务功能和扩展业务功能,需要明确提示不同功能项下的个人信息是否可选,避免超范围收集个人信息。
《要求》指出,SDK收集个人信息前,应通过App征得终端用户的同意;SDK收集敏感个人信息前,应通过App征得终端用户的单独同意。《个人信息保护法》要求在收集个人信息之前先履行告知义务,并在获取同意或满足其他合法性基础后才能开始处理个人信息。现有法律规范的要求是SDK在获取终端用户授权同意后再开始收集个人信息,且确保在SDK初始化完成后再收集个人信息。
SDK运营者在存储阶段应确保加密存储,且只存储所必需的最短时间;在传输阶段应注意采取加密传输等安全措施;在删除阶段应注意及时进行有效删除或进行匿名化处理。《要求》的具体内容汇总如下:
阶 段 |
安 全 要 求 |
存储 |
- 个人信息存储期限应为实现个人信息主体授权使用的目的所必需的最短时间,法律法规另有规定或者个人信息主体另行授权同意的除外,超出上述期限后,应进行删除或匿名化处理;
- 对SDK运行所使用的文件、数据库中的个人信息进行加密存储以及完整性校验;
- 对在服务端存储的个人信息进行数据存储区域隔离、访问控制和异常访问行为监控。
|
传输 |
- 传输敏感个人信息前应提供区别其它个人信息的安全保障,如单独加密;
- 与App运营者之间传输敏感个人信息应采取加密处理等技术安全措施。
|
删除 |
- 向App运营者提供个人信息删除机制,当终端用户通过App行使个人信息删除权时,需要对相应个人信息进行删除或做匿名化处理;
- SDK停止运营后,若存在收集个人信息的情形,应删除从App收集的个人信息或做匿名化处理。
|
SDK运营者在使用和加工阶段应确保按照隐私政策披露的形式进行处理,并基于最小必要原则设置访问控制权限;在提供阶段应注意满足授权要求,并宜对数据进行匿名化或去标识化处理;在公开阶段应注意满足授权要求。《要求》的具体内容汇总如下:
阶 段 |
安 全 要 求 |
使用
和
加工 | - 应与隐私政策等形式中声明的内容保持一致;
- 如果需要对目的进行变更,应重新告知App运营者,并通过App告知用户并征得用户同意;
- 基于最小必要授权原则访问通过SDK收集的个人信息;
- 优先在移动终端本地使用和加工个人信息;
- 满足GB/T 35273—2020第7章的个人信息使用要求。
|
提供 | 向App运营者之外的其他机构或个人提供其处理的个人信息时:
- 应按照法律法规的规定取得直接或间接用户授权;
- 宜进行匿名化或去标识化处理,确保数据接收方无法重新识别或者关联终端用户;
- 与数据接收方通过合同等形式明确双方的责任和义务;
- 满足GB/T 35273—2020第9.1、9.2、9.6节的要求。
|
公开 |
- 已按法律法规要求取得终端用户单独同意和App运营者同意的个人信息;
- 法律法规规定无需取得个人信息主体同意的个人信息。
|
SDK运营者和App运营者在接入期、运营期、退出期应履行的安全要求具体如下:
阶 段 |
SDK运营者 |
App运营者 |
接入期 |
- 提供包括SDK下载文件、集成文档和API文档、隐私政策等,同时告知SDK处理个人信息的范围、种类、使用目的、需申请的相关权限、问题反馈和投诉渠道等,对于申请的权限应说明申请权限触发的时机和其必要性;
- 宜提供SDK的相关安全检测报告;
- 若为私有化部署,应提供相关的部署资源要求以及详细部署方案。
|
- 以结构化的清单形式逐项列举所使用的有个人信息收集行为的SDK信息,包括SDK名称、SDK包名、主体名称、合作目的、收集个人信息字段及处理目的、申请的权限、SDK隐私政策;
- 共同处理个人信息:双方协商确定如何告知用户,并征得用户的同意以及提供用户权利保障功能;
- 委托处理:若SDK运营者作为受托方,应由App运营者告知用户征得用户同意,并提供用户权利保障功能;
- 单独处理:若SDK运营者单独处理个人信息、需要征得用户同意并提供用户权利保障功能的,App运营者应协助SDK运营者实现相应功能;
- 对集成的SDK进行来源确认和完整性校验;
- 满足GB/T 41391—2022《信息安全技术 移动互联网应用程序(App)收集个人信息基本要求》中6.6.2 a)至d)的要求。
|
运营期 |
- 监测到SDK崩溃率上升等风险,应告知App运营者并及时进行修复,并配合App运营者重新集成修复后的SDK;
- 发现安全漏洞,应告知App运营者,并按照GB/T 30276—2020《信息安全技术 网络安全漏洞管理规范》中5.4 a)的要求完成漏洞处置以及配合App运营者重新集成修复后的SDK;
- 建立响应终端用户请求和投诉机制,配合App向终端用户提供易于操作的实现机制;
- 如果发现App运营者未能向终端用户告知个人信息处理规则,或存在其他不符合要求的情形,应主动提示其及时改进。
|
- 宜对集成后的SDK进行持续安全监测或定期进行安全评估;
- 对于已经发现安全漏洞的SDK,应要求SDK运营者及时修复安全漏洞并更换修复后的SDK;
- 对于已经发现存在恶意行为的SDK,应停止使用;
- 满足GB/T 41391—2022《信息安全技术 移动互联网应用程序(App)收集个人信息基本要求》中6.6.2 e)和f)的要求。
|
退出期 |
- App运营者停止接入SDK并通知SDK运营者后,SDK运营者应停止继续通过该App收集个人信息;
- App运营者停止接入SDK并通知SDK运营者后,若SDK运营者存在收集个人信息的,应按约定和授权范围,删除通过该App收集的个人信息或对其做匿名化处理。
|
- 若SDK存在通过本App收集个人信息的,应督促SDK运营者按约定和授权范围,删除通过本App收集的个人信息或对其做匿名化处理;
- SDK收集的个人信息如有传输给App运营者的,App运营者应按照约定和授权范围,删除该部分个人信息或对其做匿名化处理;
- 应满足GB/T 41391—2022中6.6.2 g)的要求。
|
《要求》对于双方的合规义务进行了约定,并进一步指出,如果SDK运营者未履行下述义务,则由其承担责任;如果SDK运营者已履行下述义务,App运营者未合规使用或配置导致违规的,则由App运营者承担责任,所以SDK运营者需要注意留存自己的合规履行证据。双方需要履行的合规义务具体如下:
|
SDK运营者 |
App运营者 |
|
通过合同等形式共同约定双方在防止恶意行为、安全漏洞响应、数据安全防护、个人信息安全保护方面各自应承担的责任和义务。 |
|
/ |
整体把控SDK的使用和配置,对接入的第三方SDK有审查义务。 |
|
对SDK范围内的安全防护负责,对App运营者有披露收集的个人信息字段、权限以及收集目的、用途的义务,还应告知App运营者使用和配置SDK的要求。 |
/ |
针对设计阶段,TalkingData SDK仅提供与其声明功能相符合的功能,也不会在非服务所必需或者无合理场景下,自启动或者关联启动其他App。针对开发阶段,TalkingData SDK会在内部的需求评审结束后进行模块化开发,并通过完整性校验、本地数据加密存储等方式来增强SDK的安全性,同时进行代码混淆,提高逆向分析难度。针对部署阶段,TalkingData会对SDK逻辑问题、安全漏洞、木马行为、越权行为等进行检测,同时也会公开SDK的相关文档息。针对运营阶段,TalkingData已经建立了投诉管理机制,如果发生了安全事件,会按照内部的网络与信息安全事件应急预案进行处理。
明确告知
TalkingData针对SDK制定了专门的TalkingData SDK隐私政策,已经披露了个人信息的具体处理规则,包括个人信息处理者的名称和联系方式;处理个人信息的种类、目的、方式;终端用户行使其查阅、更正、删除等权利的方式和程序等内容。针对收集的个人信息,已明确具体字段名称,且区分是否属于可选收集的类型。
为了进一步帮助App运营者合规使用SDK,TalkingData还特别在官网发布了《TalkingData SDK合规与安全指南》,内容包括TalkingData SDK配置能力说明、App开发运营者的个人信息保护合规要求、使用TalkingData SDK服务时的合规注意事项、TalkingData的数据安全保护能力。
为了满足App运营者的自主选择权及最小必要原则,针对SDK独立的功能模块,TalkingData会提供单独的开启和关闭选项。TalkingData要求App运营者在下载SDK前,应当自主勾选所需要的具体功能模块,不会强制捆绑无关功能,亦不会以此为由申请无关权限或收集无关的个人信息。TalkingData SDK下载页面的截图如下:
TalkingData通过TalkingData SDK隐私政策以表格形式特别告知收集的个人信息字段是否属于可选收集的类型。针对唯一设备识别码,只有可变的唯一设备识别码(OAID和Android ID)属于必须收集的类型。此外,App运营者在集成SDK时也可以通过代码直接选择收集的个人信息字段,实现最小必要性与业务灵活性的平衡。TalkingData SDK隐私政策的截图如下:
授权同意
针对SDK收集个人信息的时间点,App运营者需要先获取终端用户的授权,再启动TalkingData SDK收集个人信息。为了确保授权合规性,TalkingData会要求App运营者在下载SDK之前先勾选同意《SDK下载合规指南》,其中明确要求App运营者先获取授权再初始化SDK。《SDK下载合规指南》的截图如下:
此外,TalkingData SDK在初始化阶段不会收集任何数据,仅在确保终端用户同意隐私政策之后,正式启动分析阶段才收集个人信息。具体的收集步骤如下:
权利保障
TalkingData官网的TalkingData SDK隐私政策和TalkingData集团隐私政策已经披露了终端用户的个人信息权利保障机制,为方便终端用户行使拒绝权,TalkingData还特别在官网底部设置了OPT-OUT链接,帮助终端用户便捷地行使拒绝权。OPT-OUT链接的截图如下:
(文章来源:CCIA数据安全工作委员会)