HTTP 與 HTTPS 的區(qū)別

2021-01-29    分類: 網(wǎng)站建設(shè)

基本概念

HTTP(HyperText Transfer Protocol:超文本傳輸協(xié)議)是一種用于分布式、協(xié)作式和超媒體信息系統(tǒng)的應(yīng)用層協(xié)議。 簡單來說就是一種發(fā)布和接收 HTML 頁面的方法,被用于在 Web 瀏覽器和網(wǎng)站服務(wù)器之間傳遞信息。

HTTP 默認工作在 TCP 協(xié)議 80 端口,用戶訪問網(wǎng)站 HTTP 協(xié)議以明文方式發(fā)送內(nèi)容,不提供任何方式的數(shù)據(jù)加密,如果攻擊者截取了Web瀏覽器和網(wǎng)站服務(wù)器之間的傳輸報文,就可以直接讀懂其中的信息,因此,HTTP協(xié)議不適合傳輸一些敏感信息,比如:信用卡號、密碼等支付信息。

HTTPS(Hypertext Transfer Protocol Secure:超文本傳輸安全協(xié)議)是一種透過計算機網(wǎng)絡(luò)進行安全通信的傳輸協(xié)議。HTTPS 經(jīng)由 HTTP 進行通信,但利用 ssl/TLS 來加密數(shù)據(jù)包。HTTPS 開發(fā)的主要目的,是提供對網(wǎng)站服務(wù)器的身份認證,保護交換數(shù)據(jù)的隱私與完整性。

HTTPS 默認工作在 TCP 協(xié)議443端口,它的工作流程一般如以下方式:

  • 1、TCP 三次同步握手
  • 2、客戶端驗證服務(wù)器數(shù)字證書
  • 3、DH 算法協(xié)商對稱加密算法的密鑰、hash 算法的密鑰
  • 4、ssl 安全加密隧道協(xié)商完成
  • 5、網(wǎng)頁以加密的方式傳輸,用協(xié)商的對稱加密算法和密鑰加密,保證數(shù)據(jù)機密性;用協(xié)商的hash算法進行數(shù)據(jù)完整性保護,保證數(shù)據(jù)不被篡改。

截至 2018 年 6 月,Alexa 排名前 100 萬的網(wǎng)站中有 34.6% 使用 HTTPS 作為默認值,互聯(lián)網(wǎng) 141387 個最受歡迎網(wǎng)站的 43.1% 具有安全實施的 HTTPS,以及 45% 的頁面加載(透過Firefox紀(jì)錄)使用HTTPS。2017 年3 月,中國注冊域名總數(shù)的 0.11%使用 HTTPS。

根據(jù) Mozilla 統(tǒng)計,自 2017 年 1 月以來,超過一半的網(wǎng)站流量被加密。

HTTP 與 HTTPS 區(qū)別

  • HTTP 明文傳輸,數(shù)據(jù)都是未加密的,安全性較差,HTTPS(ssl+HTTP) 數(shù)據(jù)傳輸過程是加密的,安全性較好。
  • 使用 HTTPS 協(xié)議需要到 CA(Certificate Authority,數(shù)字證書認證機構(gòu)) 申請證書,一般免費證書較少,因而需要一定費用。證書頒發(fā)機構(gòu)如:Symantec、Comodo、GoDaddy 和 GlobalSign 等。
  • HTTP 頁面響應(yīng)速度比 HTTPS 快,主要是因為 HTTP 使用 TCP 三次握手建立連接,客戶端和服務(wù)器需要交換 3 個包,而 HTTPS除了 TCP 的三個包,還要加上 ssl 握手需要的 9 個包,所以一共是 12 個包。
  • http 和 https 使用的是完全不同的連接方式,用的端口也不一樣,前者是 80,后者是 443。
  • HTTPS 其實就是建構(gòu)在 ssl/TLS 之上的 HTTP 協(xié)議,所以,要比較 HTTPS 比 HTTP 要更耗費服務(wù)器資源。

TCP 三次握手

在TCP/IP協(xié)議中,TCP協(xié)議通過三次握手建立一個可靠的連接


  • 第一次握手:客戶端嘗試連接服務(wù)器,向服務(wù)器發(fā)送 syn 包(同步序列編號Synchronize Sequence Numbers),syn=j,客戶端進入 SYN_SEND 狀態(tài)等待服務(wù)器確認
  • 第二次握手:服務(wù)器接收客戶端syn包并確認(ack=j+1),同時向客戶端發(fā)送一個 SYN包(syn=k),即 SYN+ACK 包,此時服務(wù)器進入 SYN_RECV 狀態(tài)
  • 第三次握手:第三次握手:客戶端收到服務(wù)器的SYN+ACK包,向服務(wù)器發(fā)送確認包ACK(ack=k+1),此包發(fā)送完畢,客戶端和服務(wù)器進入ESTABLISHED狀態(tài),完成三次握手

簡化:


HTTPS 的工作原理

我們都知道 HTTPS 能夠加密信息,以免敏感信息被第三方獲取,所以很多銀行網(wǎng)站或電子郵箱等等安全級別較高的服務(wù)都會采用 HTTPS 協(xié)議。


1、客戶端發(fā)起 HTTPS 請求

這個沒什么好說的,就是用戶在瀏覽器里輸入一個 https 網(wǎng)址,然后連接到 server 的 443 端口。

2、服務(wù)端的配置

采用 HTTPS 協(xié)議的服務(wù)器必須要有一套數(shù)字證書,可以自己制作,也可以向組織申請,區(qū)別就是自己頒發(fā)的證書需要客戶端驗證通過,才可以繼續(xù)訪問,而使用受信任的公司申請的證書則不會彈出提示頁面(startssl 就是個不錯的選擇,有 1 年的免費服務(wù))。

這套證書其實就是一對公鑰和私鑰,如果對公鑰和私鑰不太理解,可以想象成一把鑰匙和一個鎖頭,只是全世界只有你一個人有這把鑰匙,你可以把鎖頭給別人,別人可以用這個鎖把重要的東西鎖起來,然后發(fā)給你,因為只有你一個人有這把鑰匙,所以只有你才能看到被這把鎖鎖起來的東西。

3、傳送證書

這個證書其實就是公鑰,只是包含了很多信息,如證書的頒發(fā)機構(gòu),過期時間等等。

4、客戶端解析證書

這部分工作是有客戶端的TLS來完成的,首先會驗證公鑰是否有效,比如頒發(fā)機構(gòu),過期時間等等,如果發(fā)現(xiàn)異常,則會彈出一個警告框,提示證書存在問題。

如果證書沒有問題,那么就生成一個隨機值,然后用證書對該隨機值進行加密,就好像上面說的,把隨機值用鎖頭鎖起來,這樣除非有鑰匙,不然看不到被鎖住的內(nèi)容。

5、傳送加密信息

這部分傳送的是用證書加密后的隨機值,目的就是讓服務(wù)端得到這個隨機值,以后客戶端和服務(wù)端的通信就可以通過這個隨機值來進行加密解密了。

6、服務(wù)段解密信息

服務(wù)端用私鑰解密后,得到了客戶端傳過來的隨機值(私鑰),然后把內(nèi)容通過該值進行對稱加密,所謂對稱加密就是,將信息和私鑰通過某種算法混合在一起,這樣除非知道私鑰,不然無法獲取內(nèi)容,而正好客戶端和服務(wù)端都知道這個私鑰,所以只要加密算法夠彪悍,私鑰夠復(fù)雜,數(shù)據(jù)就夠安全。

7、傳輸加密后的信息

這部分信息是服務(wù)段用私鑰加密后的信息,可以在客戶端被還原。

8、客戶端解密信息

客戶端用之前生成的私鑰解密服務(wù)段傳過來的信息,于是獲取了解密后的內(nèi)容,整個過程第三方即使監(jiān)聽到了數(shù)據(jù),也束手無策

網(wǎng)頁標(biāo)題:HTTP 與 HTTPS 的區(qū)別
URL地址:http://www.muchs.cn/news17/97967.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗、網(wǎng)站設(shè)計、動態(tài)網(wǎng)站網(wǎng)站內(nèi)鏈、做網(wǎng)站標(biāo)簽優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

手機網(wǎng)站建設(shè)