1. 程式人生 > >抓包分析https的傳輸過程

抓包分析https的傳輸過程

1.

首先,瀏覽器和伺服器三握手,建立連線。

下面是https的發包過程:

2.瀏覽器傳送client hello:

客戶端給伺服器傳送一個隨機值random1,和加密(暗號)套件。

3.

伺服器ack,意思是,你的hello資料包我收到了。

4.

伺服器給瀏覽器(客戶端)傳送server hello

同時我們從資料包中發現伺服器也給客戶端傳送了一個隨機值random2和證書。

5.

客戶端回覆ACK,你的hello資料包和證書我收到了。

6.

先不看 資料包的內容,客戶端需要驗證伺服器發過來的證書的合法性:通過作業系統內建的ca證書,來驗證伺服器證書的頒發者和過期時間是否合法,如果存在資料簽名,則用作業系統中頒發者CA的公鑰對簽名解密,用相同的hash演算法算出簽名的hash值,將這個hash值與簽名中的hash值對比。驗證是否是真實的伺服器傳送的。

再來看上面的資料包:

Client Key Exchange

客戶端驗證通過,取出證書中的公鑰,然後再生成一個隨機數random3,用這個公鑰對random3加密,生成PreMaster Key,客戶端根據伺服器傳來的公鑰生成了 PreMaster Key,Client Key Exchange 就是將這個 key 傳給服務端,服務端再用自己的私鑰解出這個 PreMaster Key 得到客戶端生成的 Random3。至此,客戶端和服務端都擁有 Random1 + Random2 + Random3,兩邊再根據同樣的演算法就可以生成一份祕鑰,握手結束後的應用層資料都是使用這個祕鑰進行對稱加密。為什麼要使用三個隨機數呢?這是因為 SSL/TLS 握手過程的資料都是明文傳輸的,並且多個隨機數種子來生成祕鑰不容易被暴力破解出來。

Change Cipher Spec(Client)

這一步是客戶端通知服務端後面再發送的訊息都會使用前面協商出來的祕鑰加密了,是一條事件訊息。

Encrypted Handshake Message(Client)

這一步對應的是 Client Finish 訊息,客戶端將前面的握手訊息生成摘要再用協商好的祕鑰加密,這是客戶端發出的第一條加密訊息。服務端接收後會用祕鑰解密,能解出來說明前面協商出來的祕鑰是一致的。

7.

相關推薦

分析https傳輸過程

1. 首先,瀏覽器和伺服器三握手,建立連線。 下面是https的發包過程: 2.瀏覽器傳送client hello: 客戶端給伺服器傳送一個隨機值random1,和加密(暗號)套件。 3. 伺服器ack,意思是,你的hello資料包我收到了。 4.

網路協議分析——TCP傳輸控制協議(連線建立、釋放)

前言 TCP協議為資料提供可靠的端到端的傳輸,處理資料的順序和錯誤恢復,保證資料能夠到達其應到達的地方。TCP協議是面向連線的,在兩臺主機使用TCP協議進行通訊之前,會先建立一個TCP連線(三次握手),雙方不再繼續通訊時,會將連線釋放(正常情況下四次揮手)。下面就抓包分析TCP三次握手和四次揮手的過程。

銳捷CCNA系列(二) Wireshark分析Ping過程

銳捷 CCNA 銳捷實戰 銳捷CCNA 數通 實訓目的 初步了解Wireshark的使用。 能分析Ping過程。 實訓背景 PING(Packet Internet Groper, 因特網包探索器),用於測試網絡是否連通的程序,在Windows、Linux、Unix下都是標配程序,Pi

Fidder詳解-HTTPS清求(Web/App)分析(靠譜篇)

可能 clas 請求 設置代理 cer port 關閉 lan str 為什麽要學Fidder抓包? 學習接口,必須要學http協議,不要求您對協議的掌握有多深。只是希望你能夠了解什麽是協議、協議的報文、狀態碼等等!本文通過抓包工具Fidder帶你進入接口的大門。我們通過

用wireshark分析TCP三次握手、四次揮手以及TCP實現可靠傳輸的機制(轉)

關於TCP三次握手和四次揮手大家都在《計算機網路》課程裡學過,還記得當時高超老師耐心地講解。大學裡我遇到的最好的老師大概就是這位了,雖然他只給我講過《java程式設計》和《計算機網路》,但每次課幾乎都動手敲程式碼或者當場做實驗。好了不扯了,下面進入正題。      關

Wireshark 分析 RTSP/RTP/RTCP 基本工作過程

整體而言,RTSP 通常工作於可靠的傳輸協議 TCP 之上,就像 HTTP 那樣,用於發起/結束流媒體傳輸,交換流媒體元資訊。RTP 通常工作於 UDP 之上,用於傳輸實際的流媒體資料,其中的載荷格式因具體流媒體型別的不同而不同,通常有專門的 RFC 規範對其進行定義,如 H

FTP工作過程分析

其實這個是我在寫C#FTP程式設計時,總感覺寫的時候模稜兩可的,就姑且抓包看看,到底什麼情況。 第一次使用抓包工具,暫且做簡單的分析吧 我在本機登陸ftp,輸入使用者名稱,密碼進行登入。對該過程,使用 CommView獲得抓包資料如下。(點選圖片檢視大圖) 看來整個過程還是

【轉】HTTPS淺析與分析 | 老D部落格

0x00 HTTP之殤 資料明文傳輸,易嗅探 資料完整性無驗證,易篡改 網站身份無認證,易假冒 由此誕生HTTPS。 0x01 什麼是HTTPS TLS是SSL的升級版 二圖勝千言: //圖片來源於網路 作用:防嗅探,防篡改,身份認證 0

tcpdump分析TCP三次握手過程

tcpdump port 6000 -c 3 -n內容如下:21:07:17.790296 IP  192.168.1.104.2511 > 192.168.1.90.6000: S 3359422806:3359422806(0) win 64240 <mss1460,nop,nop,sackO

HTTPS分析

資料傳輸過程中的完整性使用MAC演算法來保證。為了避免網路中傳輸的資料被非法篡改,或者資料位元被汙染,SSL利用基於MD5或SHA的MAC演算法來保證訊息的完整性(由於MD5在實際應用中存在衝突的可能性比較大,所以儘量別採用MD5來驗證內容一致性)。 MAC演算法是在金鑰參與下的資料摘要演算法,能將金鑰和任意

https(ssl)協議以及wireshark分析與解密

根據之前一篇安全協議的分析中分析了ssl協議,先回顧下ssl協議的內容然後用wireshark來抓包看具體流量包內容。          SSL協議棧位置介於TCP和應用層之間,分為SSL記錄協議層和

Fiddler分析詳細過程

1.為什麼是Fiddler?抓包工具有很多,小到最常用的web除錯工具firebug,達到通用的強大的抓包工具wireshark.為什麼使用fiddler?原因如下:a.Firebug雖然可以抓包,但是對於分析http請求的詳細資訊,不夠強大。模擬http請求的功能也不夠,且

wireshark分析tcp的三次握手詳細過程

下載安裝wireshark 抓包分析詳細過程 在wireshark中輸入http過濾, 然後選中一條http記錄,如下圖: 右鍵點選選中 追蹤流 > tcp流,如下: 會看到下圖所示: 可以發現,wireshark截獲到了三次握手的三

SSL/TSL雙向認證過程與Wireshark分析

1、 SSL/TSL基本知識 2、 TLS/SSL雙向認證握手過程分析 (1)client_hello 支援的協議版本,比如TLS 1.0; 支援的加密演算法(Cipher Specs); 客戶端生成的隨機數1(Challenge),稍後用於生成"對話金鑰"。  

轉:PPPoE協議交互過程詳解及分析

驗證過 con 種類 管理 pen 定向 進入 一次 測試數據 ttps://blog.csdn.net/sky619351517/article/details/84797605 PPPoE協議交互過程 1、發現階段(PPPoED:PPPoE Discovery

TCP三次握手與Tcpdump分析過程

code .com and light img 內網 80端口 con port 一、TCP連接建立(三次握手) 過程 客戶端A,服務器B,初始序號seq,確認號ack 初始狀態:B處於監聽狀態,A處於打開狀態 A -> B : seq = x (A向

DHCP完整過程詳解及Wireshark分析

DHCP,Dynamic Host Configuration Protocol,動態主機配置協議,簡單來說就是主機獲取IP地址的過程,屬於應用層協議。 DHCP採用UDP的68(客戶端)和67(伺服器)埠進行通訊。 【過程】 DHCP過程主要為DHCP Discover-->DHCP Offer--&

Fiddler是最強大最好用的Web調試工具之一--網站分析

als passport 運行機制 重新 腳本 win 默認 img 博客 Fiddler 教程 Fiddler是最強大最好用的Web調試工具之一,它能記錄所有客戶端和服務器的http和https請求,允許你監視,設置斷點,甚至修改輸入輸出數據. 使用Fiddler無

qxdm,qpst,qcat分析VoLTE SIP協商

可能 png mage mes 3.1 sage 需要 開始 不同 QXDM,QPST和QCAT是Qualcomm高通公司針對高通芯片的抓包分析工具。 QXDM抓包分析,QPST與手機com口連接,QCAT用來分析抓包產生的isf文件(log)。 使用版本: QXDM-3.

hdlc分析

hdlcR2(config)#int s2/2 R2(config-if)#ip addr 202.100.23.2 255.255.255.0 R2(config-if)#no shut R2(config-if)# *Aug 21 16:19:30.153: %LINK-3-UPDOWN: Interfa