通常,移动应用的生命周期包括可行性分析与项目开发计划、需求分析、设计、编码、测试、维护等活动,这种按时间分配不同任务的思想方法是软件工程中的一种重要思想原则,即按部就班、逐步推进,每个阶段都要有各自的定义、工作、审查、形成文档以便工作交流或备查,进而达到提高软件质量的目的。
目前,按照应用开发生命周期的思想进行软件设计和开发的理念已经得到广大软件设计和开发人员的广泛认同,但是在应用开发生命周期中对安全性的考虑则往往被忽略,进而产生了很多的软件产品漏洞,给使用应用的人们带来很多工作生活上的不便,甚至造成巨大的经济损失。
在本文中,我们探讨Android应用程序开发过程中对于密码都有哪些安全开发要求。
密码安全
采用适当的密码管理策略,保证密码的生成、存储、传输、使用等环节的安全。
密码生成
-
符合国家密码管理规定和标准密码技术;
-
定期更换密钥;
-
禁止弱密码;
-
采用一种或几种有效的方法防止密码的暴力猜解;
-
应具有防范暴力破解静态密码的保护措施;
密码存储
-
禁止明文存储密钥、禁止本地存储密钥、禁止硬编码形式存储密钥、关闭Webview自动保存密码功能、禁止不安全的SharedFrefs配置导致密码泄露;
-
输入密码等敏感信息时,输入框使用自定义软键盘;
-
用户输入登录密码/支付密码等其它密码时,应提供及时加密功能;
密码传输
-
客户端的登录加密机制至少采用HTTPS协议或HTTP+自加密;
-
在传输过程中或存储在任何应用组件中,加密所有密码;
密码使用
-
新旧密码不允许相同,如有初始密码,首次登录时应强制客户修改初始密码;
-
在登录界面、转账界面等填写登录名和密码,在切出后,必须清除输入的信息;
-
会话超时保护,移动终端在超过5分钟无操作后,会话超时并要求重新登录;
-
输入密码等敏感信息时,禁用屏幕录像;