WireShark抓取QQ郵箱

WireShark抓取QQ郵箱

實驗環境:MacOS + WireShark

1.QQ郵箱是網址是基於HTTPS協議的

HTTPS(Hypertext Transfer Protocol over Secure Socket Layer)能夠加密信息,由HTTP+TLS/SSL組成,在原本的HTTP協議上增加了一層加密信息模塊,服務端和客戶端的信息傳輸都要經過TLS進行加密,所以傳輸的數據都是加密後的數據。

2.TLS/SSL 簡介

在這裏插入圖片描述
握手過程:

  • 1.初始化階段。客戶端創建隨機數,發送ClientHello 將隨機數連同自己支持的協議版本、加密算法發送給服務器。服務器回覆ServerHello將自己生成的隨機數連同選擇的協議版本、加密算法給客戶端。
  • 2.認證階段。服務器發送ServerHello的同時可能將包含自己公鑰的證書發送給客戶端(Certificate),並請求客戶端的證書(Certificate Request)。
  • 3.密鑰協商階段。客戶端驗證證書,如果收到Certificate Request則發送包含自己公鑰的證書,同時對此前所有握手消息進行散列運算,並使用加密算法進行加密發送給服務器。同時,創建隨機數pre-master-secret並使用服務器公鑰進行加密發送。服務器收到這個ClientKeyExchange之後解密得到pre-master-secret。服務器和客戶端利用第一階段的隨機數,能夠計算得出master-secret。
  • 4.握手終止。服務器和客戶端分別通過ChangeCipherSpec消息使用master-secret對連接進行加密和解密,以及向對方發送終止消息(Finished)。

3.WireShark抓包

首先先確定自己的IP:
在這裏插入圖片描述
接下來進行抓包。並使用ssl進行過濾。
在這裏插入圖片描述
在這裏插入圖片描述

4.對於抓到的重要的包進行分析:

1.Client Hello

在這裏插入圖片描述
TLS握手過程的第一步就是客戶端發起請求,主要包括了客戶端生成的隨機字符串(session key),還包含了客戶端所支持所支持的加密套件列表、隨機數等信息。
在這裏插入圖片描述

2.Server Hello

在這裏插入圖片描述
服務器收到客戶端的Client Hello數據包之後,根據客戶端發來的加密套件列表,選擇一個加密套件,也生成一個隨機字符串返回給客戶端。密鑰交換算法選擇的是使用ECDHE_RSA,對稱加密算法使用AES_128_GCM_SHA256:
在這裏插入圖片描述

3.Certificate & Server Key Exchange & Server Hello Done

在這裏插入圖片描述
服務器把certificate發給客戶端。
在這裏插入圖片描述
服務器返回Server Key Exchange數據包,用於和客戶端交換用於數據加密的密鑰,Server Hello Done用於通知客戶端已經發送用於密鑰交換的數據等待客戶端響應。
在這裏插入圖片描述

4.Client Key Change & Change Cipher Spec & Encrypted HandShake Message

在這裏插入圖片描述
客戶端根據服務器返回的DH數據生成DH數據發給服務器,用來生成最終的pre-master-secret。如圖:
在這裏插入圖片描述

5.Application Data

在這裏插入圖片描述

6.New Session Ticket&Change Cipher Spec & Encrypted HandShake Message

在這裏插入圖片描述
每隔一段時間就要更新一次會話密鑰

5.總結

在登錄QQ郵箱的過程中採用了加密算法來加密這個過程,分別是:
密鑰交換算法選擇的是使用ECDHE_RSA
對稱加密算法使用AES_128_GCM_SHA256
但是出於安全考慮,會話密鑰需要每隔一段時間就更換一次。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章