HTTPS建設(shè)全解析
隨著網(wǎng)絡(luò)不斷融入日常生活和工作當(dāng)中,網(wǎng)絡(luò)安全問(wèn)題一直都是一個(gè)不能忽略的問(wèn)題。據(jù)CNCERT監(jiān)測(cè)發(fā)現(xiàn),2015年網(wǎng)頁(yè)仿冒、拒絕服務(wù)攻擊等已經(jīng)形成成熟地下產(chǎn)業(yè)鏈的威脅仍然呈現(xiàn)增長(zhǎng)趨勢(shì),針對(duì)中國(guó)網(wǎng)站的仿冒頁(yè)面(URL鏈接)191699個(gè),較2014年增長(zhǎng)85.7%,涉及IP地址20488個(gè),較2014年增長(zhǎng)199.4%。網(wǎng)頁(yè)篡改、網(wǎng)站后門等攻擊事件層出不窮,黨政機(jī)關(guān)、科研機(jī)構(gòu)、重要行業(yè)單位網(wǎng)站依然是黑客組織攻擊特別是APT攻擊的重點(diǎn)目標(biāo)。2015年被植入后門的中國(guó)網(wǎng)站數(shù)量為75028個(gè),較2014年增長(zhǎng)86.7%,其中政府網(wǎng)站為3514個(gè),較2014年增長(zhǎng)130%。
2014年底,百度已對(duì)部分地區(qū)開(kāi)放HTTPS加密搜索服務(wù),隨后,百度實(shí)行全站化HTTPS安全加密服務(wù),百度HTTPS安全加密已覆蓋主流瀏覽器,旨在用戶打造了一個(gè)更隱私化的互聯(lián)網(wǎng)空間、加速了國(guó)內(nèi)互聯(lián)網(wǎng)的HTTPS化。同時(shí)也希望更多網(wǎng)站加入到HTTPS的隊(duì)伍中來(lái),為網(wǎng)絡(luò)安全貢獻(xiàn)一份力量。在此,百度站長(zhǎng)學(xué)院向大家詳細(xì)介紹一下HTTPS,后續(xù)還會(huì)有更詳細(xì)深入的方案教程推出,各位敬請(qǐng)期待。
HTTPS是什么HTTPS(全稱:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全為目標(biāo)的HTTP通道,簡(jiǎn)單講是HTTP的安全版。即HTTP下加入SSL層,HTTPS的安全基礎(chǔ)是SSL,因此加密的詳細(xì)內(nèi)容就需要SSL。 HTTPS存在不同于HTTP的默認(rèn)端口及一個(gè)加密/身份驗(yàn)證層(在HTTP與TCP之間)。這個(gè)系統(tǒng)提供了身份驗(yàn)證與加密通訊方法。現(xiàn)在它被廣泛用于萬(wàn)維網(wǎng)上安全敏感的通訊,例如交易支付方面。
傳統(tǒng)的HTTP模式,存在著大量的灰色中間環(huán)節(jié),相關(guān)信息很容易被竊取,但HTTPS卻是通過(guò)認(rèn)證用戶與服務(wù)器,將數(shù)據(jù)準(zhǔn)確地發(fā)送到客戶機(jī)與服務(wù)器,并采用加密方式以防數(shù)據(jù)中途被盜取,大大降低了第三方竊取信息、篡改冒充身份的風(fēng)險(xiǎn)。
HTTPS主要由有兩部分組成:HTTP + SSL / TLS,也就是在HTTP上又加了一層處理加密信息的模塊。服務(wù)端和客戶端的信息傳輸都會(huì)通過(guò)TLS進(jìn)行加密,所以傳輸?shù)臄?shù)據(jù)都是加密后的數(shù)據(jù)。HTTPS與HTTP的原理區(qū)別可以觀察下圖:
HTTP工作原理:
①客戶端的瀏覽器首先要通過(guò)網(wǎng)絡(luò)與服務(wù)器建立連接,該連接是通過(guò)TCP來(lái)完成的,一般TCP連接的端口號(hào)是80。 建立連接后,客戶機(jī)發(fā)送一個(gè)請(qǐng)求給服務(wù)器,請(qǐng)求方式的格式為:統(tǒng)一資源標(biāo)識(shí)符(URL)、協(xié)議版本號(hào),后邊是MIME信息包括請(qǐng)求修飾符、客戶機(jī)信息和許可內(nèi)容。
② 服務(wù)器接到請(qǐng)求后,給予相應(yīng)的響應(yīng)信息,其格式為一個(gè)狀態(tài)行,包括信息的協(xié)議版本號(hào)、一個(gè)成功或錯(cuò)誤的代碼,后邊是MIME信息包括服務(wù)器信息、實(shí)體信息和可能的內(nèi)容。
HTTPS的工作原理:
①. 客戶端將它所支持的算法列表和一個(gè)用作產(chǎn)生密鑰的隨機(jī)數(shù)發(fā)送給服務(wù)器;
②. 服務(wù)器從算法列表中選擇一種加密算法,并將它和一份包含服務(wù)器公用密鑰的證書(shū)發(fā)送給客戶端;該證書(shū)還包含了用于認(rèn)證目的的服務(wù)器標(biāo)識(shí),服務(wù)器同時(shí)還提供了一個(gè)用作產(chǎn)生密鑰的隨機(jī)數(shù);
③. 客戶端對(duì)服務(wù)器的證書(shū)進(jìn)行驗(yàn)證(有關(guān)驗(yàn)證證書(shū),可以參考數(shù)字簽名),并抽取服務(wù)器的公用密鑰;然后,再產(chǎn)生一個(gè)稱作pre_master_secret的隨機(jī)密碼串,并使用服務(wù)器的公用密鑰對(duì)其進(jìn)行加密(參考非對(duì)稱加/解密),并將加密后的信息發(fā)送給服務(wù)器;
④. 客戶端與服務(wù)器端根據(jù)pre_master_secret以及客戶端與服務(wù)器的隨機(jī)數(shù)值獨(dú)立計(jì)算出加密和MAC密鑰(參考DH密鑰交換算法)。
⑤. 客戶端將所有握手消息的MAC值發(fā)送給服務(wù)器;
⑥. 服務(wù)器將所有握手消息的MAC值發(fā)送給客戶端。
HTTPS的數(shù)據(jù)加密性:
HTTPS中數(shù)據(jù)的保密性主要是通過(guò)加密完成的。加密算法一般分為兩種,一種是非對(duì)稱加密(也叫公鑰加密),另外一種是對(duì)稱加密(也叫密鑰加密)。
HTTPS使用非對(duì)稱加解密主要有兩個(gè)作用,一個(gè)是密鑰協(xié)商,另外可以用來(lái)做數(shù)字簽名。所謂密鑰協(xié)商簡(jiǎn)單說(shuō)就是根據(jù)雙方各自的信息計(jì)算得出雙方傳輸內(nèi)容時(shí)對(duì)稱加解密需要使用的密鑰。如下圖:
對(duì)稱加密就是加密和解密都使用的是同一個(gè)密鑰。如下圖:
HTTS多次握手和復(fù)雜的加密機(jī)制有效的加大了網(wǎng)站的安全性,加密機(jī)制與認(rèn)證機(jī)制可以減少網(wǎng)站被劫持和假冒的風(fēng)險(xiǎn)!