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