即使这些用户名和密码已经没有利用价值,即使这些密码现在成为茶余饭后的笑谈,不少人还是很好奇黑客究竟怎么去刷库的,尤其是偷取一个知名IT社区的数据库,这更像是一种赤裸裸的挑衅。
龚蔚解释称,数据库被盗完全是出在网站自身的环节上,只要整个网站中有任何一个漏洞,都能通过这个漏洞通向核心的数据库。这好比“木桶原理”,“任何一个短板都会决定你的最终水位,任何一个环节有问题都可以导致数据库被盗。”
简单而言,用户在登录网站输入密码时,通常含有密码的数据会传回数据库进行比对,这些数据早在用户第一次注册时就已存在,并且通常是以加密的方式存储。
抛开此前的明文密码不谈,目前的密码数据库均是通过哈希函数的方式进行加密,存储的数据是用户密码的哈希值。
但是哈希函数并非万无一失,两个不同的密码可能哈希值会一样,这种情况被成为“碰撞”,而这正是黑客用来窃取数据库获得信息的途径。
龚蔚称,目前的加密算法,即哈希函数都是公开的,除非自己设计一个很好的能够避免出现“碰撞”的哈希算法,否则现有的大众哈希函数都可以通过“碰撞”的方式进行破解。
为什么有些网站对于数据库泄露并不担心,因为这些网站认为自己的数据库是经过加密的,即使你拿到了数据库,如果无法通过哈希算法解开数据库,也无济于事。
如果设计出了碰撞几率低的算法,但黑客手中掌握了大量的碰撞库,这些都是常用密码所对应的哈希值,一旦有密码数据库泄露,黑客就会比对其中的哈希值与手中的碰撞库,如果匹配成功,就能找到用户的原始密码。
龚蔚表示,可以将偷取的过程形容为四个过程:第一是否能进得来;第二个是就算进得来,但能否看得见;第三是就算看得见核心数据,但能否拿得走;最后一步是就算能偷取整个数据库,但最终能否解得开。
虽然目前公开的明文密码已经没有利用价值,但通常而言,刷库只是黑客产业链中的一部分,接下来还有“洗库”,即对数据库中的资源进行层层利用。龚蔚介绍,这个产业链价值比较大的是,第一波进行虚拟币等信息的剥离,例如支付宝和QQ等,拿到用户的账号后就会进入账户尝试,如果有虚拟金钱就会转走,或将QQ号倒卖;第二次“洗”是对于个人信息的收集,有些账户可能包括个人信息内容,这些会卖给那些需要的人;第三次“洗”是关联手机号的信息,卖给转发垃圾短信的,这样一层层“洗”下去直到没有价值为止。
“刷库和洗库的分工很明确,洗库的人不会去刷卡,而且有专人负责对于各类不同账号的尝试,例如有人擅长操作QQ等。”龚蔚说道。
一旦黑客手中的用户库颇具规模后,就可以分析用户。万涛称,由于人的习惯性因素,密码不可能改来改去,总有一些关联,当有了用户资源后,可以生产字典,用于“暴力”破解。