抓包工具:Wireshark算法
本機ip:10.129.135.155segmentfault
目標網站:https://segmentfault.com/服務器
抓包截圖session
一目瞭然,No33,44,45,是TCP的三次握手,除此以外,創建TLS/SSL鏈接,也須要先創建握手dom
主要向服務端傳遞的信息函數
主要向客戶端傳遞選擇的版本,密碼套件和壓縮方法,以及服務端生成的隨機數工具
每一個密碼套件的名稱定義一個密鑰交換算法、一個批量加密算法、一個消息認證碼(MAC)算法,以及一個僞隨機函數(PRF)測試
在上面的例子中,網站
服務端向客戶端發送證書,ui
服務端向客戶端發送密鑰交換的額外數據
服務端告訴客戶端消息發送完畢
客戶端傳遞交換密鑰所須要的信息
客戶端的發送的消息已被加密
服務端發送的消息已被加密
客戶端和服務端會前後向對方發送Change Cipher Spec Message,告之對方要切換密碼
解決的是
要確保機密性,可使用對稱密碼。
因爲對稱密碼的密鑰不能被攻擊者預測,所以咱們使用僞隨機數生成器來生成密鑰。
若要將對稱密碼的密鑰發送給通訊對象,可使用公鑰密碼或者Diffie-Hellman密鑰交換。
要識別篡改,對數據進行認證,可使用消息認證碼。消息認證碼是使用單向散列函數來實現。
要對通訊對象進行認證,可使用對公鑰加上數字簽名所生成的證書。
將公鑰放在數字證書中,只要證書可信,公鑰就可信
每一次對話(session),客戶端和服務端都生成一個「對話密鑰」,用它來加密信息。因爲「對話密鑰」是對稱加密,因此運算速度很是快,而服務器公鑰只用於加密「對話密鑰」自己,這樣就減小了加密運算的消耗時間
會話密鑰是經過三個隨機數生成的,是對稱密碼的密鑰,也是非對稱密碼的明文
消息認證碼,Message authentication code,MAC,是一種確認完整性並進行認證的技術
消息認證碼的輸入包括任意長度的消息和一個發送者與接收者之間共享的密鑰,它能夠輸出固定長度的數據,這個數據稱爲MAC值
消息認證碼是一種與密鑰相關聯的單向散列函數
消息認證碼的侷限在於沒法防止否定,服務端也有密鑰,能夠生成MAC
公鑰密碼包括一個有公鑰和私鑰組成的密鑰對,其中公鑰用於加密,私鑰用於解密
數字簽名的過程當中,用私鑰加密來生成簽名,用公鑰解密來驗證簽名
爲公鑰加上數字簽名
公鑰證書,Public-Key Certificate,PKC
認證機構,Certification Authority,CA,可以認定公鑰確實屬於此人
證書通常包括,簽名對象的信息包括公鑰,數字簽名的算法,數字簽名
Public-Key Infrastructure,是爲了可以有效地運用公鑰而制定的一系列規範的總和