关于安全:从扫码登录的原理分析QQ大量被盗事件到底是腾讯的问题还是用户的问题

7次阅读

共计 2347 个字符,预计需要花费 6 分钟才能阅读完成。

6 月 26 号早晨,大量 QQ 被盗的新闻一度冲上微博热搜。很多人反映本人的 QQ 不受管制地发送大量违规图片。

6 月 27 号早上,腾讯 QQ 官网下场发了布告。

布告总结来说就是“用户扫了钓鱼二维码,和腾讯无关”。

到底和腾讯无关吗?咱们来剖析剖析。

扫码登录

先看 QQ 扫描登录的流程,大抵分为三个阶段:

  1. 二维码展现阶段
  2. 扫码阶段
  3. 登录确认阶段

先简略过一下登录流程:

  1. 用户关上电脑 QQ。
  2. 电脑 QQ 显示一个二维码。
  3. 用户拿起手机扫码。
  4. 电脑 QQ 显示“扫码胜利,请用 QQ 手机版确认”。
  5. 手机 QQ 显示“您正在一台新设施登录 QQ”,让用户抉择请抉择登录还是回绝。
  6. 用户抉择登录,电脑 QQ 登录胜利,整个流程完结。

依据用户的行为画出整个时序图:

这套扫码登录的流程在业界被宽泛地应用,也足以证实其合理性。

过程一共有四个参与者,别离是:_用户_、_手机_、_电脑_、_腾讯 QQ 服务器_。

黑客无奈伪造用户、手机、和腾讯 QQ 服务器这三个参与者,然而能够在电脑端上动手脚,这次的盗号事件,正是如此。

到底是怎么攻打的呢?咱们往下看。

黑客如何盗号

依据我理解到的一些信息,我大胆猜想一下盗号的过程:

网吧外面的 WeGame 被黑客注入了,而后黑客用手表 QQ 的登录二维码伪装成 WeGame 的登录二维码,劫持了用户的受权信息,黑客利用受权信息和腾讯服务器交互,批量发送图片。

依照我的推论,还原一下犯罪现场:

首先,黑客入侵一个大的网吧治理服务商,在 WeGame 这个软件下面注入一层钓鱼入口。

而后这个服务商下的网吧下载了这个被注入的 WeGame。

用户去网吧上网,关上 WeGame 的时候同时也关上了钓鱼入口。

这个钓鱼入口输出账号密码显示登录谬误。

于是,用户只能扫码登录,用户一扫描,看到的却是登录手表 QQ。

用户感到纳闷,然而也没有想太多,点了确定登录。

受权胜利,黑客拿到受权信息。

整个过程黑客并没有间接盗取到你的账号密码,只是通过“钓鱼”拿到了你的受权信息。

而腾讯的服务器,只认受权信息不认人,只有受权信息是对的,不论谁去申请,腾讯都会放行。

就这样,黑客失去了服务器的信赖,让你的账号批量发送图片。

答复

依照下面的推论,会有几个问题:

1、为什么没有把被盗号的人挤下线。

下面提到了,黑客拿到的是手表 QQ 的受权信息,手表QQ 和手机 QQ 以及电脑 QQ 都不抵触。

也就是说,即便你手机 QQ 在线,黑客也能发送音讯,甚至你一边撤回,黑客还能一边持续发图片。

2、相似大量盗号事件是不是第一次?

不是。早在五月份就有相似的案例,但看起来腾讯并没有器重。

3、为什么 QQ 常常被盗,然而微信没有这种状况?

QQ 诞生于 1999 年,属于远古时代的产物,历史遗留问题比拟多。

微信诞生于 2011 年,跳过了 QQ 踩过的一些坑,权限把控得也更严格。

尽管性能上微信没有 QQ 弱小,但平安方面始终做得比 QQ 要好。毕竟_平安_是微信和支付宝这种带有金融属性的软件的根基,平安做不好是玩不上来的。

4、为什么没有扫过任何码 QQ 也被盗了?为什么三百年没用过的 QQ 也被盗了?为什么有些逝世的人的 QQ 也被盗了?

如果真的有这种状况,那我也没法解释,只能让腾讯来解释了。

一些其余认识

下面是我依据网上的信息揣测解决的,网络上还有其余的观点。

比拟支流的是“学习通信息撞库”和“js 劫取受权信息”。

学习通撞库

这种说法的外围是:学习通透露了用户的信息,而后有些用户学习通的明码和 QQ 明码设置的是一样,间接导致用户 QQ 明码透露。

我集体感觉这种可能性很低。

为什么呢?

第一,腾讯和学习通这种体量的 APP 必定会对用户明码脱敏加密解决,并不能间接撞库攻打。

第二,就算破解了加密形式,拿到了用户的明码,也很难间接登录用户的 QQ。因为在登录的时候,会触发新设施登录验证,如果拿不到用户的登录验证码,是没有方法登录胜利的。

JS 取受权信息

依据酷安大佬 @JiuXia2025 的说法,此次大量 QQ 被盗是因为用户点了某个链接,而后被 js 劫取了浏览器外面的 Cookie,黑客从中拿到了能管制 QQ 账号的 key,从而批量发送图片。

图片来自于 why 技术

对于大佬的实力,我不狐疑。

对于大佬的观点,我放弃一个狐疑的态度。

第一,我不置信这么多年过来了,腾讯还没有对 js 攻打做防护。

第二,我不认为在 QQ 外面点开一个链接,QQ 会给浏览器受权具备“发送音讯”的权限。如果没有“发送音讯”的权限,就算浏览器的受权信息算被 js 劫取也没有任何意义。

总结

总结一下我的观点就是:

一个有钱人家里钱太多了总是被偷,于是这个有钱人花重金打造了世界上最牛的门,开门须要通过二十四道机关和五次明码确认,最初还须要验证指纹和人脸。

即便这样,这个有钱人的钱还是被偷了。

为什么还会被偷呢?

记者采访了这个有钱人。

这个有钱人只说了一句话:所有责任尽在用户。

写在最初

吃瓜归吃瓜,还是要搞技术的,我预估 扫码登录的流程 会成为近期热门面试题。

为什么呢?

第一,能够验证候选人对技术有没有敏锐的捕获力。

第二,能够很好地延长到其余技术点。比方:

  1. Redis 过期工夫怎么设置?我的项目中有用到过吗?
  2. Token、Cookie、Session 三者有什么区别?
  3. 为什么要轮询二维码状态?用 Http 长连贯不行吗?用 Websocket 不行吗?
  4. 还有哪些常见的攻打伎俩?应答措施别离是什么?
  5. 理解 OAuth2.0 和 JWT 吗?

你看,这一套组合拳下来是不是行云流水、零打碎敲?

所以啊,还是得持续学啊!

毕竟,宇宙的止境是卷王,你不学习他称王。

以上所有推论仅代表个人观点,属于集体猜测,素材全副来自于网上。

所有以官网布告为准,不信谣不传谣。

欢送关注集体公众号【CoderW】

参考资料

  • https://www.apereo.org/projec…
  • https://juejin.cn/post/684490…
  • https://mp.weixin.qq.com/s/kS…
正文完
 0