本篇內(nèi)容主要講解“HTTPS的請求流程分析”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“HTTPS的請求流程分析”吧!
創(chuàng)新互聯(lián)專注于晉源網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供晉源營銷型網(wǎng)站建設(shè),晉源網(wǎng)站制作、晉源網(wǎng)頁設(shè)計(jì)、晉源網(wǎng)站官網(wǎng)定制、微信小程序開發(fā)服務(wù),打造晉源網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供晉源網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
廢話少說,上圖。Just Show Photo.
tls的各個(gè)版本的區(qū)別,本文不過多的討論。 只是為了讓大家了解tls的整個(gè)加密流程。
ietf的論文 https://tools.ietf.org/html/rfc5246#section-7.3
如下圖:TLS的交互流程比較簡單,只需要進(jìn)行交互的生活 進(jìn)行兩次單獨(dú)的握手操作即可。
WireShark的TLS抓包流程。請求coolshell.com抓包的數(shù)據(jù).
本人按照 tls的抓包流程進(jìn)行詳細(xì)介紹對于每一步進(jìn)行介紹.再上一個(gè)流程圖,然后按照這個(gè)每一步進(jìn)行講解。本流程圖 按照wireshark抓包為準(zhǔn)
第一次建立鏈接,客戶端發(fā)送首先發(fā)送信息到服務(wù)端。由于客戶端對加密算法的支持不一樣,需要發(fā)送支持的加密套件[Cipher Suites]信息,同時(shí)生成一個(gè)隨機(jī)數(shù)[Random]。 如下圖
在服務(wù)端接收到Client Hello 信息以后,從加密套件里面選擇一個(gè)加密算法。如果服務(wù)器沒有找到一個(gè)支持的算法,返回報(bào)錯(cuò)信息.返回一個(gè)隨機(jī)數(shù)[Random]
Certifate: 向客戶端發(fā)動(dòng) CA認(rèn)證的數(shù)字證書,鑒別服務(wù)端身份
Server Hello Done: 服務(wù)端宣告和客戶端第一階段握手協(xié)議結(jié)束
Server Key Exhchange[可選]: 如果CA的認(rèn)證的數(shù)字證書提供的信息不夠,服務(wù)端發(fā)送補(bǔ)充信息
Client Key Exhchange : 客戶端收到CA數(shù)字證書并通過認(rèn)證,然后通過CA公鑰解密獲取到服務(wù)端公鑰。Client Key Exchange 報(bào)文包含一個(gè)隨機(jī)數(shù),這個(gè)隨機(jī)數(shù)成為pre-master key /secret.表示隨后的信息使用雙方協(xié)議好的加密方法密鑰發(fā)送的通知。
還有一個(gè)協(xié)商好的hash算法對前面的所有內(nèi)容信息的hash計(jì)算值。用來提供服務(wù)端校驗(yàn)。這些信息通過服務(wù)端公鑰加密 傳送給服務(wù)端。
Change Cipher Spec: 該報(bào)文通知服務(wù)端,此后的通信將通過協(xié)商好的加密算法計(jì)算對稱密鑰,進(jìn)行加密通信?!臼褂脙蓚€(gè)隨機(jī)數(shù)以及第三個(gè) pre-master key/secret 隨機(jī)數(shù) 計(jì)算出一個(gè)對稱密鑰 session key / secret 】后續(xù)會(huì)發(fā)送 密鑰信息。
Encrypted Handshake Message:客戶端或者服務(wù)器發(fā)送的,屬于TLS handshake,也是緊跟著Key Exchange發(fā)送。這里是進(jìn)行一下測試,一方用自己的剛剛生成的密鑰加密一段固定的消息發(fā)送給對方,如果密鑰協(xié)商正確無誤的話,對方應(yīng)該可以解密。這段加密內(nèi)容的明文一般是協(xié)議中規(guī)定好的,雙方都知道
下圖中Application Data有一條數(shù)據(jù)是加密的 對稱密鑰
到此,相信大家對“HTTPS的請求流程分析”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!