certificate, client key exchange, certificate verify, change cipher spec, encrypted handshake message
change cipher spec, encrypted handshake message
首先放一張整個流程的截圖握手的第一步是客戶端向服務端傳送client hello訊息,內容如下:ssl/tls握手是為了安全的協商出乙份對稱加密的金鑰,過程如下
上圖可以大概描述整個握手過程
第二步是服務端向客戶端傳送 server hello 訊息,這個訊息根據客戶端的client hello選擇合適的加密套件、壓縮演算法等,具體如下:
這一步是服務端將自己的證書下發給客戶端,讓客戶端驗證自己的身份,客戶端驗證通過後取出證書中的公鑰。
這裡使用的是dh演算法,這裡傳送伺服器使用的dh引數。rsa演算法不需要這一步。
這裡是雙向認證,服務端也要認證客戶端的身份,所以回向客戶端傳送證書請求,以驗證客戶端的身份
這裡傳送乙個空包,意思是server hello done
因為是雙向認證,服務端要驗證客戶端的合法性,所以這裡客戶端需要傳送客戶端的證書供服務端驗證身份
上面客戶端根據伺服器傳來的公鑰生成了 premaster key,client key exchange 就是將這個 key 傳給服務端,服務端再用自己的私鑰解出這個 premaster key 得到客戶端生成的 random3。至此,客戶端和服務端都擁有 random1 + random2 + random3,兩邊再根據同樣的演算法就可以生成乙份秘鑰,握手結束後的應用層資料都是使用這個秘鑰進行對稱加密。
客戶端收到服務端傳來的證書後,先從 ca 驗證該證書的合法性,驗證通過後取出證書中的服務端公鑰,再生成乙個隨機數 random3,再用服務端公鑰非對稱加密 random3 生成 premaster key。
這一步是客戶端通知服務端後面再傳送的訊息都會使用前面協商出來的秘鑰加密了,是一條事件訊息。
這步為止一共產生了三個隨機數,這三個隨機數可以生成會話金鑰,用來加密訊息,客戶端將前面的握手訊息生成摘要再用協商好的秘鑰加密,這是客戶端發出的第一條加密訊息。服務端接收後會用秘鑰解密,能解出來說明前面協商出來的秘鑰是一致的。
這一步和客戶端的change cipher spec作用一樣,是告訴客戶端,接下來的訊息都會經過加密傳輸,也是乙個事件訊息
服務端也會將握手過程的訊息生成摘要再用秘鑰加密,這是服務端發出的第一條加密訊息。客戶端接收後會用秘鑰解密,能解出來說明協商的秘鑰是一致的。
經過上面步驟,已經能夠確認雙方協商除了乙個合法的金鑰,接下來傳輸的訊息,都會經過加密之後經過傳輸層進行傳輸
wireshark 抓包使用
此片文章意在介紹 wireshark 的基本抓包使用,沒有複雜介紹,請各位知曉 wireshark 安裝完後可能有中英文兩種,但是操作區域基本都是一致 1wireshark 讀到本機所有的網路介面,包含虛擬和物理網路介面 2填寫 wireshark 的抓包捕獲條件,比如最簡單的網域名稱匹配抓包 ho...
用WireShark進行網路抓包
第一步 安裝wireshark1.6.4的同時,依賴安裝了winpcap,winpcap是用於網路封包抓取的一套工具,可適用於32位的操作平台上解析網路封包。第二步 開啟wireshark開始抓包。然後我們開啟人人網 主頁。登陸操作,登陸後,停止抓包。第三步 在cmd中使用ipconfig 得到本機...
wireshark 抓包問題
一 the npf driver isn t running 這個錯誤是因為沒有開啟npf服務造成的。npf即網路資料報過濾器 netgroup packet filter,npf 是winpcap的核心部分,它是winpcap完成困難工作的元件。它處理網路上傳輸的資料報,並且對使用者級提供可捕獲 ...