超文本傳輸協(xié)議HTTP協(xié)議被用于在Web瀏覽器和網(wǎng)站服務(wù)器之間傳遞信息胖翰,HTTP協(xié)議以明文方式發(fā)送內(nèi)容,不提供任何方式的數(shù)據(jù)加密切厘,如果攻擊者截取了Web瀏覽器和網(wǎng)站服務(wù)器之間的傳輸報(bào)文,就可以直接讀懂其中的信息懊缺,因此疫稿,HTTP協(xié)議不適合傳輸一些敏感信息,比如:信用卡號(hào)鹃两、密碼等支付信息遗座。
為了解決HTTP協(xié)議的這一缺陷,需要使用另一種協(xié)議:安全套接字層超文本傳輸協(xié)議HTTPS俊扳,為了數(shù)據(jù)傳輸?shù)陌踩?strong>HTTPS在HTTP的基礎(chǔ)上加入了SSL協(xié)議途蒋,SSL依靠證書(shū)來(lái)驗(yàn)證服務(wù)器的身份,并為瀏覽器和服務(wù)器之間的通信加密馋记。
一号坡、HTTP和HTTPS的基本概念
HTTP:是互聯(lián)網(wǎng)上應(yīng)用最為廣泛的一種網(wǎng)絡(luò)協(xié)議,是一個(gè)客戶端和服務(wù)器端請(qǐng)求和應(yīng)答的標(biāo)準(zhǔn)(TCP)梯醒,用于從WWW服務(wù)器傳輸超文本到本地瀏覽器的傳輸協(xié)議宽堆,它可以使瀏覽器更加高效,使網(wǎng)絡(luò)傳輸減少茸习。缺點(diǎn)是:
通信使用明文畜隶,所以內(nèi)容是可以被竊聽(tīng)的;
不會(huì)驗(yàn)證雙方的身份号胚,因此可能會(huì)遇到偽裝籽慢;
無(wú)法驗(yàn)證報(bào)文的完整性,有可能被篡改猫胁。
HTTPS:是以安全為目標(biāo)的HTTP通道箱亿,簡(jiǎn)單講是HTTP的安全版,即HTTP下加入SSL層杜漠,HTTPS的安全基礎(chǔ)是SSL极景,因此加密的詳細(xì)內(nèi)容就需要SSL。
HTTPS協(xié)議的主要作用可以分為兩種:一種是建立一個(gè)信息安全通道驾茴,來(lái)保證數(shù)據(jù)傳輸?shù)陌踩握粒涣硪环N就是確認(rèn)網(wǎng)站的真實(shí)性。
二锈至、HTTP與HTTPS有什么區(qū)別晨缴?
HTTP協(xié)議傳輸?shù)臄?shù)據(jù)都是未加密的,也就是明文的峡捡,因此使用HTTP協(xié)議傳輸隱私信息非常不安全击碗,為了保證這些隱私數(shù)據(jù)能加密傳輸筑悴,于是網(wǎng)景公司設(shè)計(jì)了SSL(Secure Sockets Layer)協(xié)議用于對(duì)HTTP協(xié)議傳輸?shù)臄?shù)據(jù)進(jìn)行加密,從而就誕生了HTTPS稍途。簡(jiǎn)單來(lái)說(shuō)阁吝,HTTPS協(xié)議是由SSL+HTTP協(xié)議構(gòu)建的可進(jìn)行加密傳輸、身份認(rèn)證的網(wǎng)絡(luò)協(xié)議械拍,要比http協(xié)議安全突勇。
HTTPS和HTTP的區(qū)別主要如下:
1、https協(xié)議需要到CA申請(qǐng)證書(shū)坷虑,一般免費(fèi)證書(shū)較少甲馋,因而需要一定費(fèi)用。
2迄损、http是超文本傳輸協(xié)議定躏,信息是明文傳輸,https則是具有安全性的ssl加密傳輸協(xié)議芹敌。
3痊远、http和https使用的是完全不同的連接方式,用的端口也不一樣党窜,前者是80拗引,后者是443。
4幌衣、http的連接很簡(jiǎn)單矾削,是無(wú)狀態(tài)的;HTTPS協(xié)議是由SSL+HTTP協(xié)議構(gòu)建的可進(jìn)行加密傳輸豁护、身份認(rèn)證的網(wǎng)絡(luò)協(xié)議哼凯,比http協(xié)議安全。
三楚里、HTTPS的工作原理
https并非是應(yīng)用層的一種新協(xié)議断部,它只是在http通信接口部分用SSL(Secure Socket Layer)和TLS(Transport Layer Security)協(xié)議代替而已。
瀏覽器使用http時(shí)班缎,直接同tcp通信蝴光;當(dāng)瀏覽器使用https時(shí),瀏覽器會(huì)先同TLS/SSL進(jìn)行通信达址,然后TLS/SSL再同tcp進(jìn)行通信蔑祟。
在使用TLS/SSL后,http便擁有了加密功能沉唠。TLS/SSL是獨(dú)立于http的協(xié)議疆虚,所以其也可以同應(yīng)用層的其他協(xié)議配合使用。
SSL類(lèi)似于TCP的三次握手,在HTTP鏈接建立之前進(jìn)行四次握手径簿,從而客戶度和服務(wù)端溝通好HTTP傳輸時(shí)對(duì)稱(chēng)加密的密鑰罢屈,SSL的四次握手其過(guò)程如下:
客戶端請(qǐng)求建立SSL連接,發(fā)送支持的加密方式以及一個(gè)隨機(jī)數(shù)client random給服務(wù)器篇亭;
服務(wù)器選擇其中的一種加密方式缠捌,并且再加上另外一個(gè)隨機(jī)數(shù)server random,和數(shù)字證書(shū)(其中有公鑰)译蒂,發(fā)送給客戶端鄙币;
客戶端確認(rèn)這個(gè)數(shù)字證書(shū)是有效的,并且再生成一個(gè)新的隨機(jī)數(shù)蹂随,將這個(gè)隨機(jī)數(shù)用服務(wù)器發(fā)送給它的數(shù)字證書(shū)中的公鑰進(jìn)行加密發(fā)送給服務(wù)器;
服務(wù)器收到客戶端的回復(fù)因惭,利用自己的私鑰進(jìn)行解密岳锁,獲得這個(gè)隨機(jī)數(shù),然后通過(guò)將前面這三個(gè)隨機(jī)數(shù)以及他們協(xié)商的加密方式蹦魔,計(jì)算生成一個(gè)對(duì)稱(chēng)密鑰激率。
至此握手階段完成,之后的會(huì)話他們就通過(guò)這個(gè)對(duì)稱(chēng)密鑰進(jìn)行加密傳輸勿决。
HTTPS可以完成上述HTTP的缺陷:通過(guò)對(duì)通信內(nèi)容加密保證了內(nèi)容的安全性乒躺。并且通過(guò)數(shù)字證書(shū)可以驗(yàn)證雙方的身份,因?yàn)閿?shù)字證書(shū)是由權(quán)威機(jī)構(gòu)(CA)頒布的低缩。并且因?yàn)閳?bào)文中有發(fā)送方的數(shù)字簽名嘉冒,所以接收方可以先驗(yàn)證數(shù)字簽名,從而驗(yàn)證了數(shù)據(jù)沒(méi)有被篡改咆繁,保證了完整性讳推。
四、HTTPS的優(yōu)點(diǎn)
(1)使用HTTPS協(xié)議可認(rèn)證用戶和服務(wù)器玩般,確保數(shù)據(jù)發(fā)送到正確的客戶機(jī)和服務(wù)器银觅;
(2)HTTPS協(xié)議是由SSL+HTTP協(xié)議構(gòu)建的可進(jìn)行加密傳輸、身份認(rèn)證的網(wǎng)絡(luò)協(xié)議坏为,要比http協(xié)議安全究驴,可防止數(shù)據(jù)在傳輸過(guò)程中不被竊取、改變匀伏,確保數(shù)據(jù)的完整性洒忧。
(3)HTTPS是現(xiàn)行架構(gòu)下最安全的解決方案,雖然不是絕對(duì)安全帘撰,但它大幅增加了中間人攻擊的成本跑慕。
五、HTTPS的缺點(diǎn)
雖然說(shuō)HTTPS有很大的優(yōu)勢(shì),但其相對(duì)來(lái)說(shuō)核行,還是存在不足之處的:
(1)HTTPS協(xié)議握手階段比較費(fèi)時(shí)牢硅,會(huì)使頁(yè)面的加載時(shí)間延長(zhǎng)近50%,增加10%到20%的耗電芝雪;
(2)HTTPS連接緩存不如HTTP高效减余,會(huì)增加數(shù)據(jù)開(kāi)銷(xiāo)和功耗,甚至已有的安全措施也會(huì)因此而受到影響惩系;
(3)SSL證書(shū)需要錢(qián)位岔,功能越強(qiáng)大的證書(shū)費(fèi)用越高,個(gè)人網(wǎng)站堡牡、小網(wǎng)站沒(méi)有必要一般不會(huì)用抒抬。
(4)SSL證書(shū)通常需要綁定IP,不能在同一IP上綁定多個(gè)域名晤柄,IPv4資源不可能支撐這個(gè)消耗擦剑。
(5)HTTPS協(xié)議的加密范圍也比較有限,在黑客攻擊芥颈、拒絕服務(wù)攻擊惠勒、服務(wù)器劫持等方面幾乎起不到什么作用。最關(guān)鍵的爬坑,SSL證書(shū)的信用鏈體系并不安全纠屋,特別是在某些國(guó)家可以控制CA根證書(shū)的情況下,中間人攻擊一樣可行盾计。