http:
? ? 超文本傳輸協(xié)議Http協(xié)議魂贬,是互聯(lián)網(wǎng)應(yīng)用最為廣泛的一種網(wǎng)絡(luò)協(xié)議跟继,是一個(gè)客戶(hù)端和服務(wù)器請(qǐng)求和應(yīng)答的標(biāo)準(zhǔn)(TCP),用于從 www 服務(wù)器傳輸超文本到本地瀏覽器的傳輸協(xié)議,它可以使瀏覽器更加高效蛙婴,使網(wǎng)絡(luò)傳輸減少粗井。
http的缺點(diǎn):
? ? 1、通信使用明文街图。所以?xún)?nèi)容是可以被竊聽(tīng)的浇衬。
? ? 2、它不會(huì)驗(yàn)證雙方的身份餐济,因此可能會(huì)遇到偽裝耘擂。
? ? 3、無(wú)法驗(yàn)證報(bào)文的完整性絮姆,有可能被篡改醉冤。
https:
? ? 是以安全為目的的http通道秩霍,簡(jiǎn)單說(shuō)就是http的安全版,在http下加入SSL層蚁阳,https的安全基礎(chǔ)是SSL前域,因此加密的詳細(xì)內(nèi)容就需要SSL進(jìn)行加密。
? ? https協(xié)議主要作用可以分為兩種韵吨,一是建立一個(gè)信息安全通道匿垄,來(lái)保證數(shù)據(jù)傳輸?shù)陌踩僖环N就是確認(rèn)網(wǎng)站的真實(shí)性归粉。
兩者區(qū)別:
? ? https呢椿疗,需要到CA申請(qǐng)證書(shū),一般免費(fèi)證書(shū)較少糠悼,因此是需要一定的費(fèi)用的官觅。
? ? http 是超文本傳輸協(xié)議谅畅,信息是明文傳輸,而https是具有SSL加密傳輸協(xié)議 相比之下 https是安全的。
? ? http和https使用的連接方式是完全不同的茅姜,用的端口也不一樣的嘶朱,http 是80挑秉,https是443.捶朵;http的連接很簡(jiǎn)單是無(wú)狀態(tài)的,https是由SSL+http來(lái)構(gòu)建的可進(jìn)行加密傳輸(身份認(rèn)證的網(wǎng)絡(luò)協(xié)議)比http協(xié)議安全悼枢。
工作原理:
????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)行四次握手拘哨,從而客戶(hù)度和服務(wù)端溝通好HTTP傳輸時(shí)對(duì)稱(chēng)加密的密鑰,SSL的四次握手其過(guò)程如下:
? ? 1信峻、客戶(hù)端請(qǐng)求建立SSL連接,發(fā)送支持的加密方式以及一個(gè)隨機(jī)數(shù)client random給服務(wù)器瓮床;
? ? 2盹舞、服務(wù)器選擇其中的一種加密方式产镐,并且再加上另外一個(gè)隨機(jī)數(shù)server random,和數(shù)字證書(shū)(其中有公鑰)踢步,發(fā)送給客戶(hù)端癣亚;
? ? 3、客戶(hù)端確認(rèn)這個(gè)數(shù)字證書(shū)是有效的获印,并且再生成一個(gè)新的隨機(jī)數(shù)述雾,將這個(gè)隨機(jī)數(shù)用服務(wù)器發(fā)送給它的數(shù)字證書(shū)中的公鑰進(jìn)行加密發(fā)送給服務(wù)器;
? ? 4兼丰、服務(wù)器收到客戶(hù)端的回復(fù)玻孟,利用自己的私鑰進(jìn)行解密,獲得這個(gè)隨機(jī)數(shù)鳍征,然后通過(guò)將前面這三個(gè)隨機(jī)數(shù)以及他們協(xié)商的加密方式黍翎,計(jì)算生成一個(gè)對(duì)稱(chēng)密鑰。
?? 至此握手階段完成艳丛,之后的會(huì)話(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的缺點(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ū)的情況下筒严,中間人攻擊一樣可行。
????