首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

隐私护盾 持续升级!安卓绿色联盟应用体验标准2.0启动公示

引言

1

基础安全标准

1.1 安装,运行及卸载

应用在用户未授权情况下,不能进行程序下载、安装、或升级操作;

应用在用户未授权情况下,不能执行自启动操作;

应用在用户强制关闭或退出后,不能继续占用系统资源;

应用中不能包含反卸载操作;

1.2 功能使用

应用在用户未授权情况下,不能执行拨打电话、发送短信等操作;

应用在用户未授权情况下,不能执行摄像、录音、截屏等操作;

应用在用户未授权情况下,不能打开或关闭如WiFi、蓝牙、GPS等;

1.3 数据操作

应用在用户未授权情况下,不能读写用户短信、联系人等隐私数据;

应用在用户未授权情况下,不能收集或上报用户设备、系统及应用程序信息;

应用在用户未授权情况下,不能修改系统配置等资源文件;

应用在用户未授权情况下,不能修改其他应用程序的权限、数据等;

1.4 行为规范(修订)

应用在用户未授权情况下,不能进行消费操作;

应用不能包含故意破坏用户使用体验、阻碍用户正常使用手机或应用的任何行为;

应用中不能包含任何侵犯用户知情权、选择权的恶意行为

应用在用户未授权情况下,不能利用漏洞等方式获取系统控制权限,进行非授权操作;

如无必要的使用场景,应用不能在桌面、锁屏和其他应用上,弹出悬浮窗、自定义后台Toast、后台弹出Activity等骚扰用户的行为;

如无必要的使用场景,应用不能发送无法删除的常驻通知;

应用不能弹出、显示影响用户体验的广告,如抬头、强制插屏、侧边等;

应用不能引导用户开启开发者选项,禁止引导用户开启USB调试模式;

1.5 其他标准

应用不能包含病毒、木马;

应用不能包含漏洞、后门;

应用不能包含国家法律禁止的内容,包括但不限于色情,赌博,或任何危害国家安全的信息;

应用不能包含其他任何形式损害用户利益及资产的行为;

应用不能通过热补丁,引入恶意行为和不符合本标准的行为;

2

开发安全标准

2.1 Manifest和权限使用安全规范(修订)

1)权限管理。权限使用满足最小化原则:

不申请不需要使用的权限,为自定义权限设置合理的安全保护级别;

应用申请的权限,都必须有明确、合理的功能和使用场景;

TargetSdkVersion>=23,必须适配Android M及以后版本的动态权限机制。

对于非核心权限,应用不能在权限动态弹框授权提示被用户拒绝后,强制要求用户开启,包括但不限于:(1)应用退出;(2)弹框提醒用户打开>=2次;

2)功能项管理。关闭不需要及有风险的功能选项,如数据备份功能、调试功能;

3)组件管理。组件声明的合理性,避免导出不需要外部调用的组件,如需导出应设置合理的权限保护;

2.2 应用编码安全规范

2.2.1 基础编码安全规范

保证开发环境的安全性,如使用官方渠道下载的开发工具;

避免硬编码关键数据,如加密密钥、后端服务器敏感信息等;

应用代码净化,代码逻辑优化、剔除应用中的死代码块;

统一的日志管理接口,避免在日志中记录敏感信息;

应用发布之前,关闭调试接口和调试日志。

2.2.2 系统API使用安全规范

使用官方推荐版本的API接口,不使用系统废弃的API

熟悉并遵从安全规范,避免遗漏安全限制操作,引入安全风险;

对关键操作身份校验和权限检查;

2.2.3 第三方代码使用安全规范

代码评估。来源可靠性评估、代码质量评估、潜在安全风险评估;

权限控制。确认引入代码所需使用的权限最小化;

更新维护。关注代码的安全动态和版本更新情况,及时修复安全问题,更新代码;

安全保护。对引入的代码进行混淆,防止攻击者针对性的攻击;

2.2.4 代码保护安全规范

代码混淆。提高攻击者代码分析难度;

加固保护。使用自研或者第三方加固系统进行应用加固,进行代码隐藏和加密保护;

2.3 数据安全规范

2.3.1 数据加密安全规范

数据密文和加密密钥应存放在不同的位置;

密钥存储模块应具备防调试及反编译的能力;

密钥数据应分散存储,为获取密钥密文增大难度;

2.3.2 数据存储安全规范

应用程序关键数据应该存放在私有目录下,并设置合理的访问权限;

应用程序中的隐私数据应加密存储。用于加密的密钥应妥善保存;

禁止程序运行日志中包含有用户敏感数据、程序调试数据等;

2.3.3 数据使用安全规范

数据合法性保护。控制用户输入数据的类型、长度,进行恶意代码过滤等;

数据完整和有效性保护。对于接收到的外部数据、加载的外部文件,进行完整、有效性性检查;

2.4 通信安全

2.4.1 本地通信安全

intent数据安全。避免在intent包含用户敏感数据,从intent中获取数据时加入必要的异常处理;

intentscheme url 协议安全。使用过程中加入安全限制,防止UXSS等安全问题;

组件调用方式安全。避免通过隐式方式进行调用组件,防止组件劫持;

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

2.4.2 远程通信安全

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

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

2.5 业务安全

2.5.1 认证和授权

认证和授权过程应在服务器端完成,避免客户端绕过问题;

对于涉及敏感信息的服务,每次使用前需进行身份认证;

控制登录凭证token有效期,通信过程中进行token鉴权;

避免在终端设备上使用不安全的方法来存储用户名、口令及其它登录凭证;

用户密码需要使用强不可逆的加密算法加密后传输,并引入salt,提高破解难度;

账户号和终端设备信息进行绑定,防止终端模拟攻击;

2.5.2 业务逻辑及数据安全

条件判断。确保逻辑过程中前置判断条件的有效性、不可绕 过性,防止攻击者进行数据修改绕过安全限制;

逻辑设计。确保业务逻辑设计、分支条件及边界条件处理的正确性和完备性,防止不可控执行流程;

工作分配。确保服务端和客户端分工正确,防止一些应该放在服务端的校验工作设置在了客户端,造成权限校验绕过;

业务数据。关键业务数据防篡改、防伪造、防重放;

短信验证码安全。禁止验证码回传行为,验证码至少6位,同时严格限定验证码时效;

2.5.3 业务运维安全

业务风险监控、预警、异常处理预案;

安全动态跟踪及预警、安全事件排查、漏洞修复;

2.6 运行环境安全

运行期重打包检测;

模拟器运行环境检测;

调试、注入操作监控;

root环境运行检测

2.7 隐私安全(修订)

涉及到应用下载软件、对用户系统或软件升级等修改用户个人空间的行为,须得到用户的同意;

收集或使用个人数据前,须明确提示用户,并获得用户的明示同意,并且允许用户随时关闭对个人数据的收集和使用;

默认禁止收集数据主体的敏感个人数据,除非业务必需(如:运动健康类业务)或为了满足法律与监管机构要求可收集和处理(含profiling),并且同意应该单独收集;

应提供对用户的同意和撤销同意行为进行记录的机制;

隐私声明内容发生变化时,须告知用户查看并获得用户同意;

个人数据收集范围、使用目的不得超出隐私声明,且遵循最小化原则,当个人数据的采集范围、使用目的发生变更时,应及时更新隐私声明;

于存储个人数据的系统,需对存储的个人数据定义存留期;

数据主体撤销同意之后,产品必须禁止继续收集和处理其相应个人数据;

将数据主体个人数据提供给第三方前,必须获得数据主体的同意;

推送的内容(含广告)必须是符合政治、法律和宗教要求,并且推送频度不能干扰用户正常使用;

第三方应用软件调用移动智能终端敏感功能时,应先获得用户明确同意;

第三方应用软件对用户数据操作时,应先获得用户明确同意;

应用软件不得申请和调用与提供服务无关的终端功能

意见反馈

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180718A1P3UP00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券