HarmonyOS 应用隐私保护

随着移动终端及其相关业务(如移动支付、终端云等)的普及,用户隐私保护的重要性愈发突出。应用开发者在产品设计阶段就需要考虑用户隐私的保护,提高应用的安全性。HarmonyOS应用开发需要遵从其隐私保护规则,在应用上架应用市场时,应用市场会根据规则进行校验,如不满足条件则无法上架。

个人数据是指与一个身份已被识别或者身份可被识别的自然人相关的任何信息,包括但不限于个人身份信息、身份验证信息、财务和付款信息、联系方式、用户搜索、浏览记录、使用习惯、位置信息、短信和通话相关数据、麦克风数据、摄像头数据以及其他设备或应用使用情况数据等,其中敏感个人数据是个人数据的一个重要子集,指的是涉及数据主体的最私密领域的信息或者一旦泄露可能会给数据主体造成重大不利影响的数据,如导致个人名誉、身心健康受到损害或歧视性待遇等;敏感个人数据在各国家/地区相关法律法规中的定义有所不同,建议根据当地的法律法规要求处理。

数据收集及使用公开透明

应用采集个人数据时,应清晰、明确地告知用户,并确保告知用户的个人信息将被如何使用。

  • 应用申请操作系统敏感权限时,需要明确告知用户权限申请的目的和用途,并获取用户的同意;敏感权限弹框参考示例如下。权限API使用方案请参考权限章节。详细的设计原则请参考隐私设计

    图1 敏感权限获取弹框示例

  • 开发者应制定并遵从适当的隐私政策,在收集、使用留存和第三方分享用户数据时需要符合所有适用法律、政策和规定。如在收集个人数据前,需充分告知用户处理个人数据的种类、目的、处理方式、保留期限等,满足数据主体权利等要求。

  • 应用向第三方披露任何个人信息须在隐私政策中说明披露内容、目的和披露对象。

    根据以上要求,我们设计了示例以供参考。隐私通知/声明的参考示例如下:

    图2 应用隐私通知与隐私声明示例图

     

  • 个人数据应当基于具体、明确、合法的目的收集,不应与此目的不相符的方式作进一步处理。对于收集目的变更和用户撤销同意后再次使用的场景都需要用户重新同意。隐私声明变更与隐私声明撤销同意如图所示。

    图3 隐私声明变更示例图

    图4 隐私声明撤销同意示例图

     

  • 应用需要提供用户查看隐私声明的入口。例如在应用的“关于”界面提供查看隐私声明的入口,如示例图所示:

    图5 隐私声明的查看界面示例图

  • 应用的隐私声明应覆盖本应用所有收集的个人数据。

  • 在后台持续读取位置信息场景时,请申请ohos.permission.LOCATION_IN_BACKGROUND权限,详见敏感权限

  • 应用存在调用第三方的元能力(Particle Ability)元服务(Feature Ability)场景时,需要在应用的隐私声明中明确第三方责任,如涉及个人数据收集则需要告知用户第三方的名称及收集的个人数据类型、目的和方式,申请的敏感权限、申请目的等。

数据收集及使用最小化

应用个人数据收集应与数据处理目的相关,且是适当、必要的。开发者应尽可能对个人数据进行匿名化或假名化处理,降低数据主体的风险。仅可收集和处理与特定目的相关且必需的个人数据,不能对数据做出与特定目的不相关的处理。

  • 敏感权限申请的时候要满足权限最小化的要求,在进行权限申请时,只申请获取必需的信息或资源所需要的权限。如应用不需要相机权限就能够实现其功能时,则不应该向用户申请相机权限。

  • 应用针对数据的收集要满足最小化要求,不收集与应用提供服务无关联的数据。如通信社交类应用,不应收集用户的网页浏览记录。

  • 数据使用的功能要求能够使用户受益,收集的数据不能用于与用户正常使用无关的功能。如应用不得将“生物特征”、“健康数据”等敏感个人数据用于服务改进、投放广告或营销等非业务核心功能。

  • 系统禁止应用在后台访问相机和麦克风的数据;

  • 应用使用第三方支付交易过程中,如非适用法律要求或为提供第三方支付服务所必需,不得记录用户交易类鉴权信息,或向第三方批露与用户特定交易无关的用户个人信息。

  • 应用不得仅出于广告投放或数据分析的目的而请求位置权限。

  • 禁止在日志中打印敏感个人数据,如需要打印个人数据时,应对个人数据进行匿名化或假名化处理;

  • 避免使用IMEI和序列号等永久性的标识符,尽量使用可以重置的标识符,如系统提供了NetworkIDDVID作为分布式场景下的设备标识符,广告业务场景下则建议使用OAID,基于应用的分析则建议使用ODIDAAID,其他需要唯一标识符的场景可以使用UUID接口生成;

  • 不再需要使用的数据需要及时清除,降低数据泄露的风险。如分布式业务场景下设备断开分布式网络,临时缓存的数据需要及时删除。

数据处理选择和控制

对个人数据处理必须要征得用户的同意或遵守适用的法律法规,用户对其个人数据要有充分的控制权。

  • 系统对于用户的敏感数据和系统关键资源的获取设置了对应的权限,应用访问这些数据时需要申请对应的权限。相关权限列表请参考应用权限列表章节。

  • 应用申请使用敏感权限:应用弹窗提醒,向用户呈现应用需要获取的权限和权限使用目的、应用需要收集的数据和使用目的等,通过用户点击“同意”或“始终允许”的方式完成用户授权,让用户对应用权限的授予和个人数据的使用做到透明、可知、可控。

  • 用户可以修改、取消授予应用的权限:当用户不同意某一权限或者数据收集时,应当允许用户使用与这部分权限和数据收集不相关的功能。如通信社交类应用,用户可以拒绝授予相机权限,不应该影响与相机无关的功能操作,如语音通话。

  • 在进入应用的主界面之前不建议直接弹窗申请敏感权限,仅在用户使用功能时才请求对应的权限如通信社交类应用,在没有启用位置相关的功能时,不建议在启动应用时就申请位置权限。

  • 应用若使用个人数据用于个性化广告和精准营销,需提供独立的关闭选项。

  • 需要向用户提供对个人数据的控制能力;如在云服务上存储了个人数据,需要提供删除数据的方法。

  • 应用同时支持单设备和跨设备场景时,用户能够单独关闭跨设备应用场景。

数据安全

从技术上保证数据处理活动的安全性,包括个人数据的加密存储、安全传输等安全机制,应默认开启或采取安全保护措施。

  • 数据存储

    1. 应用产生的密钥以及用户的敏感个人数据需要存储在应用的私有目录下。

    2. 应用可以调用系统提供的本地数据库RdbStore的加密接口对敏感个人数据进行加密存储。接口详见关系型数据库章节。

    3. 应用产生的分布式数据可以调用系统的分布式数据库进行存储,对于敏感个人数据需要采用分布式数据库提供的加密接口进行加密,接口详见分布式数据服务章节。

  • 安全传输

    需要分别针对本地传输和远程传输采取不同的安全保护措施。

    本地传输:

    远程传输:

    1. 使用https代替http进行通信,并对https证书进行严格校验。

    2. 避免进行远程端口进行通信,如需使用,需要对端口连接对象进行身份认证和鉴权。

    3. 应用进行跨设备通信时,需要校验被访问设备和应用的身份信息,防止被访问方的设备和应用进行身份仿冒。

    4. 应用进行跨设备通信时,作为服务提供方需要校验服务使用方的身份和权限,防止服务使用方进行身份仿冒或者权限绕过。

    5. 应用通过intent跨应用传输数据时避免包含敏感个人数据,防止隐式调用导致intent劫持,导致个人数据泄露。

    6. 应用内组件调用应采用安全方式,避免通过隐式方式进行调用组件,防止组件劫持。

    7. 避免使用socket方式进行本地通信,如需使用,localhost端口号随机生成,并对端口连接对象进行身份认证和鉴权。

    8. 本地IPC通信安全:作为服务提供方需要校验服务使用方的身份和访问权限,防止服务使用方进行身份仿冒或者权限绕过。

本地化处理

应用开发的数据优先在本地进行处理,对于本地无法处理的数据上传云服务要满足最小化的原则,不能默认选择上传云服务。

未成年人数据保护要求

如果应用是给未成年人设计的,或者应用通过收集的用户年龄数据识别出用户是未成年人,开发者应该结合目标市场国家的相关法律,专门分析未成年人个人数据保护的问题。收集未成年人数据前需要征得监护人的同意。

专为未成年人设计的应用不建议请求获取位置权限。

元服务(Feature Ability)

对于Visible=true的元服务,需要满足如下要求:

  • 元服务启动时,需要在明显位置展示元服务的功能名称及开发者名称/logo。

  • 元服务如涉及个人数据的收集,应提供独立的隐私声明,并在收集个人数据前向用户告知隐私声明。

  • 元服务应按照法律法规要求收集个人数据,基于用户同意收集的个人数据,用户有权撤销同意。

  • 元服务需要提供隐私声明的查看入口。

  • 元服务隐私声明发生变更时,需要用户重新同意。

  • 禁止在元服务免安装过程中捆绑安装与本服务不相关的功能,如扫描二维码的元服务不应该支持录音功能。


  • 使用社交账号登录,本站支持
全部评论(0)