可以關(guān)閉互聯(lián)網(wǎng)的七個(gè)人,太厲害了!
這個(gè)世界上有7個(gè)人,如果他們?cè)敢獾脑?,可以把整個(gè)互聯(lián)網(wǎng)“關(guān)閉”。
他們之所以這么牛,主要因?yàn)槊咳苏莆樟艘话焉衩氐蔫€匙。
這個(gè)神秘的鑰匙是什么?
我們得從IP地址說起。
一、IP地址和DNS
世界上每臺(tái)計(jì)算機(jī)都有一個(gè)IP地址,這樣大家可以互相找到對(duì)方,進(jìn)行通信。
圖片
很明顯,110.242.68.5這樣的IP地址太難記了,所以,人類又發(fā)明了域名
圖片
我們可以把所有的域名和IP地址的對(duì)應(yīng)關(guān)系都放到一個(gè)DNS服務(wù)器中,形成一個(gè)集中式的數(shù)據(jù)庫
圖片
但是這個(gè)設(shè)計(jì)會(huì)帶來幾個(gè)嚴(yán)重的問題
1.單點(diǎn)故障
如果該DNS服務(wù)器崩潰,整個(gè)互聯(lián)網(wǎng)就崩潰了
2.性能
全球的電腦都向它發(fā)出請(qǐng)求,這個(gè)服務(wù)器就累死了。
那些需要查詢IP地址的電腦可能距離DNS服務(wù)器很遠(yuǎn),導(dǎo)致嚴(yán)重的時(shí)延。
可以看出,單一集中式的DNS數(shù)據(jù)庫完全沒有擴(kuò)展能力。
所以,人們?cè)O(shè)計(jì)的DNS系統(tǒng)是一個(gè)的分布式數(shù)據(jù)庫。
這個(gè)分布式數(shù)據(jù)庫分為三級(jí):
圖片
根DNS服務(wù)器,全球有13個(gè)(實(shí)際上,每個(gè)根服務(wù)器都是個(gè)冗余服務(wù)器網(wǎng)絡(luò))
頂級(jí)域名服務(wù)器,負(fù)責(zé)頂級(jí)域名,例如com 、org、net、edu、gov等
權(quán)威DNS服務(wù)器,如果某個(gè)公司、組織機(jī)構(gòu)在互聯(lián)網(wǎng)上具有可以被公眾訪問的主機(jī),那它必須要提供公共可訪問的DNS記錄。
除了這三級(jí)之外,還有個(gè)叫做“本地DNS服務(wù)器”的DNS,負(fù)責(zé)和這三級(jí)的DNS交互。
通常的交互過程是這樣的。
圖片
不是每次DNS查詢都這么復(fù)雜,為了減少時(shí)延和傳輸?shù)膱?bào)文數(shù)量,DNS廣泛使用了緩存,這里不再詳述。
二、解決DNS的漏洞
分布式,隨意擴(kuò)展,這是個(gè)設(shè)計(jì)得非常漂亮的系統(tǒng)。
任何互聯(lián)網(wǎng)產(chǎn)品,只要不考慮安全,都會(huì)死得很難看。
如果有人冒充DNS服務(wù)器,給你返回了假IP怎么辦?
圖片
所以,這個(gè)DNS記錄發(fā)給瀏覽器的時(shí)候,必須得做個(gè)數(shù)字簽名。
數(shù)字簽名可以證明:
1.這的確是我給你發(fā)的DNS記錄
2.這個(gè)DNS記錄在傳輸過程中沒有被篡改過。
數(shù)字簽名依賴非對(duì)稱加密,也就是公鑰和私鑰,這里就不再詳述了,可以參考這篇文章《一個(gè)故事講完Https》
簡單來說就是DNS服務(wù)器用自己的私鑰來對(duì)DNS數(shù)據(jù)進(jìn)行簽名,查詢方用公鑰來驗(yàn)證。
這的確是一個(gè)完美的解決方案,可是和HTTPS一樣,這里也遇到了公鑰分發(fā)的問題。
查詢方如何確定自己拿到的DNS公鑰是合法的呢?
要知道公鑰可是經(jīng)過網(wǎng)絡(luò)傳輸?shù)模耆赡鼙恢虚g人篡改,進(jìn)行中間人攻擊?。?/p>
既然問題和HTTPS一樣,那解決思路也是一樣的:讓上級(jí)對(duì)下級(jí)服務(wù)器的公鑰進(jìn)行簽名。然后用上級(jí)的公鑰來驗(yàn)證。
可是,如何安全地拿到上級(jí)的公鑰?它在網(wǎng)絡(luò)傳輸中會(huì)不會(huì)被篡改呢?有可能。
那就用上上級(jí)對(duì)上級(jí)的公鑰簽名,用上上級(jí)的公鑰驗(yàn)證簽名。
可是,上上級(jí)的公鑰在網(wǎng)絡(luò)傳輸?shù)倪^程中會(huì)不會(huì)被篡改呢?會(huì)的。
那就用上上上級(jí)對(duì)上上級(jí)的公鑰簽名,用上上上級(jí)的公鑰驗(yàn)證簽名
......
如此下去,總得有個(gè)盡頭吧,那就是ICANN(“互聯(lián)網(wǎng)名稱與數(shù)字地址分配機(jī)構(gòu)”)的公鑰!
大家都信任ICANN,可以把它的公鑰內(nèi)置到系統(tǒng)中,這樣一個(gè)信任鏈就可以建立起來了!
三、可以關(guān)閉互聯(lián)網(wǎng)的7個(gè)人
而ICANN的私鑰,這可是天大的秘密了,一定得保護(hù)好。
私鑰本身其實(shí)是個(gè)文件,ICANN把它放到了一個(gè)叫做硬件安全模塊 (HSM) 的專用設(shè)備中。
圖片
這個(gè)HSM做了四個(gè)備份,分別保存在相距4000公里的美國東西海岸。
圖片
每個(gè)備份都被重重保護(hù),保險(xiǎn)箱、攝像頭、指紋、警衛(wèi)......你能想象的保護(hù)方式都用上了。
圖片
即使你通過了重重防衛(wèi),成功地拿到了一個(gè)HSM,你也很難打開它。
如果你嘗試暴力打開,HSM會(huì)擦除其保存的密鑰,你啥也拿不到。
正確的做法是使用幾張智能卡,但是這些智能卡保存在其他的保險(xiǎn)箱里,只有使用物理的鑰匙才能打開。
這些鑰匙,被世界上7個(gè)人所持有(實(shí)際上,還有七個(gè)人作為備份)。嗯,這七個(gè)人終于出現(xiàn)了!
圖片
這些鑰匙持有者并不是各國的政要,而是安全領(lǐng)域的頂級(jí)專家,他們對(duì)這一套安全流程理解地比你我要透徹地多。
當(dāng)需要使用ICANN私鑰的時(shí)候,七個(gè)人中的五個(gè)需要拿著它們的鑰匙,來到保存HSM的地方,取出各自的smart card,然后一起開啟HSM。
這個(gè)過程被稱為key ceremony(鑰匙儀式)。
圖片
由于必須要保證私鑰的安全性,key ceremony的安全措施非常嚴(yán)格。
參與者需要多次掃描指紋,使用多個(gè)密鑰代碼,才能打開進(jìn)入會(huì)議室的一道道門。
圖片
這個(gè)會(huì)議室是密閉的,連電子信號(hào)都傳不出去。
大樓保安和清潔工也不能進(jìn),有一次,一個(gè)瑞典的鑰匙持有者買了個(gè)20美元的吸塵器專門做了清潔。
整個(gè)活動(dòng)嚴(yán)格按照事先寫好的腳本來進(jìn)行,有100多個(gè)步驟,所有操作都使用GMT時(shí)間記錄到分鐘,每一步都保持透明。
圖片
流程極其嚴(yán)謹(jǐn),甚至連筆記本和HSM在桌子上的擺放位置都畫好了。
圖片
圖片
當(dāng)然,有時(shí)候也會(huì)出差錯(cuò),有一次,安全控制器將保險(xiǎn)箱的門關(guān)上時(shí),觸發(fā)地震傳感器,進(jìn)而觸發(fā)自動(dòng)門鎖。儀式管理員和鑰匙持有者都被鎖在一個(gè)8英尺見方的籠子里!
儀式完畢之后,據(jù)說他們會(huì)去當(dāng)?shù)氐牟宛^慶祝一番。
如需轉(zhuǎn)載,請(qǐng)通過作者微信公眾號(hào)coderising獲取授權(quán)。