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

如何保证密码的传输安全

一般的传输过程:

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

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

缺点:可拦截

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

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

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

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

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

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

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

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

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

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

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

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

综上:

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

 一个简易的密码改良方案


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

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

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

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

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

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

时间: 2024-11-04 16:23:05

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

用RSA加密实现Web登录密码加密传输

用RSA加密实现Web登录密码加密传输 通常我们做一个Web应用程序的时候都需要登录,登录就要输入用户名和登录密码,并且,用户名和登录密码都是明文传输的,这样就有可能在中途被别人拦截,尤其是在网吧等场合. 这里顺带一个小插曲,我以前有家公司,办公室装修时候安排的网口相对较少,不太够用,于是我和另外一个同事使用了一个hub来共享一个网口,这就导致了很有趣的现象:任何他的网络包我都能抓得到,当然了,我的他也能抓得到.这是不是有很大的安全隐患了?我有可能在不经意间会泄漏自己的密码. 所以,很多安全要求

RSA非对称算法实现HTTP密码加密传输

目前一般帐号系统,都是https来传输账户性息,申请一个https证书也不贵.但是网站的其它功能并不需要走https协议,https和http混布比较麻烦,所以决定先实现一个http协议传输RSA非对称密钥算法加密密码的方案.这样做只能说是保证不明文传密码,但是并不能防身份伪造,所以其实还是不安全的,只是目前产品能接受,算是一个过渡期吧.有需要的话还是要改成https的. 关于rsa算法,具体参考维基百科相关的介绍.简单来说,用rsa算法产生一对公钥和私钥,通信双方A和B,A用公钥加密要发送的数

页面登录密码加密传输机制

为了避免用户密码使用明文传输,在传输前需要进行加密处理,服务端接收之后再进行解密,这样从一定程度上保护了密码安全. 基本过程如下: 显然,采用非对称加密更合适,这里我们使用RSA加密算法. 需要三方面的东东. 第一样,服务器端RSA加解密工具类及KEY定义. 第二样,Web端RSA加密工具类,支持根据公钥加密. 第三样,用户登录时的处理脚本. 赋代码是直接的 Case one 1 namespace Tool.Security 2 { 3 /// <summary> 4 /// 对公钥的提供和

前端登录密码加密传输

目的:防止登录密码名文传输(仅仅只是防止明文传输,加密效果取决于key,而key对于前台是透明的) 方式:前端页面用js加密前端登录密码,采用AES对称加密 一.前端JS加密库crypto-js 因为懒,所以直接引入整个加密库,可以根据所需要的加密算法分别引入,下载地址crypto-js 如果是分别引入,记得别忘记引入核心库core 二.前端页面代码 因为需要加密密码,所以把提交方式换成了ajax AES加密的key为128bit,可以理解为16个字符.key由后端生成并送入前端. <!DOCT

TCP协议中是如何保证报文可靠传输的

1.什么是TCP的可靠传输 它向应用层提供的数据是无差错的.有序的.无丢失的,换言之就是:TCP最终递交给应用层的数据和发送者发送的数据是一模一样的. 2.TCP保证可靠传输的办法有哪些? TCP采用了流量控制.拥塞控制.连续ARQ等技术来保证它的可靠性. 3.停止等待协议 AQR协议:当请求失败时它会自动重传,直到请求被正确接收为止.这种机制保证了每个分组都能被正确接收.停止等待协议是一种ARQ协议. 停止等待协议的原理 无差错的情况:A向B每发送一个分组,都要停止发送,等待B的确认应答:A只

.net 密码明文传输 加密传递方法

未加密传递是这样的 html标签加密使用的是jquery.md5.js  自行官网下载 html代码 <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> <script src="Scripts/jquery-1.10.2.

HTTP协议下保证登录密码不被获取最健壮方式

说到在http协议下用户登录如何保证密码安全这个问题:    小白可能第一想法就是,用户在登录页面输入密码进行登录时,前台页面对用户输入的密码进行加密,然后把加密后的密码作为http请求参数通过网络发到服务器.    这样做是无法保证用户的账户安全的,因为稍微懂一点编程知识的人就可以通过你发送的http请求知道了你的密码,小白又说了,我密码加密了,它拿到的也是加密后的密码,它不知道我的原始密码它是无法从登录页面登录的. 新浪微博:intsmaze刘洋洋哥     但是小白啊,你有没有想过,有时候

HTTP协议下保证登录密码不被获取更健壮方式

说到在http协议下用户登录如何保证密码安全这个问题:    小白可能第一想法就是,用户在登录页面输入密码进行登录时,前台页面对用户输入的密码进行加密,然后把加密后的密码作为http请求参数通过网络发到服务器.    这样做是无法保证用户的账户安全的,因为稍微懂一点编程知识的人就可以通过你发送的http请求知道了你的密码,小白又说了,我密码加密了,它拿到的也是加密后的密码,它不知道我的原始密码它是无法从登录页面登录的. 原文和作者一起讨论:http://www.cnblogs.com/intsm

密码管理

用户信息的认证一个端到端的过程,从安全的角度看,更是一个端到端的安全认证过程: 前端用户信息输入安全性:如密码的长度要求,特殊字符组合要求,近期相似性匹配要求等 传输端用户信息安全性:如https传输过程中会用到对称加密,非对称加密和哈希算法等各种手段尽可能多的保证数据是传输是安全的 后端用户信息存储安全性:如用户密码在后端数据库中采用md5, sha1, sha256, bcrypt等存储 1.密码的保存 加盐密码哈希:如何正确使用 2.密码的加密 移动App该如何保存用户密码 关于公钥加密,