隨著互聯(lián)網(wǎng)越來越深入的滲透到人們生活的方方面面,網(wǎng)絡(luò)安全變得越來越重要,不僅是人們上網(wǎng)要注重個人隱私和安全,企業(yè)同樣需要提供安全的互聯(lián)網(wǎng)服務(wù)。一個安全的網(wǎng)絡(luò)服務(wù),會給用戶帶來愉悅和安寧,用戶對安全是無感的,這是最好的體驗。而不安全的服務(wù),總是會給人們帶來災(zāi)難。
黑暗森林法則是科幻小說作家劉慈欣在「三體」中提出的理論,世界就是一座黑暗森林,每個文明都是帶槍的獵人,像幽靈般潛行于林間,輕輕撥開擋路的樹枝,竭力不讓腳步發(fā)出一點兒聲音。他必須小心,因為林中到處都有與他一樣潛行的獵人,如果他發(fā)現(xiàn)了別的生命,能做的只有一件事:開槍消滅之。所以,在準(zhǔn)備好之前,永遠(yuǎn)不要暴露在公眾面前。
黑暗森林法則很適用于安全行業(yè):一旦暴露在公眾的視野中,黑客就會對你很感興趣,就會找出來你的很多問題。從以往的經(jīng)驗來看,在世界杯期間,彩票網(wǎng)站受攻擊很厲害;在熱錢涌入 P2P 小貸行業(yè)期間,整個P2P小貸行業(yè)受攻擊非常頻繁;現(xiàn)在資本進入了在線直播行業(yè),可以預(yù)計,如果沒有安全保護措施,這個行業(yè)很快會經(jīng)歷黑客的洗禮。你很難知道黑客會在什么時候光顧你。對于黑暗森林法則,低調(diào)可以保護你一時,但是無法永遠(yuǎn)保護你,因為業(yè)務(wù)要發(fā)展,必然會暴露在公眾的眼中。
如何構(gòu)建安全的互聯(lián)網(wǎng)服務(wù)呢?這是個宏大的話題,無數(shù)安全領(lǐng)域的先驅(qū)者都在為此努力。簡單來說,每個互聯(lián)網(wǎng)企業(yè)都該有自己獨立的安全部門,有安全員,建立自己的安全規(guī)范,讓程序員寫安全的代碼,跟蹤業(yè)界的安全和漏洞報告,及時升級服務(wù)器的補丁,定期進行眾測、滲透和模擬攻擊,把系統(tǒng)構(gòu)建在高防 DDoS 的系統(tǒng)之上,等等。
這些還不夠,我們還需要構(gòu)建安全的基礎(chǔ)設(shè)置,其中最重要的就是 HTTPS。南寧網(wǎng)站建設(shè)
什么是 HTTPS 呢?簡單來說,HTTPS 就是 HTTP 的安全版本。HTTP 在早期設(shè)計的時候,更多的考慮了輕量級,靈活,減少網(wǎng)絡(luò)傳輸,如何定義數(shù)據(jù)傳輸?shù)姆椒ǖ?,但是在安全層面考慮甚少,傳輸過程中所有的數(shù)據(jù)都是明文,而且不對傳輸雙方進行身份驗證,在傳輸鏈路的任意一個環(huán)節(jié),第三方(代理服務(wù)器、路由器、Wi-Fi 熱點、移動運營商、統(tǒng)一網(wǎng)關(guān)出口、小區(qū)保安等)都可以拿到這些數(shù)據(jù)細(xì)細(xì)品味?;?HTTP 協(xié)議在網(wǎng)絡(luò)上傳輸數(shù)據(jù),就像是一位花枝招展的美女穿行在黑暗森林,手無縛雞之力卻又身懷寶藏,而森林中除了洪水猛獸,還有四十大盜,您說能安全嗎?
為了解決這個問題,保證隱私數(shù)據(jù)能在互聯(lián)網(wǎng)上安全的傳輸,網(wǎng)景公司設(shè)計了 SSL 協(xié)議(Secure Sockets Layer),于是 HTTPS 橫空出世了。它的全稱是超文本傳輸安全協(xié)議,在 HTTP 的基礎(chǔ)上通過 SSL/TLS 來對數(shù)據(jù)包進行加密,保證數(shù)據(jù)的安全。HTTPS 的目的主要有三個,一個是數(shù)據(jù)的保密性,你給別人送個郵包,但郵包是打了封印的,快遞員不知道包里裝的是啥。第二是數(shù)據(jù)的完整性,快遞員不知道郵包是啥,但可以掉包啊,HTTPS 發(fā)現(xiàn)了掉包的數(shù)據(jù),可以拒收。第三就是身份驗證,HTTPS 可以保證郵包被正確的送到指定的接收方,而不是第三方。
HTTPS 的訪問過程大致如圖所示:
是一對公鑰和私鑰。公鑰是一把鎖,而私鑰是解開公鑰的唯一鑰匙,只保存在服務(wù)器上。
服務(wù)器會把公鑰發(fā)給瀏覽器,其中包含了很多信息,比如頒發(fā)機構(gòu)、過期時間、加密算法等。瀏覽器一看是證書來了,會自個去校驗這個證書是否是有效的,如果是無效的,就會告訴用戶證書有問題,別信。如果是有效證書,瀏覽器會生成一個隨機值,或者叫 one-time session key,然后用公鑰證書對其進行加密,然后再發(fā)給服務(wù)器。廣西網(wǎng)站建設(shè)
服務(wù)器有鑰匙啊,可以解開這個加密的數(shù)據(jù),得到這個隨機值,以后客戶端和服務(wù)端的通信就可以通過這個雙方都知道的隨機值來進行加密解密了。只要加密算法足夠強悍,一個非常安全的通道就建立起來了。
普通用戶通常上網(wǎng)的時候,并不會意識到訪問的是 HTTP 還是 HTTPS,比如我們在瀏覽器地址欄輸入 google.com,這時候訪問的是 HTTP,但 Google 會將請求轉(zhuǎn)發(fā)到 HTTPS 上,當(dāng)我們加載頁面的時候后,會發(fā)現(xiàn)瀏覽器地址欄的左側(cè)有一個小鎖,點擊這個小鎖,你會發(fā)現(xiàn)相關(guān)的證書信息,這就表明,你訪問這個網(wǎng)站的數(shù)據(jù)是相對安全的。為什么是相對呢?因為沒有絕對的安全,即使采用了 HTTPS,也可以實現(xiàn)中間人攻擊,或者進行數(shù)據(jù)解密等,但是,目前 HTTPS 目前使用的加密算法需要巨大的計算量才能破解,尤其是進行了雙向認(rèn)證的方式,用最強計算能力的計算機,也得破解幾十年,誰會在幾十年以后看馮老師幾十年前發(fā)出的訊息呢?
事實上,現(xiàn)在很多移動終端與云端的交互,都進行了雙向認(rèn)證,也就是說,移動端也保留了一份類似隨機數(shù)的私鑰證書,用來和服務(wù)器端的證書進行驗證,以保證大家數(shù)據(jù)的安全。
目前,谷歌、騰訊、百度、阿里、銀聯(lián)、Paypal 等國內(nèi)外一流互聯(lián)網(wǎng)公司都采用了全站 HTTPS,當(dāng)然,由于我們在之前談到了直播網(wǎng)站,這里必須提一下斗魚直播,斗魚是國內(nèi)首家,也是目前唯一全站升級到 HTTPS 的網(wǎng)絡(luò)直播平臺。
2016年7月,斗魚全站由 HTTP 協(xié)議升級到了 HTTPS,這種做法同樣是為了保證直播用戶的數(shù)據(jù)安全和隱私安全。但是全站實施 HTTPS 并不是加了一個 S 那么簡單,這里面需要投入巨大的技術(shù)研發(fā)成本、服務(wù)器和帶寬成本等等。
HTTPS 會帶來更多的網(wǎng)絡(luò)握手和消耗,如何提升訪問性能,如何優(yōu)化證書鏈,如何增加高速連接,減少端口之間的跳轉(zhuǎn)等等。采用了 HTTPS 之后,所有的靜態(tài)資源都需要支持 HTTPS,如何讓 CDN 支持 HTTPS,如何應(yīng)對 DDoS 的攻擊,同時,移動客戶端也需要與云端進行雙向證書認(rèn)證。為了解決這些技術(shù)問題,斗魚在前端頁面、后端架構(gòu)、協(xié)議特性、加密算法、流量調(diào)度、架構(gòu)和運維、安全等方面都做了大量工作。除此之外,他們還需要承擔(dān) CA 根節(jié)點證書費用、服務(wù)器和帶寬增加的成本。
實施了 HTTPS 的斗魚,能為用戶帶來什么好處呢?用戶可以獲得一個干凈安全的直播和觀看直播的體驗。比如彈幕,彈幕是直播中與主播溝通的工具,是直播不可分割的一部分,深受用戶關(guān)注和喜愛,因此非常容易受到惡意攻擊行為,發(fā)送廣告和非法信息。彈幕是開放給所有用戶的公共場所,任何人都可以發(fā)言,審核管理工作量巨大且復(fù)雜,受到惡意攻擊行為后會嚴(yán)重影響到大量用戶的體驗,對觀看直播造成惡劣的影響。在 HTTP 時代,我們甚至可以簡單的寫一段腳本就可以把直播間的所有彈幕信息抓下來,因為數(shù)據(jù)在網(wǎng)絡(luò)上是明文傳輸?shù)?。有?HTTPS 的保障,無論是客戶端還是瀏覽器,都可以得到更好的用戶體驗。
事實上,在安全要求越來越嚴(yán)格的今天,未來的中大型網(wǎng)站,都會慢慢過渡到全棧 HTTPS 的時代,這個趨勢是不可阻擋的。如果你的網(wǎng)站依然是全站 HTTP 的,是時候改變了。