移动应用中用户密码存储与传输的方式

2018-11-26 09:33王舒李佳骏
电脑知识与技术 2018年23期
关键词:移动应用

王舒 李佳骏

摘要:近年来随着互联网信息技术的高速发展,移动应用层出不穷,现如今的移动应用与人们的生活息息相关,即时通讯、网上支付等功能在方便人们的同时,带来了不容小觑的网络安全问题,本文通过当今热门应用和互联网环境中不同密码存储与传输的方式进行分析研究,探讨如何选择合适的移动应用程序用户密码存储与传输的方式。

为了给用户带来更好的体验,越来越多的移动应用程序支持自动登录等功能,用以保持用户会话,这就不得不将可以标识用户身份的重要信息存储在终端设备中,如何保证这些数据的安全性成为首要问题。近年来信息安全漏洞日益剧增,移动应用密码泄露事件层出不穷,对公众的隐私和财产都产生了或多或少的影响。网络信息安全也成为人们关注的焦点,而用户密码存储与传输的方式就是保护用户信息安全的第一道防线,作为开发者,我们有责任和义务探究密码存储与传输的各个环节可能出现的安全问题,并提出合理可靠的解决方案。

关键词:移动应用;密码存储;密码传输

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)23-0091-02

1 密码存储现状

1.1采取明文方式存储密码

这是最原始也是最简单的密码存储的方式,开发者将用户的密码直接存储在文件系统或数据表中。这种方式最大的问题是一旦系统被入侵且入侵者获得了系统管理员权限,用户所有的密码信息将直接暴露给入侵者。

1.2采取非明文方式存储密码

1.2.1使用对称或非对称加密算法对密码加密后存储

使用DES等对称加密算法或RSA等非对称加密算法对明文密码加密后存储在文件系统或数据表中,使用密码时采用密钥进行解密。对称加密算法在加密和解密时使用同一个密钥,非对称加密算法在加密和解密时使用不同密钥,不过都需要开发者将密钥存储在终端设备中。这种方式在一定程度上保证了用户的安全,但一旦入侵者获取到密钥信息即可解密用户数据。这种密码存储做法也出现在早期手机淘宝中。

1.2.2使用哈希加密算法对密码加密后存储

使用哈希算法对明文密码进行加密后存储在文件系统或数据表中。哈希算法不能通过逆向运算得出明文数据,但入侵者可以使用字典破解或彩虹表破解的方式对密文进行破解得到用户数据。

1.2.3使用哈希加密算法对加盐密码加密后存储

随机盐(随机字符串)与明文密码拼接后使用哈希算法进行加密后存储在文件系统或数据表中。既避免了逆向运算得出明文数据,同时增加了使用彩虹表等方式对密文破解的難度,即使数据泄露,也可以将影响降至最低。Linux系统正是使用这种方法存储账户的密码。

以上的两种方法都避免了入侵者逆向运算从而得到用户密码等信息,但我们仍不希望把用户信息直接运算得出的数据存储在终端设备中,同时还希望用于表示用户身份的数据能够时刻变换,这样才能尽可能保证用户密码等信息的安全。

2 密码传输现状

2.1传输安全协议

现如今许多应用已经开始使用HTTPS(Secure Hypertext Transfer Protocol,安全超文本你传输协议)传输重要数据,使用HTTPS可以有效防止数据在传输中途被窃取,同时数据在传输过程中不会被改变。

2.2传输数据加密

在用户密码传输这种安全性要求较高的过程中,通常会采用RSA非对称加密算法对传输的数据进行加密。

以上做法对服务器资源的开销较大,许多开发者不愿或不得不选用HTTP协议以及其他的加密方式传输重要数据,降低了服务器压力但却提升了用户信息传输的风险。

3 移动应用用户密码存储与传输的整体方案设计

3.1服务端用户信息解决方案

3.1.1用户密码存储方案

使用Base64算法将强随机数生成器生成的定长随机byte转换为随机盐,与用户明文密码进行拼接,将拼接后的数据使用SHA-512算法进行加密,将密文和随机盐同时存入数据表。

3.1.2用户访问标识生成方案

为了避免终端设备被木马等恶意程序侵入并潜伏,故需要设计定期失效的用户唯一标识信息,当系统检测到用户存在安全异常时立即删除访问标识,可以有效防止由于个别用户账户存在安全风险影响其他用户,同时受影响用户不必升级客户端或修改密码,也可以保证用户信息不被泄露。

当用户首次登陆成功后,服务器将生成随机盐,并与用户名进行拼接,使用AES加密算法对拼接字符串进行加密后存储,作为短期用户标识信息,同时存储信息过期时间(根据软件安全性需求定义,通常为7天)、终端设备IMEI标识。在用户以后的登陆请求中使用AES密文进行身份验证,从而避免终端设备存储用户信息,同时降低RSA解密给服务器带来的压力,也使用户控制更加灵活。

3.2移动应用程序用户信息解决方案

3.2.1用户登录解决方案

移动应用程序不应将用户信息的明文数据进行存储,而是将短期用户唯一标识进行存储,使用3DES加密算法对短期用户唯一标识加密并存储,当标识过期时清除标识数据并要求用户重新登录,当服务器因账户安全问题拒绝登录时,清除标识数据同时提示用户原因,建议用户修改密码并要求用户重新登录。

移动应用程序应该在启动时检测当前系统是否存在安全风险(例如Android系统开放root权限),当存在风险时要求用户重新登录。

3.2.2用户信息传输解决方案

针对用户信息传输时务必要采用RSA-1024及以上位数的非对称加密算法(推荐RSA-2048)进行加密并使用HTTPS协议进行传输,公共密钥使用3DES加密算法加密并存储。

4 结论

用户信息安全是不会被终结的话题,无论是开发移动应用程序还是网页程序,作为开发者,都应始终把用户信息安全放在首要位置,根据应用的需求选择合适的安全性保障方案,既保证了用户安全又能避免不必的资源开销。随着密码学的不断发展以及硬件设备的更新迭代,相信在不远的将来,会有更加理想的用户密码存储与传输方案给更多的用户提供更加可靠的安全网络环境。

参考文献:

[1] 张俨娜,周珂.基于用户身份鉴别的密码存储方式[J]. 电脑知识与技术,2007(9).

[2] 屈晓,梁进杰,莫秀玲,等.密码存储与传输的安全性探讨[J].黑龙江科技信息,2016(9).

[3] 杨淑菊.Hill密码的加密解密矩阵的求法[J].价值工程,2016(8).

[4] 初羿莹,施阳.基于Hash加密的软件密码认证方案探究[J].微处理机,2017(7).

【通联编辑:光文玲】

猜你喜欢
移动应用
T学校公共设施便捷报修平台的移动应用研究
体育健身类APP的发展现状、问题及对策研究