2017年1月發(fā)布的Chrome 56瀏覽器開始把收集密碼或信用卡數(shù)據(jù)的HTTP頁(yè)面標(biāo)記為“不安全”,若用戶使用2017年10月推出的Chrome 62,帶有輸入數(shù)據(jù)的HTTP頁(yè)面和所有以無(wú)痕模式瀏覽的HTTP頁(yè)面都會(huì)被標(biāo)記為“不安全”,此外,蘋果公司強(qiáng)制所有iOS App在2017年1月1日前使用HTTPS加密。
HTTP和HTTPS發(fā)展歷史
什么是HTTP?
超文本傳輸協(xié)議,是一個(gè)基于請(qǐng)求與響應(yīng),無(wú)狀態(tài)的,應(yīng)用層的協(xié)議,常基于TCP/IP協(xié)議傳輸數(shù)據(jù),互聯(lián)網(wǎng)上應(yīng)用最為廣泛的一種網(wǎng)絡(luò)協(xié)議,所有的WWW文件都必須遵守這個(gè)標(biāo)準(zhǔn)。設(shè)計(jì)HTTP的初衷是為了提供一種發(fā)布和接收HTML頁(yè)面的方法。
什么是HTTPS?
《圖解HTTP》這本書中曾提過(guò)HTTPS是身披SSL外殼的HTTP。HTTPS是一種通過(guò)計(jì)算機(jī)網(wǎng)絡(luò)進(jìn)行安全通信的傳輸協(xié)議,經(jīng)由HTTP進(jìn)行通信,利用SSL/TLS建立全信道,加密數(shù)據(jù)包。HTTPS使用的主要目的是提供對(duì)網(wǎng)站服務(wù)器的身份認(rèn)證,同時(shí)保護(hù)交換數(shù)據(jù)的隱私與完整性。
PS:TLS是傳輸層加密協(xié)議,前身是SSL協(xié)議,由網(wǎng)景公司1995年發(fā)布,有時(shí)候兩者不區(qū)分。
HTTP VS HTTPS
HTTP特點(diǎn):
1、無(wú)狀態(tài):協(xié)議對(duì)客戶端沒(méi)有狀態(tài)存儲(chǔ),對(duì)事物處理沒(méi)有“記憶”能力,比如訪問(wèn)一個(gè)網(wǎng)站需要反復(fù)進(jìn)行登錄操作
2、無(wú)連接:HTTP/1.1之前,由于無(wú)狀態(tài)特點(diǎn),每次請(qǐng)求需要通過(guò)TCP三次握手四次揮手,和服務(wù)器重新建立連接。比如某個(gè)客戶機(jī)在短時(shí)間多次請(qǐng)求同一個(gè)資源,服務(wù)器并不能區(qū)別是否已經(jīng)響應(yīng)過(guò)用戶的請(qǐng)求,所以每次需要重新響應(yīng)請(qǐng)求,需要耗費(fèi)不必要的時(shí)間和流量。
3、基于請(qǐng)求和響應(yīng):基本的特性,由客戶端發(fā)起請(qǐng)求,服務(wù)端響應(yīng)
4、簡(jiǎn)單快速、靈活
5、通信使用明文、請(qǐng)求和響應(yīng)不會(huì)對(duì)通信方進(jìn)行確認(rèn)、無(wú)法保護(hù)數(shù)據(jù)的完整性
HTTPS特點(diǎn):
基于HTTP協(xié)議,通過(guò)SSL或TLS提供加密處理數(shù)據(jù)、驗(yàn)證對(duì)方身份以及數(shù)據(jù)完整性保護(hù)
通過(guò)抓包可以看到數(shù)據(jù)不是明文傳輸,而且HTTPS有如下特點(diǎn):
1、內(nèi)容加密:采用混合加密技術(shù),中間者無(wú)法直接查看明文內(nèi)容
2、驗(yàn)證身份:通過(guò)證書認(rèn)證客戶端訪問(wèn)的是自己的服務(wù)器
3、保護(hù)數(shù)據(jù)完整性:防止傳輸?shù)膬?nèi)容被中間人冒充或者篡改
混合加密:結(jié)合非對(duì)稱加密和對(duì)稱加密技術(shù)??蛻舳耸褂脤?duì)稱加密生成密鑰對(duì)傳輸數(shù)據(jù)進(jìn)行加密,然后使用非對(duì)稱加密的公鑰再對(duì)秘鑰進(jìn)行加密,所以網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)是被秘鑰加密的密文和用公鑰加密后的秘密秘鑰,因此即使被黑客截取,由于沒(méi)有私鑰,無(wú)法獲取到加密明文的秘鑰,便無(wú)法獲取到明文數(shù)據(jù)。
數(shù)字摘要:通過(guò)單向hash函數(shù)對(duì)原文進(jìn)行哈希,將需加密的明文“摘要”成一串固定長(zhǎng)度(如128bit)的密文,不同的明文摘要成的密文其結(jié)果總是不相同,同樣的明文其摘要必定一致,并且即使知道了摘要也不能反推出明文。
數(shù)字簽名技術(shù):數(shù)字簽名建立在公鑰加密體制基礎(chǔ)上,是公鑰加密技術(shù)的另一類應(yīng)用。它把公鑰加密技術(shù)和數(shù)字摘要結(jié)合起來(lái),形成了實(shí)用的數(shù)字簽名技術(shù)。
收方能夠證實(shí)發(fā)送方的真實(shí)身份;
發(fā)送方事后不能否認(rèn)所發(fā)送過(guò)的報(bào)文;
收方或非法者不能偽造、篡改報(bào)文。
非對(duì)稱加密過(guò)程需要用到公鑰進(jìn)行加密,那么公鑰從何而來(lái)?其實(shí)公鑰就被包含在數(shù)字證書中,數(shù)字證書通常來(lái)說(shuō)是由受信任的數(shù)字證書頒發(fā)機(jī)構(gòu)CA,在驗(yàn)證服務(wù)器身份后頒發(fā),證書中包含了一個(gè)密鑰對(duì)(公鑰和私鑰)和所有者識(shí)別信息。數(shù)字證書被放到服務(wù)端,具有服務(wù)器身份驗(yàn)證和數(shù)據(jù)傳輸加密功能。