雷锋网按:本文作者Song,雷锋网专栏特约作者,西雅图Newsky Security公司联合创始人兼CTO,业内知名防病毒专家,黑客。
前几天闹得纷纷扬扬的领英账号密码大规模泄露事件,今天终于有了更有意思的发展:脸书老大小扎的社交网络账号,准确地说,是Pinterest和Twitter账号,被黑了,也可参看雷锋网消息:《没天理! 扎克伯格的账号都被黑》。
(截图来自 venturebeat.com)
这就好像一个银行业的大佬,钱不是全放自己银行里面的,也在后院挖个坑埋点,也在街对面的老推和老品开的银行里面存点。结果早上起来一看,得,老推和老品的银行被人给挖了个驴那么大的洞,钱都给用驴车运走了。
要说这年头银行被人偷也不是啥特别大的新闻了,倒是哪家银行不被偷是挺稀奇的事儿。街拐角的领英银行最近刚跟大家说,赶紧把钱捂紧了,我们2012年就被偷了!话音未落,老推跟老品冲过去就给了领英一大嘴巴:“都怪你!”领英当然不干了,一手捂着脸一手捏着自己的领带,“这个事情,怎么怪得到伦家嘛?伦家也是受害者嘛~~~”
不过这个事情,经过安全专家的研究,还真的要怪领英。各位客官莫急,容我慢慢道来。
现代互联网系统是从当年unix联网发展来的,联网计算机在给人提供服务的时候,最重要的就是认定对方是谁,行话叫身份认证。虽然计算机发展了这么多年,但是身份认证依然是当年古老的做法:用户名+密码。换句话说,就是计算机怎么知道你是你呢?因为你俩有个其他人不知道的小秘密,就是密码。
后来发展出来的手机验证码,指纹密码,也都是从这里延伸开的。手机验证码是缩短了密码的时效性,指纹密码是生物特征的一种。归根结底,都是你和计算机彼此的小秘密。我们这里只谈密码这种方式。
网站的计算机在你第一次建立账户设置密码以后,就把密码存起来,下次你来登录的时候,就把你的密码和存储的密码比较一下,如果一样,说明你知道这个小秘密,计算机就对你这个闺蜜或者gay蜜敞开心扉,把以前你告诉它的各种心事照片小黄片都拿出来给你看。
所以,如果想装成你的样子去看你的心事照片,或者用你的身份去网上造谣生事,那就要知道你的密码。知道了你的密码,下次就可以登录你的账户了。黑客是不满足于一个个拿密码的,最有效的办法,就是拿到网站管理员的权限,然后把网站所有存储的用户密码一次都偷走。
魔高一尺道高一丈,计算机安全研究员们为了防止密码被黑客拿走,想出了一个好办法,就是不把密码明文存储。比如你的密码是abc123,网站计算机其实不需要知道你的密码是啥,它只需要知道你输入的密码和设立账号时候设置的密码是否一致。
数学上面有一种算法叫哈希算法,好的哈希算法是单向的,而且很少有碰撞。
单向是意思是说,知道密码,可以用哈希算法得到一串“天书”,比如密码abc123用MD5这种哈希算法得到的天书就是e99a18c428cb38d5f260853678922e03,但是拿到天书,很难算出你的密码。
很少有碰撞,是说不同的密码算出来的天书都不一样,全世界人民的密码都拿来算,不同的两个密码也不容易算出一样的天书。
比如这种常见的:
现代计算机和网站存储的密码,都是用这种哈希算法计算以后的天书。你登录时候输入的密码,也是经过这种计算,然后和存储的天书进行比较。如果两者一致,就说明密码一致。这招有多狠呢?因为哈希算法的单向性,就算系统管理员,能拿到所有的天书,也没办法告诉你这个密码原来是啥。
说到这里,领英开始委屈了:“伦家的用户密码也是用哈希的,伦家好冤枉,嘤嘤嘤”老推忙着给小扎改他的账号内容,没空理这茬,老品倒是认真,也不管小扎了,反手又给了领英一嘴巴“认真听!”
哈希算法让黑客们苦恼了好久,各种技巧都不能完整的搞定,直到互联网时代,黑客们能够用一个命令调动成千上万计算机的时代到来了,把所有知道的密码的天书都算出来,你算法是单向的,我不算了,我查表。这种表,叫彩虹表。知道了天书和哈希算法,一查表就知道密码了。反正计算和存储都便宜。现在你上网查,就能查出来e99a18c428cb38d5f260853678922e03的对应MD5明文是abc123。
斗争升级了,计算机安全研究员们只好继续钻研,提出了新的防护方法,就是加“盐”。
这里的“盐”,是网站自己的特定文字,添加在用户的密码上然后计算天书。这样黑客拿到的是加了盐的天书。
因为各个网站的盐都不一样,给黑客计算彩虹表的难度又增加了很多。比如同样是abc123,在老推那里加盐应该是abc123Twitter,在老品那里加盐应该是abc123Pinterest。当然老推和老品都不会把盐告诉别人就是了。
这会儿老推已经把小扎的Twitter账号恢复了,心情很好地问领英:“你密码加盐了吗?”老品也问:“加了吗?”领英泪眼婆娑,一脸懵逼:“盐?盐是什么......”然后我就看到领英在前面跑,老推和老品举着西瓜刀在后面追,小扎拉了一车西瓜刀,大街上每个人手里塞一把。(编者注:画面感太强,已笑哭)
领英这么大的社交网站,密码不加盐存储是很恶劣的。现在黑客们拿到了我们的密码天书,只要用彩虹表一查,就能查到我们的密码明文。小扎的Twitter和Pinterest密码也就是那几个他常用的,拿领英那边算出来的一试,就黑进去了。
不跟大家聊了,刚才小扎给我手里也塞了一把西瓜刀,我要去砍领英了,大家千万记得改领英的密码啊!千万改成一个没在其他网站用过的密码啊!千万不要用abc123啊!
雷锋网注:本文为雷锋网独家文章,转载请联系授权并保存完整信息,不得修改、删减文章。