码迷,mamicode.com
首页 > 其他好文 > 详细

如何保证密码的传输安全(有创意)

时间:2015-08-06 17:08:41      阅读:380      评论:0      收藏:0      [点我收藏+]

标签:

如何保证密码的传输安全

一般的传输过程:

 

过程1、服务端对密码进行加密处理

优点:保证密码明文对后台人员不可见

缺点:可拦截

 

过程2、客户端使用对称加密算法对密码加密

优点:保证过程1中被拦截密码在客户端登录模块不可用

缺点:拦截密文,并在传输中可篡改

 

过程3、客户端和服务端使用非对称加密算法(非CA证书+单向认证)对密码进行加密解密

优点:传输过程即便被拦截,也难以破解

缺点:部署困难(值得一提的是:信任不该被信任的证书是不安全的,即在得到正确的通信格式后,通过伪造后台服务可以通过密码认证)

 

过程4、客户端和服务端使用非对称加密算法(CA证书+单向认证)对密码进行加密解密

优点:解决过程3中的问题

缺点:CA认证是要一笔额外的开支(值得一提的是,CA证书也不一定是安全的>_<

 

过程5、客户端和服务端使用非对称加密算法(CA证书+双向认证)对密码进行加密解密

优点:目前最好的传输安全措施

缺点:部署更加困难(你需要单独生成、下载、安装和维护客户端证书)

 

综上: 

目前最安全的做法是:CA证书+双向认证+传统密码。但有没有一种更实用的加密方式呢?比如对传统的密码进行改良,比如在其中包含客户端和服务端的识别信息,而确保不被不被伪造而欺骗客户端和服务端呢?一个简单的设计是:!@#%%>_<,具体如下,


 一个简易的密码改良方案


1、  客户端请求注册信息:账户、密码摘要、部分密码明文或其他密码进行某种处理的结果(如xxx),服务器一一保存

2、  客户端请求登录信息:账户、密码摘要、xxx摘要

3、  服务端一一验证,成功则反馈:(xxx+密码摘要)的摘要字串

4、  客户端验证反馈并判定是否通过

 

解释:是否存在伪造服务器的情况?只要xxx没有被泄漏,步骤4中不会判定通过

缺点:注册时一旦被拦截就完蛋了!!!一个弥补的做法是拼接密码摘要和xxx进行混淆>_<

 

 


如何保证密码的传输安全(有创意)

标签:

原文地址:http://my.oschina.net/lanfog/blog/488670

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!