谈谈移动互联网应用的用户注冊登录安全考虑之不可逆加密的应用原则
如今移动互联网应用一般都会採用用户注冊登录机制以便增强用户粘性。
那么为了安全设计。用户的password应该怎样传输?在云端又怎样保存?这个问题我思考过许久。总结下面一些思路。主要涉及到不可逆加密的使用原则。
如果用户的注冊/登录过程均是在全然安全的环境下进行,你能够地设计得非常easy: 注冊就是把设置的password直接保存起来,登录就是直接比較password。
这过程不涉及到不论什么加密技术。
然而在实际应用中。整个过程可能是在不安全的环境下进行,比如保存password的系统可能被黑客攻击,password的传输可能被黑客截获。。。
。这样的环境下,你怎样能保证你的登录过程不会被其它别实用心的人冒充?password怎样不泄露?
下面是注冊和登录过程中password及由它推导出来的信息(我称之为信任信息)的传递示意图:
注冊:
password---->传输---->持久保存
登录:
手机应用 云端server
password---->传输---->与持久保存的信息比較
因为传递过程的不安全性,每多一次信息的传递步骤。就多一次信息泄露的可能性。为了保证信任信息的安全,应该保证信任信息的传递过程是不可逆的。比如哈希加密算法(比如md5,sha1,sha256, PBKDF2, bcrypt等)可达到这一目的。
这些算法可保证无法通过下游的信息推算出上游的信息(比如password)。另外这类算法还可保证同样的输入和參数经过计算可得到同样的输出,这样云端就能够比較两方的结果就可以判断出原始的信息(如password)是否同样的。以达到用户认证的效果。
那么就上述的场景而言。怎样在各环节(如传输/保存)对password进行加密处理?
简单地说,用户在注冊时输入了password。能够先做一次哈希加密。再进行网络传输,云端server收到后,再做一次哈希加密。然后保存起来。登录时的过程类似,云端server所得到或使用的信息是经过了多次(这里是2)哈希加密后的结果。
相比之下,眼下有非常多文章关注的不过password做哈希处理后保存到云端server这一过程。
其实,一个复杂的系统可能存在多个泄露风险的环节, 因此需一一识别出来,并添加必要的哈希加密步骤。
详细而言,比如上述的注冊或登录过程, 假设只做一级哈希加密。 虽然达到保护原始password的效果。但仍存在安全风险的:假设不过云端保存前做哈希加密,那么传输过程仍使用password明文。存在泄露风险。
反之假设不过传输前做哈希加密,一旦该哈希值泄露了。则easy被伪造登录: 。
总结一下:
在信任信息由高信任域向低信任域传递的过程中,不可逆哈希加密处理能够有效控制高信任级别的信息直接扩散到较低信任域。假设在一个系统中存在多级这样的场景。那就应该多次使用不可逆加密处理。
注:
1) 上述提到的一次不可逆加密处理不代表仅仅能是一次哈希加密算法迭代。其实为了加大算法强度,有时可能是使用非常多次哈希加密算法的迭代。
2)在不可逆加密处理中,往往还须要加入盐值。以抵抗彩虹表攻击,这里不做具体阐述。
相关文章
- 打开应用的安全新姿势:运行在Docker里
- WebSocket通信协议应用安全问题分析
- 移动开发每周阅读清单:iOS多线程安全、构建Android MVVM应用框架
- 变革大潮来袭 云计算应用步入新阶段
- JSON Web Token - 在Web应用间安全地传递信息
- Azure站点恢复服务:应用于数据与虚拟机复制
- 雅虎发布开源Web应用安全扫描器Gryffin
- 益博睿:大数据技术应用为新金融服务构建更安全的风控体系
- 如何在Ubuntu/Fedora/Debian中安装开源Web应用GitLab
- NIST发布企业移动应用安全建议参考指南
- Http请求中Content-Type讲解以及在Spring MVC中的应用
- 亚信安全助力北医三院等保建设 筑起互联网应用“安全长城”
- 《Web安全之机器学习入门》一 1.4 人工智能在安全领域的应用
- 安全使用第三方应用须注意这四个问题
- 为什么说以应用为中心的软件定义网络才是成功的关键
- 【C3观点】移动化应用打碎网络边界 虚拟化助推移动安全LEVEL UP
- 巨额奖金在向你招手!这款iOS应用悬赏10万美金找漏洞
- 用匠人的精神去做移动应用安全
- 一文聊透Apache Hudi的索引设计与应用
- [WCF安全系列]实例演示:TLS/SSL在WCF中的应用[HTTPS]
- 面对金融应用实时、安全、系统性风险挑战,蚂蚁金融智能大脑Antzero如何应对?
- web应用下的安全问题以及tomcat/nginx对应解决方法(持续更新、亲测可解决问题)
- Tomcat安装部署和安全加固优化以及反向代理应用
- 完整案例——配置前端和后端API应用的安全认证——基于Azure实现
- 【FFMpeg视频开发与应用基础】二、调用FFmpeg SDK对YUV视频序列进行编码