使用wireshark分析HTTPS流程的建立

發(fā)布時間:2024-03-01
一、概要
為了網(wǎng)站以及用戶的安全性,現(xiàn)在很多的網(wǎng)站都是https,大家都知道tcp通過三次握手建立連接,并且還有很多的同學(xué)對https連接建立的流程不太明白,包括我自己,通過借助于wireshark這種抓包工具,我們可以嘗試著了解一下大概的流程。
客戶端(10.0.45.103)訪問服務(wù)端(114.215.88.85)通過wireshark抓包顯示出來的雙方交互數(shù)據(jù),訪問是通過https訪問服務(wù)器上的一臺nginx服務(wù)器服務(wù)。請關(guān)注第一列的no。下文中很多時候會用no表示一次交互。
圖中可以很明顯的看出tcp的三次握手以及之后的tls加密流程的建立。
二、tcp的三次握手
通過流程圖可以看出(也可以看圖1 的19368到19370這三個編號),首先客戶端向服務(wù)端發(fā)起一個syn的請求,序號(seq)為0,確認(rèn)號(ack)也為0,這代表是本次是由客戶端發(fā)起的首次請求。本次請求的數(shù)據(jù)長度為0
然后服務(wù)端給客戶端響應(yīng),此時服務(wù)端的seq也是0,代表這是服務(wù)端的第一次回應(yīng),并且給客戶端說,你的請求我已經(jīng)收到了(ack=1),
最后返還給客戶端以后,客戶端的序號 1,并且對服務(wù)端的響應(yīng)做出確認(rèn),最后回給服務(wù)端,此時ack=1,seq=1
tcp的握手過程建立成功。
三、ssl連接的建立
通過以上可以看出,ssl也是建立在tcp的基礎(chǔ)上的,經(jīng)過tcp的三次握手,接下來才是加密信道的建立。
客戶端和服務(wù)端建立安全連接大致經(jīng)過以下幾個步驟
客戶端:clienthello 服務(wù)端:server hello,server certificate,server exchange,server hello done 客戶端:client exchange 客戶端:application data 服務(wù)端:new session 服務(wù)端:application data
接下來看這幾個步驟中具體的每一個步驟傳輸?shù)膬?nèi)容
clienthello
client首先給服務(wù)端打招呼,對服務(wù)端說hello
應(yīng)用層沒什么特別的
客戶端向服務(wù)端發(fā)送202個字節(jié)的數(shù)據(jù),并且客戶端此時的 seq num 為1 ,tcp三次握手已經(jīng)通過了,所以客戶端ack num 確認(rèn)的是服務(wù)端的tcp的最后一次信息。由于這次發(fā)送的長度是202個字節(jié),所以給服務(wù)端說,下一個字節(jié)序列號是從203開始的。
標(biāo)志位為ack和psh
但是這次多了一個 secure socket layer層。協(xié)議使用的時候,用的是handshake protocol,給服務(wù)端發(fā)消息clienthello
詳細(xì)的信息如下:
secure socekts layer層使用的是版本是tls 1.0
handshake type的類型,是客戶端打招呼 client hello
handshake protocol 協(xié)議使用的是tls 1.2
發(fā)送的信息還有客戶端在本地生成的隨機(jī)碼(random)
然后客戶端聲明自己所支持的加密套件(cipher suites)這個客戶端支持15種加密套件
加密套件中表明了使用的對稱加密算法,非對稱加密算法,摘要算法以及使用的是tls或者是ssl
還有一些其他的信息
第一行指明是否進(jìn)行了壓縮以及使用的壓縮算法,第二行null表明未進(jìn)行壓縮,以及選用相關(guān)的壓縮算法或者壓縮工具
剩下的就是一些擴(kuò)展的字段了
總結(jié)下來,客戶端向服務(wù)端第一次打招呼(client hello)的時候?qū)嶋H上主要發(fā)送了以下主要的信息
客戶端的隨機(jī)數(shù)
客戶端所支持的加密套件
以及客戶端和服務(wù)器之間的sessionid
接下來就是服務(wù)端對客戶端hello的第一次回應(yīng),也就是編號19372
可以看到 服務(wù)端使用的是443端口,序列號(sequence number)也是1 ,并且回應(yīng)客戶端說我已經(jīng)確認(rèn)收到你的202個自己的數(shù)據(jù)(203-1),flags表明本次是服務(wù)端反饋給客戶端請求的應(yīng)答(藍(lán)色的文字也寫出來了,這是一個隊19371編號的應(yīng)答)
可以看出這是一個tcp連接
server hello
接下來不等客戶端反應(yīng),服務(wù)端又給客戶端發(fā)送了19373的數(shù)據(jù),而這個數(shù)據(jù)就是使用了tls1.2協(xié)議了。
摘要信息中說明了這是服務(wù)端的的hello,server hello,服務(wù)端秘鑰交換,服務(wù)端hello done。接下來看服務(wù)端發(fā)過來的具體都有什么。
傳輸控制層(transmission control protocol)和上面一樣,主要是一些flags,端口以及數(shù)據(jù)長度的確認(rèn)等等,主要看一下安全套接字層的東西(secure sockets layer)中的東西。
通過上圖,可以看出服務(wù)端主要返回四種內(nèi)容。
server hello 服務(wù)端的回應(yīng)客戶端的hello信息 certificate 服務(wù)端證書 server key exchange 服務(wù)器秘鑰交換 server hello done 服務(wù)器信息發(fā)送完畢
詳細(xì)看一下各個record layer中的具體內(nèi)容
server hello
在server hello中,服務(wù)器返回的服務(wù)端的隨機(jī)數(shù),所選用的tls 版本,以及服務(wù)器最終選用的客戶端和服務(wù)端交互的加密套件(tls_ecdhe_rsa_with_aes_256_gcm_sha384 (0xc030)),最終選用的加密套件是rsa非對稱加密算法以及aes對稱加密算法,用的是sha384做摘要,注意,這個值必須是客戶端發(fā)給服務(wù)端的列表中選出來的。實際上如果客戶端只能支持版本和安全性比較低的加密套件,這樣服務(wù)端選擇和客戶端交互的時候也被迫只能使用低版本的加密套件,其安全性就會降低。除了以上這些,服務(wù)端server hello時發(fā)送回來的還有是否使用了壓縮以及一些其他的擴(kuò)展字段
certificate
server hello以后,服務(wù)端會發(fā)送公鑰證書給客戶端
certificates (953 bytes) certificate length: 950 certificate: 308203b23082029aa003020102020101300d06092a864886… (id-at-commonname=www.wtf.com,id-at-organizationname=jd,id-at-stateorprovincename=bj,id-at-countryname=cn) signedcertificate version: v3 (2) serialnumber: 1 signature (sha256withrsaencryption) algorithm id: 1.2.840.113549.1.1.11 (sha256withrsaencryption) issuer: rdnsequence (0) rdnsequence: 7 items (pkcs-9-at-emailaddress=iloveme313@163.com,id-at-commonname=wangtengfei,id-at-organizationalunitname=section,id-at-organizationname=jd,id-at-localityname=bj,id-at-stateorprovincename=bj,id-at-countryname=cn) rdnsequence item: 1 item (id-at-countryname=cn) rdnsequence item: 1 item (id-at-stateorprovincename=bj) rdnsequence item: 1 item (id-at-localityname=bj) rdnsequence item: 1 item (id-at-organizationname=jd) rdnsequence item: 1 item (id-at-organizationalunitname=section) rdnsequence item: 1 item (id-at-commonname=wangtengfei) rdnsequence item: 1 item (pkcs-9-at-emailaddress=iloveme313@163.com) validity notbefore: utctime (0) utctime: 16-11-22 06:38:18 (utc) notafter: utctime (0) utctime: 17-11-22 06:38:18 (utc) subject: rdnsequence (0) rdnsequence: 4 items (id-at-commonname=www.wtf.com,id-at-organizationname=jd,id-at-stateorprovincename=bj,id-at-countryname=cn) rdnsequence item: 1 item (id-at-countryname=cn) rdnsequence item: 1 item (id-at-stateorprovincename=bj) rdnsequence item: 1 item (id-at-or
上一個:節(jié)能減排,從現(xiàn)場做起
下一個:先鋒電視全國服務(wù)熱線,先鋒電視客服電話為什么跟蘇寧客服電話一樣

菜雞云電腦是每天免費(fèi)多久(菜雞云電腦多少錢一個小時)
電腦配置怎么看好不好,怎么確定電腦配置好與不好
四季海棠發(fā)生葉卷縮發(fā)黃發(fā)焦怎么辦
冬初,喝這些茶補(bǔ)水潤肺!
什么是口頭合同
云端訓(xùn)練服務(wù)器價格
女生微信朋友圈封面 干凈好看50張朋友圈背景圖
華碩官網(wǎng)網(wǎng)址是多少啊,華碩電腦官方網(wǎng)站
厚聲0201WMF1304TEE今日行情、最新報價
電腦關(guān)機(jī)后還能被遠(yuǎn)程控制嗎(電腦關(guān)機(jī)后還會被遠(yuǎn)程控制嗎)
十八禁 网站在线观看免费视频_2020av天堂网_一 级 黄 色 片免费网站_绝顶高潮合集Videos