超文本傳輸協(xié)議HTTP協(xié)議被用于在Web瀏覽器和網(wǎng)站服務(wù)器之間傳遞信息,HTTP協(xié)議以明文方式發(fā)送內(nèi)容,不提供任何方式的數(shù)據(jù)加密建炫,如果攻擊者截取了Web瀏覽器和網(wǎng)站服務(wù)器之間的傳輸報文元媚,就可以直接讀懂其中的信息,因此弯予,HTTP協(xié)議不適合傳輸一些敏感信息巢株,比如:信用卡號、密碼等支付信息熙涤。
? ? 為了解決HTTP協(xié)議的這一缺陷阁苞,需要使用另一種協(xié)議:安全套接字層超文本傳輸協(xié)議HTTPS,為了數(shù)據(jù)傳輸?shù)陌踩舸欤琀TTPS在HTTP的基礎(chǔ)上加入了SSL協(xié)議那槽,SSL依靠證書來驗證服務(wù)器的身份,并為瀏覽器和服務(wù)器之間的通信加密等舔。
一骚灸、HTTP和HTTPS的基本概念
? ? HTTP:是互聯(lián)網(wǎng)上應(yīng)用最為廣泛的一種網(wǎng)絡(luò)協(xié)議,是一個客戶端和服務(wù)器端請求和應(yīng)答的標(biāo)準(zhǔn)(TCP)慌植,用于從WWW服務(wù)器傳輸超文本到本地瀏覽器的傳輸協(xié)議甚牲,它可以使瀏覽器更加高效,使網(wǎng)絡(luò)傳輸減少蝶柿。
? ? HTTPS:是以安全為目標(biāo)的HTTP通道丈钙,簡單講是HTTP的安全版,即HTTP下加入SSL層交汤,HTTPS的安全基礎(chǔ)是SSL雏赦,因此加密的詳細內(nèi)容就需要SSL。
? ? HTTPS協(xié)議的主要作用可以分為兩種:一種是建立一個信息安全通道芙扎,來保證數(shù)據(jù)傳輸?shù)陌踩歉冢涣硪环N就是確認網(wǎng)站的真實性。
二戒洼、HTTP與HTTPS有什么區(qū)別俏橘?
? ? HTTP協(xié)議傳輸?shù)臄?shù)據(jù)都是未加密的,也就是明文的圈浇,因此使用HTTP協(xié)議傳輸隱私信息非常不安全寥掐,為了保證這些隱私數(shù)據(jù)能加密傳輸例获,于是網(wǎng)景公司設(shè)計了SSL(Secure Sockets Layer)協(xié)議用于對HTTP協(xié)議傳輸?shù)臄?shù)據(jù)進行加密,從而就誕生了HTTPS曹仗。
? ? 簡單來說榨汤,HTTPS協(xié)議是由SSL+HTTP協(xié)議構(gòu)建的可進行加密傳輸、身份認證的網(wǎng)絡(luò)協(xié)議怎茫,要比http協(xié)議安全收壕。
? ? HTTPS和HTTP的區(qū)別主要如下:
? ? 1、https協(xié)議需要到ca申請證書轨蛤,一般免費證書較少蜜宪,因而需要一定費用。
? ? 2祥山、http是超文本傳輸協(xié)議圃验,信息是明文傳輸,https則是具有安全性的ssl加密傳輸協(xié)議缝呕。
? ? 3澳窑、http和https使用的是完全不同的連接方式,用的端口也不一樣供常,前者是80摊聋,后者是443。
? ? 4栈暇、http的連接很簡單麻裁,是無狀態(tài)的;HTTPS協(xié)議是由SSL+HTTP協(xié)議構(gòu)建的可進行加密傳輸源祈、身份認證的網(wǎng)絡(luò)協(xié)議煎源,比http協(xié)議安全。
三香缺、HTTPS的工作原理
? ? 我們都知道HTTPS能夠加密信息手销,以免敏感信息被第三方獲取,所以很多銀行網(wǎng)站或電子郵箱等等安全級別較高的服務(wù)都會采用HTTPS協(xié)議赫悄。
1. 瀏覽器將自己支持的一套加密規(guī)則發(fā)送給網(wǎng)站原献。
2. 網(wǎng)站從中選出一組加密算法與HASH算法馏慨,并將自己的身份信息以證書的形式發(fā)回給瀏覽器埂淮。證書里面包含了網(wǎng)站地址,加密公鑰写隶,以及證書的頒發(fā)機構(gòu)等信息倔撞。
3. 瀏覽器獲得網(wǎng)站證書之后瀏覽器要做以下工作:
1)? 驗證證書的合法性(頒發(fā)證書的機構(gòu)是否合法,證書中包含的網(wǎng)站地址是否與正在訪問的地址一致等)慕趴,如果證書受信任痪蝇,則瀏覽器欄里面會顯示一個小鎖頭鄙陡,否則會給出證書不受信的提示。
2) ? 如果證書受信任躏啰,或者是用戶接受了不受信的證書趁矾,瀏覽器會生成一串隨機序列號的密碼,并用證書中提供的公鑰加密给僵。
3)? 使用約定好的HASH算法計算握手消息毫捣,并使用生成的隨機序列號對消息進行加密,最后將之前生成的所有信息發(fā)送給網(wǎng)站帝际。
4.? 網(wǎng)站接收瀏覽器發(fā)來的數(shù)據(jù)之后要做以下的操作:
1)使用私鑰解密上面第 2)中公鑰加密的消息(就那個生成的隨機序列號)蔓同,得到客戶端產(chǎn)生的隨機序列號。
2)使用該隨機序列號蹲诀,對瀏覽器發(fā)來的握手信息進行解密斑粱,驗證得到的HASH值是否與客戶端發(fā)來的一致。如果一致則說明數(shù)據(jù)未被篡改脯爪,可以信任则北。
3)最后,使用該隨機序列號痕慢,加上之前第2步中選擇的加密算法咒锻,加密一段握手消息,發(fā)還給客戶端守屉。同時HASH值也帶上惑艇。
5、客戶端收到服務(wù)器端的消息后拇泛,接著做這么幾件事情:
1)瀏覽器解密并計算握手消息的HASH是否與發(fā)回的消息一致
2)檢查消息是否為握手消息
如果與服務(wù)端發(fā)來的HASH一致滨巴,此時握手過程結(jié)束。
6俺叭、握手結(jié)束后恭取,客戶端和服務(wù)器端使用握手階段產(chǎn)生的隨機數(shù)以及挑選出來的算法進行對稱加解密的傳輸。
六熄守、HTTPS的優(yōu)點
? ? 正是由于HTTPS非常的安全蜈垮,攻擊者無法從中找到下手的地方,從站長的角度來說裕照,HTTPS的優(yōu)點有以下2點:
1攒发、SEO方面
? ? 谷歌曾在2014年8月份調(diào)整搜索引擎算法,并稱“比起同等HTTP網(wǎng)站晋南,采用HTTPS加密的網(wǎng)站在搜索結(jié)果中的排名將會更高”惠猿。
2、安全性
? ? 盡管HTTPS并非絕對安全负间,掌握根證書的機構(gòu)偶妖、掌握加密算法的組織同樣可以進行中間人形式的攻擊姜凄,但HTTPS仍是現(xiàn)行架構(gòu)下最安全的解決方案,主要有以下幾個好處:
? ? (1)趾访、使用HTTPS協(xié)議可認證用戶和服務(wù)器态秧,確保數(shù)據(jù)發(fā)送到正確的客戶機和服務(wù)器;
? ? (2)扼鞋、HTTPS協(xié)議是由SSL+HTTP協(xié)議構(gòu)建的可進行加密傳輸屿聋、身份認證的網(wǎng)絡(luò)協(xié)議,要比http協(xié)議安全藏鹊,可防止數(shù)據(jù)在傳輸過程中不被竊取润讥、改變,確保數(shù)據(jù)的完整性盘寡。
? ? (3)楚殿、HTTPS是現(xiàn)行架構(gòu)下最安全的解決方案,雖然不是絕對安全竿痰,但它大幅增加了中間人攻擊的成本脆粥。
七、HTTPS的缺點
? ? 雖然說HTTPS有很大的優(yōu)勢影涉,但其相對來說变隔,還是有些不足之處的,具體來說蟹倾,有以下2點:
1匣缘、SEO方面
? ? 據(jù)ACM CoNEXT數(shù)據(jù)顯示,使用HTTPS協(xié)議會使頁面的加載時間延長近50%鲜棠,增加10%到20%的耗電肌厨,此外,HTTPS協(xié)議還會影響緩存豁陆,增加數(shù)據(jù)開銷和功耗柑爸,甚至已有安全措施也會受到影響也會因此而受到影響。
? ? 而且HTTPS協(xié)議的加密范圍也比較有限盒音,在黑客攻擊表鳍、拒絕服務(wù)攻擊、服務(wù)器劫持等方面幾乎起不到什么作用祥诽。
? ? 最關(guān)鍵的譬圣,SSL證書的信用鏈體系并不安全,特別是在某些國家可以控制CA根證書的情況下原押,中間人攻擊一樣可行胁镐。
2、經(jīng)濟方面
? ? (1)诸衔、SSL證書需要錢盯漂,功能越強大的證書費用越高,個人網(wǎng)站笨农、小網(wǎng)站沒有必要一般不會用就缆。
? ? (2)、SSL證書通常需要綁定IP谒亦,不能在同一IP上綁定多個域名竭宰,IPv4資源不可能支撐這個消耗(SSL有擴展可以部分解決這個問題,但是比較麻煩份招,而且要求瀏覽器切揭、操作系統(tǒng)支持,Windows XP就不支持這個擴展锁摔,考慮到XP的裝機量廓旬,這個特性幾乎沒用)。
? ? (3)谐腰、HTTPS連接緩存不如HTTP高效孕豹,大流量網(wǎng)站如非必要也不會采用,流量成本太高十气。
? ? (4)励背、HTTPS連接服務(wù)器端資源占用高很多,支持訪客稍多的網(wǎng)站需要投入更大的成本砸西,如果全部采用HTTPS叶眉,基于大部分計算資源閑置的假設(shè)的VPS的平均成本會上去。
? ? (5)芹枷、HTTPS協(xié)議握手階段比較費時竟闪,對網(wǎng)站的相應(yīng)速度有負面影響,如非必要杖狼,沒有理由犧牲用戶體驗炼蛤。