文章分享

開放、平等、協(xié)作、快速、分享

當(dāng)前位置:首頁>文章分享

抓包分析SSL/TLS連接建立過程【總結(jié)】

摘錄:HCTech 無錫和控電子   時間:2020-08-07   訪問量:3620

1、前言

  最近在倒騰SSL方面的項目,之前只是雖然對SSL了解過,但是不夠深入,正好有機(jī)會,認(rèn)真學(xué)習(xí)一下。開始了解SSL的是從https開始的,自從百度支持https以后,如今全站https的趨勢越來越強(qiáng)烈,互聯(lián)網(wǎng)對安全的認(rèn)識越來越深入。本文根據(jù)自己的實際情況,對SSL鏈接建立做個總結(jié)。SSL相關(guān)的非對稱加密和加密,涉及到公鑰、私鑰、證書、對稱密鑰,這些非常復(fù)雜,本文不會涉及。本文重點介紹SSL的握手過程,客戶端和服務(wù)端的步驟,通過wireshark抓包分析整個過程。

2、基本概念

   SSL:(Secure Socket Layer,安全套接字層),位于可靠的面向連接的網(wǎng)絡(luò)層協(xié)議和應(yīng)用層協(xié)議之間的一種協(xié)議層。SSL通過互相認(rèn)證、使用數(shù)字簽名確保完整性、使用加密確保私密性,以實現(xiàn)客戶端和服務(wù)器之間的安全通訊。該協(xié)議由兩層組成:SSL記錄協(xié)議和SSL握手協(xié)議。

   TLS:(Transport Layer Security,傳輸層安全協(xié)議),用于兩個應(yīng)用程序之間提供保密性和數(shù)據(jù)完整性。該協(xié)議由兩層組成:TLS記錄協(xié)議和TLS握手協(xié)議。

TLS是在SSL的基礎(chǔ)上標(biāo)準(zhǔn)化的產(chǎn)物,目前SSL3.0與TLS1.0保持一致的,二者是并列關(guān)系,只是大家習(xí)慣稱呼SSL。注明的web服務(wù)nginx默認(rèn)支持的就是TLS1.0、TLS1.1、TLS1.2協(xié)議。調(diào)用的openssl庫中,對應(yīng)的就是ssl3_acceptt函數(shù)。

  SSL/TLS位于傳輸層和應(yīng)用層之間,應(yīng)用層數(shù)據(jù)不再直接傳遞給傳輸層,而是傳遞給SSL層,SSL層對從應(yīng)用層收到的數(shù)據(jù)進(jìn)行加密,并增加自己的SSL頭。

3、握手過程

  我使用nginx搭建了一個https的服務(wù),nginx的默認(rèn)ssl cipher為HIGH:!aNULL:!MD5; 不同的cipher 決定了握手的交互過程。chrome瀏覽器支持的cipher如下所示:

cipher的格式為:認(rèn)證算法_密鑰交換算法_加密算法_ 摘要算法

首先看看最基本的基于RSA的密鑰協(xié)商算法,配置的ssl sipher為 AES256-GCM-SHA256。

使用wireshark抓包分析,抓包如下所示:

 從上面報文可以看出,SSL建立過程如下圖所示:

 使用橢圓曲線(ECDHE)算法作為密鑰交換算法,配置ssl ciper為:,交互流程如下所示:

抓包看如下:

 從上面報文可以看出,SSL建立過程如下圖所示:

 相比RSA算法而言,握手過程多了一個server key exchange步驟

 RSA算法服務(wù)端沒有Server key Exchange。

4、參考資料

http://www.ruanyifeng.com/blog/2014/09/illustration-ssl.html

https://blog.cloudflare.com/keyless-ssl-the-nitty-gritty-technical-details/

冷靜思考,勇敢面對,把握未來!


上一篇:淺談Cookie與Session技術(shù)

下一篇:圖解SSL/TLS協(xié)議

在線咨詢

點擊這里給我發(fā)消息 售前咨詢專員

點擊這里給我發(fā)消息 售后服務(wù)專員

在線咨詢

免費通話

24小時免費咨詢

請輸入您的聯(lián)系電話,座機(jī)請加區(qū)號

免費通話

微信掃一掃

微信聯(lián)系
返回頂部