5
雷鋒網(wǎng)按:本文作者Song,雷鋒網(wǎng)專欄特約作者,西雅圖Newsky Security公司聯(lián)合創(chuàng)始人兼CTO,業(yè)內(nèi)知名防病毒專家,黑客。
前幾天鬧得紛紛揚(yáng)揚(yáng)的領(lǐng)英賬號密碼大規(guī)模泄露事件,今天終于有了更有意思的發(fā)展:臉書老大小扎的社交網(wǎng)絡(luò)賬號,準(zhǔn)確地說,是Pinterest和Twitter賬號,被黑了,也可參看雷鋒網(wǎng)消息:《沒天理! 扎克伯格的賬號都被黑》。
(截圖來自 venturebeat.com)
這就好像一個(gè)銀行業(yè)的大佬,錢不是全放自己銀行里面的,也在后院挖個(gè)坑埋點(diǎn),也在街對面的老推和老品開的銀行里面存點(diǎn)。結(jié)果早上起來一看,得,老推和老品的銀行被人給挖了個(gè)驢那么大的洞,錢都給用驢車運(yùn)走了。
要說這年頭銀行被人偷也不是啥特別大的新聞了,倒是哪家銀行不被偷是挺稀奇的事兒。街拐角的領(lǐng)英銀行最近剛跟大家說,趕緊把錢捂緊了,我們2012年就被偷了!話音未落,老推跟老品沖過去就給了領(lǐng)英一大嘴巴:“都怪你!”領(lǐng)英當(dāng)然不干了,一手捂著臉一手捏著自己的領(lǐng)帶,“這個(gè)事情,怎么怪得到倫家嘛?倫家也是受害者嘛~~~”
不過這個(gè)事情,經(jīng)過安全專家的研究,還真的要怪領(lǐng)英。各位客官莫急,容我慢慢道來。
現(xiàn)代互聯(lián)網(wǎng)系統(tǒng)是從當(dāng)年unix聯(lián)網(wǎng)發(fā)展來的,聯(lián)網(wǎng)計(jì)算機(jī)在給人提供服務(wù)的時(shí)候,最重要的就是認(rèn)定對方是誰,行話叫身份認(rèn)證。雖然計(jì)算機(jī)發(fā)展了這么多年,但是身份認(rèn)證依然是當(dāng)年古老的做法:用戶名+密碼。換句話說,就是計(jì)算機(jī)怎么知道你是你呢?因?yàn)槟銈z有個(gè)其他人不知道的小秘密,就是密碼。
后來發(fā)展出來的手機(jī)驗(yàn)證碼,指紋密碼,也都是從這里延伸開的。手機(jī)驗(yàn)證碼是縮短了密碼的時(shí)效性,指紋密碼是生物特征的一種。歸根結(jié)底,都是你和計(jì)算機(jī)彼此的小秘密。我們這里只談密碼這種方式。
網(wǎng)站的計(jì)算機(jī)在你第一次建立賬戶設(shè)置密碼以后,就把密碼存起來,下次你來登錄的時(shí)候,就把你的密碼和存儲的密碼比較一下,如果一樣,說明你知道這個(gè)小秘密,計(jì)算機(jī)就對你這個(gè)閨蜜或者gay蜜敞開心扉,把以前你告訴它的各種心事照片小黃片都拿出來給你看。
所以,如果想裝成你的樣子去看你的心事照片,或者用你的身份去網(wǎng)上造謠生事,那就要知道你的密碼。知道了你的密碼,下次就可以登錄你的賬戶了。黑客是不滿足于一個(gè)個(gè)拿密碼的,最有效的辦法,就是拿到網(wǎng)站管理員的權(quán)限,然后把網(wǎng)站所有存儲的用戶密碼一次都偷走。
魔高一尺道高一丈,計(jì)算機(jī)安全研究員們?yōu)榱朔乐姑艽a被黑客拿走,想出了一個(gè)好辦法,就是不把密碼明文存儲。比如你的密碼是abc123,網(wǎng)站計(jì)算機(jī)其實(shí)不需要知道你的密碼是啥,它只需要知道你輸入的密碼和設(shè)立賬號時(shí)候設(shè)置的密碼是否一致。
數(shù)學(xué)上面有一種算法叫哈希算法,好的哈希算法是單向的,而且很少有碰撞。
單向是意思是說,知道密碼,可以用哈希算法得到一串“天書”,比如密碼abc123用MD5這種哈希算法得到的天書就是e99a18c428cb38d5f260853678922e03,但是拿到天書,很難算出你的密碼。
很少有碰撞,是說不同的密碼算出來的天書都不一樣,全世界人民的密碼都拿來算,不同的兩個(gè)密碼也不容易算出一樣的天書。
比如這種常見的:
現(xiàn)代計(jì)算機(jī)和網(wǎng)站存儲的密碼,都是用這種哈希算法計(jì)算以后的天書。你登錄時(shí)候輸入的密碼,也是經(jīng)過這種計(jì)算,然后和存儲的天書進(jìn)行比較。如果兩者一致,就說明密碼一致。這招有多狠呢?因?yàn)楣K惴ǖ膯蜗蛐?,就算系統(tǒng)管理員,能拿到所有的天書,也沒辦法告訴你這個(gè)密碼原來是啥。
說到這里,領(lǐng)英開始委屈了:“倫家的用戶密碼也是用哈希的,倫家好冤枉,嚶嚶嚶”老推忙著給小扎改他的賬號內(nèi)容,沒空理這茬,老品倒是認(rèn)真,也不管小扎了,反手又給了領(lǐng)英一嘴巴“認(rèn)真聽!”
哈希算法讓黑客們苦惱了好久,各種技巧都不能完整的搞定,直到互聯(lián)網(wǎng)時(shí)代,黑客們能夠用一個(gè)命令調(diào)動成千上萬計(jì)算機(jī)的時(shí)代到來了,把所有知道的密碼的天書都算出來,你算法是單向的,我不算了,我查表。這種表,叫彩虹表。知道了天書和哈希算法,一查表就知道密碼了。反正計(jì)算和存儲都便宜?,F(xiàn)在你上網(wǎng)查,就能查出來e99a18c428cb38d5f260853678922e03的對應(yīng)MD5明文是abc123。
斗爭升級了,計(jì)算機(jī)安全研究員們只好繼續(xù)鉆研,提出了新的防護(hù)方法,就是加“鹽”。
這里的“鹽”,是網(wǎng)站自己的特定文字,添加在用戶的密碼上然后計(jì)算天書。這樣黑客拿到的是加了鹽的天書。
因?yàn)楦鱾€(gè)網(wǎng)站的鹽都不一樣,給黑客計(jì)算彩虹表的難度又增加了很多。比如同樣是abc123,在老推那里加鹽應(yīng)該是abc123Twitter,在老品那里加鹽應(yīng)該是abc123Pinterest。當(dāng)然老推和老品都不會把鹽告訴別人就是了。
這會兒老推已經(jīng)把小扎的Twitter賬號恢復(fù)了,心情很好地問領(lǐng)英:“你密碼加鹽了嗎?”老品也問:“加了嗎?”領(lǐng)英淚眼婆娑,一臉懵逼:“鹽?鹽是什么......”然后我就看到領(lǐng)英在前面跑,老推和老品舉著西瓜刀在后面追,小扎拉了一車西瓜刀,大街上每個(gè)人手里塞一把。(編者注:畫面感太強(qiáng),已笑哭)
領(lǐng)英這么大的社交網(wǎng)站,密碼不加鹽存儲是很惡劣的。現(xiàn)在黑客們拿到了我們的密碼天書,只要用彩虹表一查,就能查到我們的密碼明文。小扎的Twitter和Pinterest密碼也就是那幾個(gè)他常用的,拿領(lǐng)英那邊算出來的一試,就黑進(jìn)去了。
不跟大家聊了,剛才小扎給我手里也塞了一把西瓜刀,我要去砍領(lǐng)英了,大家千萬記得改領(lǐng)英的密碼啊!千萬改成一個(gè)沒在其他網(wǎng)站用過的密碼啊!千萬不要用abc123啊!
雷鋒網(wǎng)注:本文為雷鋒網(wǎng)獨(dú)家文章,轉(zhuǎn)載請聯(lián)系授權(quán)并保存完整信息,不得修改、刪減文章。
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。