您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 移动终端APP安全防护规范及安全开放标准解决方案
移动终端APP安全防护规范及安全开放标准解决方案2016年10月移动终端APP安全防护规范及安全开放标准解决方案第1页目录一、前言.................................................................2二、术语与解释...........................................................2三、开发阶段安全要求.....................................................21、安全编码原则.......................................................22、安全需求设计与分析.................................................33、APP客户端安全功能要求.............................................34、开发环境安全管理...................................................65、源代码的安全管理...................................................76、委外开发安全要求...................................................87、罚则...............................................................8四、上线阶段安全要求.....................................................81、APP应用上线前安全评估原则.........................................82、组织与职责.........................................................83、APP安全评估内容...................................................94、罚则..............................................................105、附件..............................................................10五、运行阶段安全要求....................................................10六、下线阶段安全要求....................................................11移动终端APP安全防护规范及安全开放标准解决方案第2页一、前言为了加强和规范湖南电信企业信息化部(以下简称:企信部)APP应用的开发阶段、上线阶段、运行阶段、下线阶段的安全建设,有效防范来自应用层的威胁和攻击,保证APP应用整个生命周期的安全,特编制本解决方案。企信部APP应用全生命周期管理遵循“谁开发谁负责”“谁使用谁负责”的原则;即:企信部APP应用相关各单位开发的应用由该单位负责开发过程的安全管理和安全功能的设计工作以及上线前安全评估发现问题的加固工作、APP使用部门负责运行阶段的安全维护管理及下线阶段数据销毁工作、安全中心负责APP上线前安全评估工作。二、术语与解释机密性:个人或团体的信息不为其他不应获得者获得。完整性:在传输、存储信息或数据的过程中,确保信息或数据不被未授权的篡改或在篡改后能够被迅速发现。抗抵赖性:发送者不能在事后否认其发送的信息。SQL注入:通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。XSS:跨站脚本攻击,恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意攻击用户的特殊目的。SSL:安全套接层协议,是为网络通信提供安全及数据完整性的一种安全协议。APP客户端:是指具有新功能或新使用价值的移动终端APP软件程序。包括软件程序状态处于建设试点、试商用和商用的所有移动终端APP软件程序。APP服务端:是指为APP客户端提供应用交互服务的后台应用平台。三、开发阶段安全要求1、安全编码原则程序只实现制定的功能移动终端APP安全防护规范及安全开放标准解决方案第3页用户输入都是不可信的,对用户输入数据做有效性检查必须对异常情况进行处理尽可能使用安全函数编程2、安全需求设计与分析在APP应用立项开发批准前,需要明确所有的安全需求并形成文档。安全需求可以从以下几个方面考虑:1)信息的机密性和完整性保护;2)抗抵赖性;3)身份鉴别和认证;4)访问控制和授权;5)数据校验及消息验证;6)数据传输安全保护;7)密码保护;8)跟踪监控与审计;10)合法性和符合性需求;11)灾难恢复等在APP应用的开发过程中,开发人员需对安全需求进行详细的分析,并将已确定的安全需求体现于应用程序设计中,包括安全架构的设计和安全功能的设计。APP应用服务端的安全设计参照《湖南电信企业信息化部应用系统安全设计与开发管理规范(试行)》执行。APP客户端的基本安全设计见“3..APP客户端安全功能要求”,通用安全要求参照《湖南电信企业信息化部应用系统安全设计与开发管理规范(试行)》执行。3、APP客户端安全功能要求APP客户端数据安全存储APP客户端应用程序本地存储的数据(包括但不限于数据文件,日志文件、数据库文件、会话cookie、配置文件、SD卡等)应采取加密方式保护存放敏感信息的文件。对于关键数据加密,应使用TripleDES(192位密钥)加密算法。要减慢并加强对移动终端APP安全防护规范及安全开放标准解决方案第4页大量数据的加密,应使用Rijndael(256位密钥)算法。要对将暂时存储的数据加密,可以考虑使用较快但较弱的算法,如DES。对于数字签名,应使用RSA或DSA算法。对于哈希,应使用SHA1.0算法。对于用户键入的哈希,应使用基于哈希的消息验证代码(HMAC)SHA1.0算法。APP客户端数据安全传输APP客户端应用程序传输敏感信息过程中应采用SSL/TLS数据加密传输方式(推荐密钥长度为:2048位),并在客户端对SSL证书合法性进行校验。具体数据安全传输要求如下:(1)全流程使用HTTPS传输,且是强制使用;(2)敏感信息传输过程中应采用SSL/TLS数据加密传输方式(推荐密钥长度为:2048位);(3)证书锁定(CertificatePinning),在客户端对SSL证书合法性进行校验;(4)完全正向保密(perfectforwardsecrecy)一个密钥只能访问由它所保护的数据;用来产生密钥的元素一次一换,不能再产生其他的密钥;一个密钥被破解,并不影响其他密钥的安全性。APP客户端安全认证与鉴权机制(1)APP客户端应用程序应对密钥/密码采取安全的存储保护方式(推荐哈希算法:SHA-512,加密算法:RSA-2048、AES-256);(2)APP客户端应用程序应根据APP重要程度不同采用适宜的安全认证方式(如“密码+验证码”、“密码+动态密码”、“密码+令牌”、“密码+证书”等);普通APP安全认证与鉴权要求如下:密码强度要求:对用户设置密码进行检测,输入至少6位字符,其中要包含大写字母、小写字母、数字和特殊字符中的至少两种。账号密码传输要求:客户端向服务器第一次发起登录请求(不传输用户名和密码)。服务器利用RSA\AES算法产生一对公钥和私钥。并保留私钥,将公钥发送给客户端。客户端收到公钥后,加密用户密码,向服务器发送用户名和加密后的用户密码;同时另外产生一对公钥和私钥,自己保留私钥,移动终端APP安全防护规范及安全开放标准解决方案第5页向服务器发送公钥;在第二次登录请求时传输用户名和加密后的密码以及客户端生成的公钥。服务器利用保留的私钥对密文进行解密,得到真正的密码。为提升用户体验,在首次登陆时用户只需要输入用户名和密码,当服务器发现异常情况时启用验证码、动态密码等机制。自动登陆:在实现自动登陆功能时,应将token和用户使用该App的移动终端进行绑定(如:绑定imsi,mac等),在登陆终端发生变化时,需重新进行账号密码验证并启用验证码或动态密码验证机制。重要内部APP安全认证与鉴权要求如下:密码强度要求:对用户设置密码进行检测,输入至少8位字符,其中要包含大写字母、小写字母、数字和特殊字符中的至少三种。针对内部重要APP每次登陆必须使用账号+密码方式进行认证鉴权;当登陆终端发生变化时,应采用账号+密码+动态密码的验证方式。(3)APP客户端应用程序应采取安全的会话机制(如:安全cookie方式、session方式);(4)APP客户端应用程序不应过度授权(如管理后台向低权限用户开放)。APP客户端数据上传安全(1)管理后台应关闭非必要上传功能或模块,关闭非必要WEB管理方法(put、move、delete等);(2)前端和后端应严格限制用户侧上传功能(如文件类型、文件格式、文件大小等);(3)应对用户上传数据的合规性(如暴恐、涉黄、政治言论等)进行安全审核过滤(如在@RequestParam的参数上使用@SensitiveFormat注解,SpringMVC就会在注入该属性时自动进行敏感词过滤)。APP客户端应用安全APP客户端应用安全(如:SQL注入、XSS、CSRF、弱口令和越权等相关安全要求)参照《湖南电信企业信息化部应用系统安全设计与开发管理规范(试行)》执行。移动终端APP安全防护规范及安全开放标准解决方案第6页APP客户端反编译安全(APK加密)APP客户端程序应通过对代码的高级混淆、流程混排加密、代码内部字符串加密等,对源码、函数名称以及接口调用进行加密隐藏,以防止第三方对应用程序进行反编译得到源代码。(对安卓应用的DEX、RES、SO库等主要文件进行加密保护,可使用第三方商业化APK加密工具进行加密,达到防止反编译的目的)APP客户端访问操作安全(1)APP客户端应用程序访问用户终端的权限应限制在程序实现自身功能的最低权限范围内,不应额外访问/读取本地其他文件获取用户信息;不应额外截获/记录/传输应用登录访问的敏感信息;不应访问非应用外internet访问及执行非许可的动作。(2)APP客户端应用程序不应调用/修改本地其它系统功能(如摄像头、录音、音量调节)进行非正常应用。(3)APP客户端应用程序权限使用应充分告知终端用户。APP客户端软键盘安全涉及用户敏感信息交互的用户输入软键盘应采用有效的防窃取措施,如使用随机分布式虚拟安全键盘,对键盘的数据输入过程、数据存储过程、内存数据换算过程进行全程高级加密(加密要求见前文“APP客户端数据安全存储”、“APP客户端数据安全传输”部分),达到效防止数据侦听、键盘劫持、键盘截屏等攻击行为。APP客户端完整性校验安全APP客户端程序应在启动和更新时进行真实性和完整性校验,防范客户端程序被篡改(通过计算crc32或哈希值的方法对整个apk的真实性和完整性进行校验)。4、开发环境安全管理开发环境隔离要求(1)开发测试环境、运行环境必须独立,并实施适当的控制措施;移动终端APP安全防护规范及安全开放标准解决方案第7页(2)测试系统环境应尽可能的效仿运行系统环境;(3)生产数据在未经相关领导批准前,不应拷贝到测试系统环境中。开发环境用户权限管理(1)应在项目组内部指定专人负责账户安全管理工作。账户安全管理的范围包括:应用系统账户和基础架构账户(操作系统、数据库、源代码管理库账户等);(2)对于关键、特权账户(如管理员账户)的申请和变更需经项目经理审批;(3)开发环境、测试环境中的账户管
本文标题:移动终端APP安全防护规范及安全开放标准解决方案
链接地址:https://www.777doc.com/doc-1511068 .html