免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: chunhui_true
打印 上一主题 下一主题

QQ聊天纪录的截获 [复制链接]

论坛徽章:
0
1 [报告]
发表于 2006-10-26 17:06 |显示全部楼层
QQ在文本传输中使用的密钥主要有以下三个:
随机密钥:在登录过程中使用,由用户端随机生成,但却是明文存放在登录报文中,因为只用明文存放服务器才能知道此密钥值,故此密钥形同虚设。
密码密钥:即用户密码的两次MD5散列,用在登录过程中,作用是向服务器认证自身,并在成功认证之后用来加密会话密钥。
会话密钥:除登录之外的数据加密,由服务器生成,并用密码密钥加密后发送给用户。在用户在线期间一直保持不变,如果用户在离线大约20分钟之后再次登录的话,此会话密钥才会改变。
加密算法均为16轮TEA算法。


登录过程分析
QQ登录请求包主要包括以下几部分数据:报头部分(包括QQ号码在内)、随机密钥(明文,仅在此使用一次)、密文。
密文部分的加密方式是:先用用户密码的两次MD5散列结果(即密码密钥)作密钥,用TEA加密算法加密一个空串,再用随机密钥使用相同的加密方式加密上述结果得到密文。
服务器收到登录请求包之后执行相反的操作:先用随机密钥解密上述密文,再用用户密码的两次MD5散列结果(即正确的密码密钥)解密上述结果,如果能够正确解密则表明用户输入的密码正确(服务器只关心能否正确解密,并不关心解密得到的数据)。
登录响应数据包反映了用户登录结果:成功或是失败。
如果用户得到了服务器的认证,则服务器产生一个会话密钥,并用密码密钥加密,放在登录响应数据包中返回给用户。
用户收到登录响应数据包时,用密码密钥即可解密出会话密钥,从此之后,用户和服务器之间的通信就采用此会话密钥,加密算法仍然是16轮TEA算法。

文本消息的传输
假定用户A、B聊天,以A向B发送消息为例说明。
用户A用自身的会话密钥加密待发送的消息并将其发送到服务器,服务器用A的会话密钥解密收到的密文,并用B的会话密钥加密,转发给用户B,B收到后用自身的会话密钥解密即可得到明文。



关键点是得到用户的密码,否则很难解密数据包。这是前段时间的一个分析。正确性有待检验。

论坛徽章:
0
2 [报告]
发表于 2006-10-26 17:29 |显示全部楼层
必须用到密码,如何得到密码就可以用其它方法了。社会工程学也可以嘛。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP