婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > HTTP與HTTPS握手的那些事

HTTP與HTTPS握手的那些事

熱門標簽:銀川語音外呼系統中心 臨沂ai電銷機器人招商 揭陽電腦外呼系統公司 華創e路航彩票銷售點地圖標注 高德地圖標注常顯 鶴壁外呼系統公司 外呼系統號顯示星號怎么看 承德地圖標注公司收費 suitecrm 地圖標注

前提

在講述這兩個握手時候,有一些東西需要提前說明。

HTTP與TCP/IP區別?

TPC/IP協議是傳輸層協議,主要解決數據如何在網絡中傳輸,而HTTP是應用層協議,主要解決如何包裝數據。WEB使用HTTP協議作應用層協議,以封裝HTTP 文本信息,然后使用TCP/IP做傳輸層協議將它發到網絡上。

下面的圖表試圖顯示不同的TCP/IP和其他的協議在最初OSI(Open System Interconnect)模型中的位置:

PS:表格來自網上資料

CA證書是什么?

CA(Certificate Authority)是負責管理和簽發證書的第三方權威機構,是所有行業和公眾都信任的、認可的。

CA證書,就是CA頒發的證書,可用于驗證網站是否可信(針對HTTPS)、驗證某文件是否可信(是否被篡改)等,也可以用一個證書來證明另一個證書是真實可信,最頂級的證書稱為根證書。除了根證書(自己證明自己是可靠),其它證書都要依靠上一級的證書,來證明自己。

HTTP三次握手

HTTP(HyperText Transfer Protocol)超文本傳輸協議是互聯網上應用最為廣泛的一種網絡協議。由于信息是明文傳輸,所以被認為是不安全的。而關于HTTP的三次握手,其實就是使用三次TCP握手確認建立一個HTTP連接。

如下圖所示,SYN(synchronous)是TCP/IP建立連接時使用的握手信號、Sequence number(序列號)、Acknowledge number(確認號碼),三個箭頭指向就代表三次握手,完成三次握手,客戶端與服務器開始傳送數據。

PS:圖片來自網上資料

第一次握手:客戶端發送syn包(syn=j)到服務器,并進入SYN_SEND狀態,等待服務器確認;

第二次握手:服務器收到syn包,必須確認客戶的SYN(ack=j+1),同時自己也發送一個SYN包(syn=k),即SYN+ACK包,此時服務器進入SYN_RECV狀態;

第三次握手:客戶端收到服務器的SYN+ACK包,向服務器發送確認包ACK(ack=k+1),此包發送完畢,客戶端和服務器進入ESTABLISHED狀態,完成三次握手。

HTTPS握手過程

HTTPS在HTTP的基礎上加入了SSL協議,SSL依靠證書來驗證服務器的身份,并為瀏覽器和服務器之間的通信加密。具體是如何進行加密,解密,驗證的,且看下圖,下面的稱為一次握手。

PS:圖片以下描述摘自:http://zhuqil.cnblogs.com

1. 客戶端發起HTTPS請求

2. 服務端的配置

采用HTTPS協議的服務器必須要有一套數字證書,可以是自己制作或者CA證書。區別就是自己頒發的證書需要客戶端驗證通過,才可以繼續訪問,而使用CA證書則不會彈出提示頁面。這套證書其實就是一對公鑰和私鑰。公鑰給別人加密使用,私鑰給自己解密使用。

3. 傳送證書

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

4. 客戶端解析證書

這部分工作是有客戶端的TLS來完成的,首先會驗證公鑰是否有效,比如頒發機構,過期時間等,如果發現異常,則會彈出一個警告框,提示證書存在問題。如果證書沒有問題,那么就生成一個隨即值,然后用證書對該隨機值進行加密。

5. 傳送加密信息

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

6. 服務段解密信息

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

7. 傳輸加密后的信息

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

8. 客戶端解密信息

客戶端用之前生成的私鑰解密服務段傳過來的信息,于是獲取了解密后的內容。

PS: 整個握手過程第三方即使監聽到了數據,也束手無策。

總結

為什么HTTPS是安全的?

在HTTPS握手的第四步中,如果站點的證書是不受信任的,會顯示出現下面確認界面,確認了網站的真實性。另外第六和八步,使用客戶端私鑰加密解密,保證了數據傳輸的安全。

HTTPS和HTTP的區別

1. https協議需要到ca申請證書或自制證書。

2. http的信息是明文傳輸,https則是具有安全性的ssl加密。

3. http是直接與TCP進行數據傳輸,而https是經過一層SSL(OSI表示層),用的端口也不一樣,前者是80(需要國內備案),后者是443。

4. http的連接很簡單,是無狀態的;HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議,比http協議安全。

注意https加密是在傳輸層

https報文在被包裝成tcp報文的時候完成加密的過程,無論是https的header域也好,body域也罷都是會被加密的。

當使用tcpdump或者wireshark之類的tcp層工具抓包,獲取是加密的內容,而如果用應用層抓包,使用Charels(Mac)、Fildder(Windows)抓包工具,那當然看到是明文的。

PS:HTTPS本身就是為了網絡的傳輸安全。

例子,使用wireshark抓包:

http,可以看到抓到是明文的:

https,可以看到抓到是密文的:

附錄

HTTPS一般使用的加密與HASH算法如下:

非對稱加密算法:RSA,DSA/DSS

對稱加密算法:AES,RC4,3DES

HASH算法:MD5,SHA1,SHA256

標簽:棗莊 咸寧 忻州 三沙 七臺河 汕尾 萊蕪 許昌

巨人網絡通訊聲明:本文標題《HTTP與HTTPS握手的那些事》,本文關鍵詞  HTTP,與,HTTPS,握手,的,那些,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《HTTP與HTTPS握手的那些事》相關的同類信息!
  • 本頁收集關于HTTP與HTTPS握手的那些事的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 社会| 长武县| 体育| 沂南县| 冕宁县| 阿勒泰市| 隆昌县| 天津市| 东山县| 赤峰市| 多伦县| 三明市| 凤翔县| 许昌县| 巴马| 栖霞市| 金山区| 安西县| 分宜县| 永昌县| 分宜县| 洛阳市| 甘德县| 保亭| 宝清县| 松江区| 锡林郭勒盟| 彭州市| 达尔| 博罗县| 湘西| 鹤峰县| 汾西县| 永仁县| 六盘水市| 婺源县| 壶关县| 高唐县| 达尔| 庆阳市| 芜湖县|