【Azure 環境】從網路包中分析出TLS加密套件資訊

路边两盏灯發表於2024-11-24

問題描述

在抓取到網路包之後,如何來獲取TLS資訊呢?比如使用的是是麼加密套件呢?

因為在應用層面,獲取的錯誤資訊非常簡單:

An TLS 1.2 connection request was received from a remote client application, but non of the cipher suites supported by the client application are supported by the server. The connection request has failed.

從遠端客戶端應用程式收到 TLS 1.2 連線請求,但伺服器不支援客戶端應用程式支援的任何密碼套件。連線請求失敗。

所以,我們如何從客戶端抓取的網路包中分析出 TLS 所所以用的 Cipher Suites資訊呢?

問題解答

透過諮詢M365 Copilot,得到了想要的答案:

在Wireshark中分析SSL相關資訊(例如使用的加密套件)可以透過以下步驟進行:

1. 啟動Wireshark並抓包:首先,啟動Wireshark並開始抓取網路流量。確保你正在捕獲包含SSL/TLS流量的網路介面。
2. 過濾SSL/TLS流量:在Wireshark的過濾器欄中輸入ssl或tls,以便只顯示SSL/TLS流量。這將幫助你更容易找到相關的資料包。
3. 找到SSL握手包:在過濾後的流量中,找到SSL握手包。通常,這些包包括Client Hello和Server Hello訊息。你可以透過檢視協議列中的Client Hello和Server Hello來識別這些包。
4. 檢視加密套件:

  • Client Hello:雙擊Client Hello包,在詳細資訊窗格中展開Secure Sockets Layer或Transport Layer Security部分。你會看到一個名為Cipher Suites的欄位,其中列出了客戶端支援的加密套件。
  • Server Hello:雙擊Server Hello包,在詳細資訊窗格中展開Secure Sockets Layer或Transport Layer Security部分。你會看到一個名為Cipher Suite的欄位,其中列出了伺服器選擇的加密套件。

5. 解密SSL/TLS流量(可選):如果你有伺服器的私鑰,可以在Wireshark中配置解密SSL/TLS流量。步驟如下:

  • 選擇Edit > Preferences。
  • 在Preferences視窗中展開Protocols,然後選擇SSL。
  • 在RSA keys list欄位中,輸入伺服器的IP地址、埠、協議和私鑰檔案路徑。

透過這些步驟,你可以在Wireshark中分析SSL相關資訊並檢視使用的加密套件。

實際演示

根據以上的解答,實際實驗去檢視兩個資料包:一個是正常建立TLS連線,一個是無法建立TLS連線。

第一步:根據目的IP地址過濾網路包

開啟 .pcapng 字尾名的網路包,根據目的IP地址進行過濾 ( 如:ip.addr == 5.13.9.7

第二步:檢視TCP請求中的Client Hello 資訊

Transport Layer Security --> TLSv1.2 Record Layer --> Handshake Protocol:Client Hello --> Cipher Suites

Cipher Suites (12 suites)

Cipher Suite: TLS_RSA_WITH_AES_128_CBC_SHA (0x002f)
Cipher Suite: TLS_RSA_WITH_AES_256_CBC_SHA (0x0035)
Cipher Suite: TLS_RSA_WITH_RC4_128_SHA (0x0005)
Cipher Suite: TLS_RSA_WITH_3DES_EDE_CBC_SHA (0x000a)
Cipher Suite: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (0xc013)
Cipher Suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (0xc014)
Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA (0xc009)
Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA (0xc00a)
Cipher Suite: TLS_DHE_DSS_WITH_AES_128_CBC_SHA (0x0032)
Cipher Suite: TLS_DHE_DSS_WITH_AES_256_CBC_SHA (0x0038)
Cipher Suite: TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA (0x0013)
Cipher Suite: TLS_RSA_WITH_RC4_128_MD5 (0x0004)

第三步:檢視TCP請求中的Server Hello 資訊

Transport Layer Security --> TLSv1.2 Record Layer --> Handshake Protocol:Server Hello --> Cipher Suites

[正常建立連線]

Cipher Suite: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (0xc013)

【Azure 環境】從網路包中分析出TLS加密套件資訊

[不能正常建立連線]

在客戶端傳送Client Hell後,服務端返回的Server Hello包中,

Transport Layer Security

TLSv1.2 Record Layer: Alert (Level: Fatal, Description: Protocol Version)
Content Type: Alert (21)
Version: TLS 1.2 (0x0303)
Length: 2
Alert Message
Level: Fatal (2)
Description: Protocol Version (70)

【Azure 環境】從網路包中分析出TLS加密套件資訊

演示動畫:

【Azure 環境】從網路包中分析出TLS加密套件資訊

參考資料

Wireshark: https://www.wireshark.org/

相關文章