来源:自学PHP网 时间:2015-04-17 14:47 作者: 阅读:次
[导读] 为什么是再谈,因为这个安全漏洞已存在多年,且变成讳疾忌医的历史安全问题了,到底有多少人会因此受害,不得而知,堪称QQ的这个史上最大的后门。我们先来科普腾讯单点登陆的某...
为什么是“再谈”,因为这个安全漏洞已存在多年,且变成“讳疾忌医”的历史安全问题了,到底有多少人会因此受害,不得而知,堪称QQ的这个史上最大的“后门”。 我们先来科普腾讯单点登陆的某个工作流程,然后再说问题:
1.腾讯单点登录中心的HOST是ptlogin2.qq.com,打开wireshark,设置一个filter, http.host==ptlogin2.qq.com
2.点击QQ菜单栏上的各个服务,比如微博,EMAIL,QZONE,paipai等,大家应该知道是不需要输出密码的,这个就是所谓的一键登录。
3.抓包以后我们可以直接看到其实一键登录就是访问了一个URL
4.这个URL的关键就是我红条涂掉的第一行clientkey,同时服务端返回一个叫skey的cookie值,您这就算登录了。
5.该URL即是单点登录的认证URL,格式如下: http://ptlogin2.qq.com/jump?ptlang=2052&clientuin=QQ号码&clientkey=64个字节的KEY&u1=需要登陆的QQ服务网站地址
6.上面其实只是腾讯单点登录系统的基础部分,单点登录系统还包含一个IE插件即网页中的一键登录
点击快速登录后会产生如下格式的认证URL http://ptlogin2.qq.com/jump?clientuin=QQ号&clientkey=192位字节的KEY&keyindex=9&u1=需要登陆的QQ服务网站地址
科普完毕后就可以解答之前关于clientkey的一些疑问:
这两日有朋友在微博上问起clientkey是什么,于是引发了各种爆料,clientkey到底是啥呢? clientkey是串联腾讯所有在线服务的单点登录系统的关键密钥。 说得专业一点类似web程序中session机制中靠URL传递的session id的session url。 说得通俗一点就是你QQ的密码,是通过加密算法将你的QQ密码二次加密后会有时间限制的密码。
那这里到底有什么安全问题呢? 腾讯的这套单点登录系统直接就是HTTP明文通信的,如果您觉得某些服务不重要的话,确实可以用明文,但是如果N个服务,连带您的QB,您的隐私等等还不够重要的话,那也就是没什么安全问题了。
还会产生什么高级安全问题? 我们知道局域网可以sniffer,你嗅探到了这个clientkey的话,就等于掌控了人家所有的QQ服务。 快速登陆插件的安全问题,这个问题某牛09年就以安全公司的身份正式通报给腾讯了,似乎腾讯没有什么安全公告,值得庆幸的是10年该插件的漏洞才算基本修补完毕,并给快速登陆插件生成的clientkey加入了IP限制,不过客户端第一种64位clientkey仍然无任何IP限制。 或许还有未知的0DAY,大牛们从未公布。
如何修补这个安全问题? 非常简单,在腾讯3000亿市值中抽点钱将单点登陆服务的通信都加密,最少弄个HTTPS不。 clientkey的时效性问题,我的微博中有个腾讯的同学@我说这是个简单的问题,在不牺牲性能的情况下clientkey可以做成一次性的,用完了就失效,其实这也是我想说的,如果对于腾讯来说是简单问题,那就just do it吧。
PS: 本文介于专业和非专业之间,腾讯在各个安全领域如账户安全,业务安全等都是国际领先的,但个人认为切不可在整个安全基础架构中最核心的一环掉链子。谢谢。 摘自:hi.baidu.com/rayh4c |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com