密码传输问题?

WuYL7812 2011-08-25 01:13:27
用电脑经常需要密码,登陆QQ, 登陆网上银行, 邮箱登陆, 论坛登陆,都要输入密码,然后发送到服务器验证密码,密码正确后,才能给服务.

这些密码怎么传输到服务器的呢? 是明文传输,还是加密后传输, 如果加密,是应用程序加密后给网络,还是网络协议自动给加密. 一般用什么加密算法.
如果我的网络包被截获, 容易获取我传输的内容吗
...全文
130 点赞 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
乔巴好萌 2011-08-26
不好意思 拼错了
是kerberos


[Quote=引用 8 楼 openxmpp 的回复:]
QQ和MSN的认证体系比较复杂 是一种叫kerbose的方法(应该是这么拼吧)
有认证的生命期的
要不就尝试下用SSL传报文 密码可以用MD5夹杂在非加密的报文中
[/Quote]
回复
乔巴好萌 2011-08-26
QQ和MSN的认证体系比较复杂 是一种叫kerbose的方法(应该是这么拼吧)
有认证的生命期的
要不就尝试下用SSL传报文 密码可以用MD5夹杂在非加密的报文中
回复
pathuang68 2011-08-25
密码的传输,在有安全方面的要求的情况下,都是加密传输的。但是加密的机制,颇不相同。

以最严格的网上银行安全为例,就算你截获了相关的数据包,你也没有办法破解。其原理是这样的:
1. 非对称加密方面的知识简介。
a. 密钥是成对的,其中一个叫公钥,一个叫私钥;
b. 公钥加密的密文,只能用对应的私钥才能解开,反之,私钥加密的密文只能用对应的公钥才能解开;
c. 公钥可以提供给任何人或者机构,私钥只能自己掌握
d. 不可抵赖行(non-repudiate)。比如A要发送一个文件给B,他可以这样对文件进行加密:首先用B的公钥对文件加密,在此基础上再用A的私钥对其加密,这个过程可以简单地表示为:
A的私钥加密(B的公钥加密(明文)))
这就是在网络上传输的密文,B在收到“ A的私钥加密(B的公钥加密(明文)))”后,用相反的过程进行解密,先用A的公钥解密,然后再用B自己的私钥解密,就可以得到明文:
A的公钥解密(A的私钥加密(B的公钥加密(明文)))) = B的公钥加密(明文)
B的私钥解密(B的公钥加密(明文)) = 明文

在上面的过程中,A发出的密文,只有B才能解开;B解开密文后,也同样可以确定发送者一定是A而不是其他人,这就是所谓的不可抵赖性。网络上其他人截或到“ A的私钥加密(B的公钥加密(明文)))”这样密文后是没有办法解开的。

2. 由于非对称加密计算量很大,因此效率比较低下。为此,在通讯的时候,还是采用对称加密的方式,即加密和解密是用同一个密钥。在建立一次通讯之初,由双方商定一个密钥(比如服务器随机产生,假定叫KEY),然后通过1中所提及的非对称加密的方式,将这个KEY,传递给此次通讯的另一方,这样可以确保KEY本身的安全,但是接下来的通讯,就不再使用非对称加密的方式了,而是使用KEY进行对称加密的方式,即A用KEY对明文进行加密,B用KEY对密文进行解密。很显然,这个KEY是每次通讯的时候,随机生成的,因此每次通讯都会有不同的KEY,因此,这个KEY又叫做session key。

3. 好的加密算法,都是没有反函数,或者很难找到反函数的函数。因此要破解这样的算法加密过的密文,只能使用暴力解法,即穷举法。要穷举256位的密码,几乎是不可能的(《应用密码学》这本书里面讲得非常清楚)。就算有“神”的帮助,花了1个月暴力破解了,但别人的通讯已经换成了另外一个session key了,因此,加密和解密都是有时效性的。

4. 银行用的加密方式,基本上就是上面俺所说的方式。当然实际上还加上了一些摘要算法,比如MD5或者SHA这样的。在使用网络银行的时候,通常都有一个所谓的电子证书,电子证书中就包含客户的私钥。

5. 到此,楼主的问题应该就比较清楚了。比如在类似银行的安全体系下,以上所说到的“明文”就是我们经常说到的“银行账号密码”。(其实这个“银行账号密码”也不是银行数据库里存放的密码,否则银行搞电脑的人就可以随意偷窃客户的存款了:),银行数据库存放的是“银行账号密码”经过DES或者Triple DES后的偏移量,只可用于验证“银行账号密码”是否正确,而不能用作加密之用...这个不复杂,就不扯了)

6. 其他的一些应用,安全方面的机制一般远远没有银行这么严格(这个费用很高滴),都是以上所说的过程的简化版本,有的甚至就是使用明文传输密码的。因此这样就给黑客有机可乘,这也就是为什么我们经常听到,邮箱不能使用了,QQ被盗号了等等之类的说法。在银行应用方面这样的情况几乎很难听到,偶尔听到的几次都是发生在几年前的事情,那时因为银行要推广其这方面的因为,居然可以让用户无需电子证书就进行交易的结果,这是管理操作上的不规范造成的,而非技术方案本身的问题。理论上,规范的网上银行的安全是无法攻破的(比如几十亿年的时间内是无法攻破的),如果有黑客试图进行这方面的尝试,那一定是徒劳滴。
回复
[Quote=引用 3 楼 wuyl7812 的回复:]

要加密用什么加密算发呢? 如果是加密的, 服务器如何获取用户输入的真正密码?
通常只知道密文,和加密算法,是推算不到密码的
[/Quote]
一般就是直接比较hash后的密文。一模一样就是对了。
普通http网站,如这里的登入密码,可能就是明文传的。但网银这类的,肯定是密文。
回复
赵4老师 2011-08-25
RSA
回复
0153 2011-08-25
一般网站如果是http://打头的,则都是明文传递。
回复
WuYL7812 2011-08-25
要加密用什么加密算发呢? 如果是加密的, 服务器如何获取用户输入的真正密码?
通常只知道密文,和加密算法,是推算不到密码的
回复
服务器数据库里存的,通常都是MD5,sha之类hash后的值。
回复
通常都是加密后的。明文传太危险了。
回复
相关推荐
发帖
其它技术问题
创建于2007-09-28

3849

社区成员

C/C++ 其它技术问题
申请成为版主
帖子事件
创建了帖子
2011-08-25 01:13
社区公告
暂无公告