有人盗我QQ号,我改了密码他还能到,怎么办?
About
盗号篇
-----文/苏迟但到
本文收录在本人的小五的密码学世界的专栏中
很多人都在困惑于盗号的风险中,其实密码学的从业人员也同样也在担心这个问题,我慢慢来为你科普一下盗号和防御者的历史。
我们从一个账号说起,账号有一个id----手机号----密码的绑定关系,其中我们在注册的时候,需要使用手机号注册一个账号,系统将会为你分配一个id,同时你可以设置一个密码。
在早期的去偷盗数据库的时候,会将数据库中的密码窃取。显然的看上去攻击者就得逞了。但这个时候防御者第一次拿起了数学武器,我们称之为哈希。hash是一种单向函数。我们可以将密码通过哈希函数生成一串hash值。在任何时候同一串密码通过同样的哈希函数都会生成一串同样的字符串。但是我们却无法通过哈希函数反推出密码。也就是说如果攻击者获取了密码的哈希值,他也无法获得真正的密码。但是值得注意的事情是大多数人的密码具有极强的分布规律性,在黑客的手中有一种库,他们储存了来自于历史中各个数据库破解出来的密码以及其对应的哈希值。举个例子,全世界有83万人,他的密码是12345678a,那么在下一个密码要被破解的时候,我们可以同样认为他有极高的概率,也是12345678a,因此大多数的密码系统需要用户输入包含数字,符号字母至少三种形式的密码通过这样的方法可以极大的增强用户密码的不规律性从而防止用户密码在黑客的哈希库里面。
但这个时候出现了的第二个问题。因为很多用户可能会存在密码遗忘的情况当出现这样的情况的时候。其实这真的是很棘手的问题来源,在不设置密码找回的系统中,实现安全验证是很容易的,例如比特币系统。我们可以通过一些辅助手段来证明这名用户的确是真实的用户,以帮助他成功的登录上我们的应用。在早期这个方法我们选择为密保问题。它很长时间都会被设置为主要身份认证辅助手段。但是这个手段具有很强的局限性,举个例子QQ有一个经典的密保问题,就是我的父亲叫什么名字和我的班主任叫什么名字这两个信息其实都是公开信息。不仅仅我知道,而且我的朋友或者我的同学都有可能知道。也就是说我们设计一个这样的问题的话依然存在的极大的被破解的概率。
事实上的确有大量的黑客通过反复尝试密保问题来获取QQ改密权限。
而恰好这个时候手机短信业务蓬勃发展从而大量的身份辅助业务全部通过手机号,手机短信验证码的方式来实现,当你能正确输入短信验证码的时候,我既可以认为你是一个真实合法的用户。当然这个过程的发展也伴随着sim卡的安全性的提高的过程。这里面涉及到可信硬件的知识,可以翻阅我的专栏,来了解一些关于可信硬件的知识。
在这同时大量黑客工具的流出使得在21世纪早期人们的电脑中充满了各种木马和病毒,他们会直接获取用户的明文密码。这看上去是十分危险的,因为大多数软件并没有承担一个杀毒软件应有的责任,它无法验证自身的环境是否安全,而对于一个木马来说,他获取密码的方式可以是多种多样的,比如通过监听键盘,监听输入工具亦或者读取当前内存的改变值。尽管一些专业软件采取了大量的措施来保障输入密码时候的安全,但是这种操作依然具有着局限性,同样也是手机号验证登录越来越多的原因。
但这个时候第三个问题又出现了在现实生活中,有很多人不得不换掉了手机号。也许在他们换掉了手机号才想起来,他们的账号绑定手机号还没有更换。而这个时候,如果他又忘记了密码,那怎么办?
大多数的软件都会选择让用户回忆自己的过去登陆历史,例如自己过去登陆的常用地自己注册软件的时间等等。但是这一步依然具有的极大的风险。因为在中国的话大多数人都依然是长时间居留在一个地方而获取一个人的居住地址显而易见是比较方便的。
如何确定一个良好的可信度,在用户的记忆力和攻击者的信息收集能力的一个平衡?这里面涉及到了模糊数学的知识,很不错,我的专栏里面也涉及到了可信计算的部分。
于是防御者进一步完善的这个方案,在大多数的通讯软件中他们会申请让他的好友们为他进行辅助验证。
当然攻击者可能会预先加上受害者的账号,以此来为盗号做出准备。
当然,防御措施和攻击手段还在升级,本文章也远远没有穷尽真实的账号验证系统的防御手段。例如验证登录的时候,不是简单的发送hash值,进行了一些准备来防止网络传输泄露。还有通过加盐的方式,来帮助账号注册者的密码复杂化等等。最近还引入了生物识别技术来进行身份辅助验证等等(当然这是极其不安全的,人脸验证和声音,指纹验证,具体也可以在我的专栏破解手机篇可以看见)。