證書(shū)頒發(fā)機(jī)構(gòu)(Certificate Authorities)自誕生以來(lái),一直就是 DNS 及網(wǎng)絡(luò)的中心,并且在保護(hù)網(wǎng)絡(luò)安全方面扮演著不可或缺的角色。簡(jiǎn)而言之,C
證書(shū)頒發(fā)機(jī)構(gòu)(Certificate Authorities)自誕生以來(lái),一直就是 DNS 及網(wǎng)絡(luò)的中心,并且在保護(hù)網(wǎng)絡(luò)安全方面扮演著不可或缺的角色。
簡(jiǎn)而言之,CA 就是現(xiàn)代互聯(lián)網(wǎng)的信任之錨,發(fā)行著用于代表網(wǎng)絡(luò)實(shí)體的數(shù)字證書(shū)。數(shù)字證書(shū)是一種經(jīng)過(guò)驗(yàn)證的憑證,最終表現(xiàn)為線上的數(shù)字身份。CA 的職責(zé)就是確保這些信息受到保護(hù)、可用于加密網(wǎng)絡(luò)參與者(客戶端和主機(jī))之間傳遞的數(shù)據(jù)。
與此同時(shí),CA 也發(fā)行 SSL 證書(shū),該證書(shū)將網(wǎng)站的所有權(quán)與一組公鑰綁定在了一起。然而,對(duì)政府層面的攻擊威脅與日俱增,未來(lái)當(dāng)用戶使用這類中心化的證書(shū)存儲(chǔ)庫(kù)時(shí),可能會(huì)遇見(jiàn)假冒的對(duì)手方。2017 年,用戶累計(jì)收到了超過(guò) 2.67 億個(gè)釣魚(yú) URL 。此外,Zscalar 公布的一份云安全報(bào)告指出,僅在 2018 年就有超過(guò) 17 億個(gè)隱藏在 SSL 流量中的高級(jí)威脅被攔截。
2019 年 7 月期間,出現(xiàn)了 1 萬(wàn)個(gè)企圖釣魚(yú)的 SSL 證書(shū)(CA 還沒(méi)有撤銷這些釣魚(yú)證書(shū))。
如今,互聯(lián)網(wǎng)已經(jīng)陪我們走過(guò)了 30 多年,我們也需要一個(gè)更加現(xiàn)代化、更加強(qiáng)健的解決方案來(lái)減少攻擊和對(duì)第三方中間機(jī)構(gòu)(如 CA)的依賴。
于是,Handshake 應(yīng)運(yùn)而生。它是一種最新的協(xié)議,旨在提供一種強(qiáng)健的、可以替代 DNS 的方案,同時(shí)解決我們當(dāng)前面臨的一些重大問(wèn)題。作為我介紹 Handshake 系列的后續(xù)文章,我將更深入地探究互聯(lián)網(wǎng)協(xié)議組件的功能,以及 CA 是如何協(xié)同工作、讓現(xiàn)代的 web 運(yùn)行起來(lái)的。
SSL/DNS 在互聯(lián)網(wǎng)的技術(shù)棧層中處于什么位置?
互聯(lián)網(wǎng)協(xié)議組件(IPS)驅(qū)動(dòng)著我們今天所使用的互聯(lián)網(wǎng)。它是一套分層的網(wǎng)絡(luò)棧,允許全世界的計(jì)算機(jī)之間互相傳遞數(shù)據(jù)包。瀏覽器和主機(jī)之間使用超文本傳輸協(xié)議(HTTP)和安全套接層(SSL)來(lái)建立加密通信、進(jìn)行數(shù)據(jù)傳輸。SSL 是一個(gè)與 HTTP 協(xié)同工作的協(xié)議層,它為瀏覽器的運(yùn)行提供加密通信功能。
為了更好地理解 HTTP 和 SSL 協(xié)議實(shí)際上是如何運(yùn)行的,我在下面舉了一個(gè)例子,來(lái)看看 Alice 是如何連接到 Bob 的網(wǎng)站的吧。
1. 首先,Alice 打開(kāi)瀏覽器,在地址欄中輸入 Bob.com
2. 接著,Alice 的瀏覽器將連接到一個(gè)域名解析器,獲取目標(biāo)網(wǎng)址的服務(wù)器地址(此過(guò)程未經(jīng)加密)
3. 一旦域名解析完成以后,Bob 網(wǎng)站的服務(wù)器將向 Alice 的電腦發(fā)送一個(gè)證書(shū)以及對(duì)應(yīng)的公鑰
4. Alice 的電腦通過(guò)該證書(shū)使用的 CA 來(lái)對(duì)該證書(shū)的合法性進(jìn)行驗(yàn)證
5. 一旦驗(yàn)證成功,Alice 的電腦和 Bob 網(wǎng)站的服務(wù)器就彼此確認(rèn)了眼神,然后建立起加密的 SSL/TLS 連接。
6. 到了這一步,Alice 的客戶端(她的電腦)和 Bob 的服務(wù)器之間就能暢快無(wú)阻的發(fā)送加密數(shù)據(jù)啦
網(wǎng)絡(luò)協(xié)議棧是一套用于在網(wǎng)絡(luò)中各參與方之間傳遞數(shù)據(jù)的組件,但它嚴(yán)重依賴于你所采用的 CA 或更重要的公鑰基礎(chǔ)設(shè)施(PKI),來(lái)確保你在網(wǎng)上沖浪時(shí)保持私密且不受侵害。
什么是公鑰基礎(chǔ)設(shè)施(PKI)
要想在數(shù)據(jù)交換的過(guò)程中確保數(shù)據(jù)的準(zhǔn)確和安全,信任是不可或缺的。PKI 就是一套設(shè)定通信雙方交互策略、結(jié)構(gòu)和流程的系統(tǒng),讓交互雙方可以相互信任并安全地交換信息。
一般來(lái)說(shuō),會(huì)有多個(gè)中間方來(lái)來(lái)協(xié)調(diào)兩個(gè)實(shí)體之間的信任。當(dāng)你使用公開(kāi)的互聯(lián)網(wǎng)也就意味著你信任根 CA 會(huì)為你提供正確無(wú)誤的信息。CA 的使命就是管理代表其它實(shí)體的數(shù)字證書(shū)。頒發(fā)數(shù)字證書(shū)是為了防止在數(shù)據(jù)傳遞的過(guò)程中發(fā)生中間人攻擊,這種攻擊可能會(huì)繞過(guò)信任機(jī)制并將用戶引導(dǎo)至惡意的網(wǎng)站。舉例來(lái)說(shuō),IdenTrust 就是一個(gè)典型的 CA,管理著諸如 Twitter 在內(nèi)的其它實(shí)體的數(shù)字證書(shū)。
在上面這個(gè)例子里,IdenTrust 將發(fā)送一個(gè) X.509 證書(shū)給請(qǐng)求訪問(wèn) Twitter 的用戶。在這個(gè)數(shù)字證書(shū)中包含了一系列信息,包括經(jīng)過(guò)驗(yàn)證的公鑰,證書(shū)的失效日期,數(shù)字簽名和其它重要條款。一旦用戶收到了數(shù)字簽名,他就可以使用該數(shù)字簽名對(duì)實(shí)體的身份及公鑰進(jìn)行驗(yàn)證。通常情況下,我們會(huì)使用 RSA(Rivest-Shamir-Adleman)算法或橢圓曲線數(shù)字簽名算法(ECDSA,Elliptical Curve Digital Signature Algorithm)來(lái)生成公鑰。
RSA 算法和 ECDSA 都是非對(duì)稱加密技術(shù),這也就意味著用戶只需使用主機(jī)的公鑰就可以完成對(duì)信息的加密,然后在公開(kāi)的網(wǎng)絡(luò)環(huán)境中將加密后的信息發(fā)送給主機(jī)(也就是這個(gè)例子中的 Twitter)。只有與公鑰關(guān)聯(lián)的私鑰(即主機(jī)所有的私鑰)能夠解密信息。
CA 存在的諸多問(wèn)題
讀到這里,大家應(yīng)該已經(jīng)基本明白了互聯(lián)網(wǎng)協(xié)議組件中的 PKI 和 CA 是如何運(yùn)行的,接下來(lái),我們一起討論一下可能出現(xiàn)的一些問(wèn)題。
CA 在整個(gè)過(guò)程中一直扮演著一個(gè)中心化認(rèn)證組織的角色,它負(fù)責(zé)存儲(chǔ)數(shù)字證書(shū),并充當(dāng)兩個(gè)實(shí)體之間的中間人。每一個(gè) CA 都有它獨(dú)有的驗(yàn)證程序來(lái)判斷域名的有效性和安全性。此外,三家營(yíng)利性組織占據(jù)了大約 90% 全球市場(chǎng)份額。最終,這種存儲(chǔ)和發(fā)行證書(shū)的方式可能出現(xiàn)安全漏洞。W3 Tech 近期公布的一篇報(bào)告中列出了主流 CA 的全球市場(chǎng)份額。
很顯然,還存在一些改進(jìn)的空間。
當(dāng)一個(gè)網(wǎng)絡(luò)實(shí)體(比如 Twitter)要向一個(gè)已知的 CA 申請(qǐng)獲取數(shù)字證書(shū)時(shí),需要經(jīng)過(guò)一個(gè)域名驗(yàn)證的過(guò)程??煽康?SSL 證書(shū)讓用戶有信心防止網(wǎng)絡(luò)釣魚(yú),詐騙,和欺詐。然而,接收數(shù)字證書(shū)的過(guò)程有點(diǎn)過(guò)于簡(jiǎn)單了。CA 就只是向 WHOIS 記錄中的域名聯(lián)系人發(fā)送域名驗(yàn)證型證書(shū)而已。這也太草率了吧!
整個(gè)事情就是:某個(gè)用戶申請(qǐng)一個(gè)數(shù)字證書(shū),然后 CA 就會(huì)通過(guò)電子郵件向域名聯(lián)系人發(fā)送一個(gè)經(jīng)過(guò)認(rèn)證的證書(shū)。出于額外的安全考量,實(shí)體還可以注冊(cè)一個(gè)擴(kuò)展驗(yàn)證服務(wù),在其它情況中通過(guò)身份檢查來(lái)進(jìn)行驗(yàn)證。但是,通常情況下,用戶不會(huì)發(fā)現(xiàn)其中的區(qū)別,除非他們看見(jiàn)了一個(gè)綠色的橫條或者點(diǎn)擊了瀏覽器左上角的小鎖頭。
這是相當(dāng)危險(xiǎn)的,因?yàn)閴牡耙部梢宰?cè)一個(gè)神似 Twitter 的域名,比如說(shuō) Twiter.com,然后展示出經(jīng)過(guò) CA 認(rèn)證的證書(shū)。
域名驗(yàn)證程序、密鑰存儲(chǔ)以及 CA 爆破,這些環(huán)節(jié)都對(duì)對(duì)諸如瀏覽器中間人、HTTPS 欺騙、ARP 欺騙及其它類型的中間人攻擊敞開(kāi)了罪惡的大門(mén)。舉例來(lái)說(shuō),2000 年初,一家著名的 CA 公司 Verisign 向一名自稱是微軟公司的惡意用戶頒發(fā)了一份數(shù)字證書(shū)。
然后,攻擊者讓用戶誤以為自己收到了有效的 Windows 更新,然后用戶的電腦就被攻陷了。在 2011 年 3 月發(fā)生的一起事故中,Comodo(CA)向冒充微軟和 Google 等網(wǎng)站的惡意用戶頒發(fā)了虛假的證書(shū)。在這個(gè)案例中,用戶被引導(dǎo)進(jìn)一個(gè)惡意的網(wǎng)站,卻誤以為自己正在登錄 Google(實(shí)際上并不是!)。最終 Comodo 發(fā)現(xiàn)了危害,并撤銷了訪問(wèn)該證書(shū)的權(quán)限。
Handshake 的主張
今天,全球所有的頂級(jí)域名都由 13 個(gè)營(yíng)利性組織管理。雖然 CA 由數(shù)千個(gè)組織進(jìn)行管理,但其中三家組織占據(jù)了 90% 的全球市場(chǎng)份額。管理頂級(jí)域名和證書(shū)的組織都會(huì)遭遇中心故障的問(wèn)題。這種問(wèn)題會(huì)一直存在,除非我們將信任從中心化組織轉(zhuǎn)移到去中心化的解決方案上。互聯(lián)網(wǎng)協(xié)議組件和公鑰基礎(chǔ)設(shè)施高度依賴于整體的公共基礎(chǔ)設(shè)施。
我們?yōu)槭裁床荒芤揽抗妬?lái)進(jìn)行域名管理和安全性認(rèn)證呢?
眼下就有這么一場(chǎng)遷移,將貨幣的控制權(quán)交還到公眾手上。自比特幣創(chuàng)生始,貨幣的控制權(quán)便不斷從國(guó)家轉(zhuǎn)移到人民手中。全球的公民因此獲得了對(duì)沖國(guó)家政治風(fēng)險(xiǎn)的能力,還保持了采取行動(dòng)的自由。
Handshake 提出了與比特幣相同的價(jià)值主張,但它改變的是信息流。正如我在以前的文章中提到的,Handshake 是一個(gè)去中心化域名管理協(xié)議,它從根源管理著頂級(jí)域名。正因?yàn)?Handshake 的頂級(jí)域名都被直接存儲(chǔ)在頂層,因此你不再需要 CA 來(lái)管理數(shù)字證書(shū)或私鑰了。
Handshake 如何解決當(dāng)前在 CA 中存在的問(wèn)題?
今天,CA 管理著包含公鑰,簽名和其它相關(guān)信息在內(nèi)的各種數(shù)字記錄。因此,當(dāng)你信任 CA 的時(shí)候,也意味著你相信 CA 擁有安全的數(shù)字文件和經(jīng)過(guò)驗(yàn)證的身份信息。Handshake 的重要性在于:私鑰始終直接由所有者注冊(cè),并始終控制在所有者手中。
這意味著當(dāng)我注冊(cè) “TokenDaily.co” 這個(gè)域名的時(shí)候,Handshake 將在協(xié)議上鎖定域名的所有權(quán),并通過(guò)網(wǎng)絡(luò)中的所有節(jié)點(diǎn)對(duì)其進(jìn)行傳播。當(dāng)用戶解析到命名空間時(shí),它將直接指向一個(gè)簡(jiǎn)潔的證書(shū),并驗(yàn)證請(qǐng)求的合法性。這將成為私鑰和已注冊(cè)域名之間的規(guī)范信任點(diǎn)。
總結(jié)
Handshake 協(xié)議正在減少我們對(duì)頂級(jí)域名和 CA 的需求,也將減少我們對(duì)第三方提供商的依賴。這場(chǎng)轉(zhuǎn)移最終將導(dǎo)致中間機(jī)構(gòu)的減少,并給用戶帶來(lái)更強(qiáng)的安全性。這意味著信息將自由流動(dòng),而你無(wú)需再擔(dān)心攻擊者仿冒你的域名。今時(shí)今日,網(wǎng)絡(luò)上發(fā)生著數(shù)以十億計(jì)的攻擊,任何人都有可能成為釣魚(yú) URL 或 SSL 隱藏威脅的受害者。我們?cè)绞切枰湃?,就越需要更快地找到這個(gè)問(wèn)題的解決方案。
隨著 Handshake 協(xié)議、Handshake 聯(lián)盟、Urkel、和 Handshake 學(xué)院的發(fā)明,我們將開(kāi)始見(jiàn)證一場(chǎng)從信任人到信任代碼的轉(zhuǎn)變 —— 這將帶給互聯(lián)網(wǎng)前所未有的安全。(作者: Imran Khan)