一切都崩壞了。只要問(wèn)任何一個(gè)安全工程師就能知道。回到1998 年,當(dāng)年黑客組織L0pht 曾經(jīng)向美國(guó)國(guó)會(huì)作證,說(shuō)明他們可以在30 分鐘之內(nèi)讓整個(gè)互聯(lián)網(wǎng)停止工作。他們使用的方法是濫用 BGP——邊界網(wǎng)關(guān)協(xié)議(Border Gateway Protocol),這是一個(gè)不為人知但頗為重要的路由系統(tǒng)。這是在 17 年前的事。時(shí)至今日,BGP 和當(dāng)年一樣脆弱。一切都太可怕了。
嗯,那坦白講,這17年來(lái)互聯(lián)網(wǎng)畢竟還是存活下來(lái)了不是?——但比起設(shè)計(jì)巧妙,這更像是僥幸。理論上任何一個(gè)互聯(lián)網(wǎng)服務(wù)提供商(ISP)都可能因之遭遇大破壞。去年有人利用了 BGP 的弱點(diǎn)從比特幣礦工手中竊取了10萬(wàn)美元。兩年前,著名的間諜軟件作者,一個(gè)黑客團(tuán)隊(duì)使用BGP劫持了它本身不擁有的IP數(shù)字。頻繁的報(bào)告出現(xiàn),說(shuō)明大量互聯(lián)網(wǎng)流量以一種可疑的路徑通過(guò)遠(yuǎn)方服務(wù)器。在2008 年,巴基斯坦無(wú)意中由于錯(cuò)誤配置BGP導(dǎo)致YouTube在該國(guó)下線兩小時(shí)。這樣的例子簡(jiǎn)直舉不勝舉。
不只是BGP。域名系統(tǒng)(DNS)用來(lái)把域名指向 IP 地址。這個(gè)系統(tǒng)自從誕生之日起就存在基礎(chǔ)性的弱點(diǎn),因此遭受了多輪襲擊。從 90 年代開(kāi)始人們就致力于保護(hù)它的安全。安全的 DNS,巧妙的被命名為 DNSSEC,這是一個(gè)真實(shí)存在的東西,而……僅被全球范圍內(nèi)少于 13%的 DNS 驗(yàn)證系統(tǒng)使用。它的對(duì)應(yīng)物,BGPSEC,現(xiàn)在……仍在等待最終的標(biāo)準(zhǔn)化進(jìn)程,尚未投入運(yùn)行。
再說(shuō)一次,DNS和BGP是從上世紀(jì)開(kāi)始,其高度脆弱性就廣為人知。
等等,事情更糟糕了!甚至就連對(duì)系統(tǒng)漏洞的修補(bǔ)也是充滿毛病。不管是 DNSSEC 還是 BGPSEC 都依賴由SSL和TLS證書(shū)和證書(shū)簽署者信任的同一種等級(jí)信任系統(tǒng)。至少,對(duì)瀏覽器而言,這個(gè)系統(tǒng)是“毫無(wú)希望地千瘡百孔”。你的瀏覽器信任各種各樣的“根證書(shū)”,而其中任何一 種都可能被劫持或者損壞。
固定證書(shū)和安全性轉(zhuǎn)發(fā)有所幫助,但根源上的問(wèn)題仍舊未改變:等級(jí)信任系統(tǒng)是,理所當(dāng)然是,分等級(jí)給予信任的。如果一個(gè)證書(shū)授權(quán)被損壞——這并不是一個(gè)理論上需要考慮的情況——接下來(lái)信任這個(gè)授權(quán)方的每一個(gè)人都某種程度上陷入危險(xiǎn)。
覺(jué)得糟透了對(duì)嗎?等等!我才剛開(kāi)始說(shuō)。這些都是巨大的深不見(jiàn)底的陷阱,隨時(shí)將互聯(lián)網(wǎng)自身的安全性置于不利境地,讓人們的操作看起來(lái)就像是在紙板和膠帶粘成的獨(dú)木橋上走貓步那么危險(xiǎn)。但就算你已經(jīng)做到了安全連接到想要訪問(wèn)的網(wǎng)站,這才剛剛引申出一堆新的問(wèn)題。你在瀏覽器安裝和運(yùn)行了Flash 對(duì)不對(duì)?你這個(gè)大,傻,冒!
甚至,你可能還安裝有Java。你真不應(yīng)該這么做。但就算以上陷阱你全都沒(méi)有踏入,最終連接到正確的服務(wù)器上,依然有嚇人的高幾率可以讓一切安全措施看起來(lái)都想幼兒園小孩搭的 枕頭堡壘一般可笑。在我們現(xiàn)在身處的這個(gè)時(shí)代,在 2015 年,次主流互聯(lián)網(wǎng)站點(diǎn)們依然以純文本存儲(chǔ)用戶的密碼,而不是加鹽和 hash 處理它們——這本來(lái)應(yīng)該是最最基礎(chǔ)的常識(shí)。(注:一位身為專(zhuān)家的朋友告訴我,hash 和加鹽都是老黃歷了;應(yīng)該使用 bcrypt 更好些。)而且,自然了,這些密碼中一大堆都會(huì)是“wodemima”或者“12345678”。請(qǐng)至少使用復(fù)雜點(diǎn)的密碼——可以的話,請(qǐng)用一個(gè)密碼管理 器。
在線安全是一個(gè)經(jīng)典的潘多拉魔盒——但請(qǐng)不要忘記神話中潘多拉發(fā)現(xiàn)的魔盒最底部的最后一樣?xùn)|西。那就是,希望。
你可以關(guān)掉Flash。你可以關(guān)掉Java。你可以使用密碼管理器。我們可以最終,令人信服地,把分等級(jí)的證書(shū)提供商替換為去中心化的,成塊鏈接的安全服務(wù)。我們知道如何促進(jìn)網(wǎng)絡(luò)的整體安 全。我們只是不會(huì)像過(guò)去 20 年那樣始終受其煩擾,因?yàn)榘踩^(guò)程很艱難,而且需要把其他所有配套的事情全都做好。盡管如此,我更想保留希望,我們最終每個(gè)人都會(huì)開(kāi)始意識(shí)到,一次的安全 投資,帶來(lái)的是十倍不止的回報(bào),還有——真正意義上的安全。
我太樂(lè)觀了?那好:就讓我們?cè)谝幌盗邪踩鬄?zāi)難到來(lái)之前,期待每個(gè)人能夠喚起安全意識(shí)吧。在 1998 年干掉整個(gè)互聯(lián)網(wǎng)還不算什么大事。但是現(xiàn)在是網(wǎng)絡(luò)主宰一切的時(shí)代,安全的代價(jià)是每年都在變大的。