淺談https(創建、傳輸、斷開)


前言

  比起http,https是更安全的,傳輸過程中加密的。但是具體的加密過程是怎么樣我一直一知半解。花了點時間抓包簡單分析了一下,希望對大家有用。

  在windows平台下抓tcp包是用wireshark的了。沒啥好說的。  

  我們平常的一次https 的請求,如下所示

 

創建https連接

  創建https鏈接是最復雜的部分。

  首先是tcp三次握手。基於tcp的東西,這是必須的。

 

  然后是客戶端告知服務器要創建https連接,這一步稱之為 client hello客戶端告知服務器要創建一個怎么樣的https協議,並且發出一個client的隨機數

 

  然后是服務器響應客戶端一個ack(服務器說我收到啦^_^)

  接下來服務器向客戶端發出server hello服務器與客戶端確認https具體什么協議(TLS V1.0? V2.0?等),而且發出一個server端的隨機數

  客戶端沒有ack~,服務器告知客戶端證書里面有一個證書,通過diffie-hellman算法來加解密。

  客戶端說我收到啦,有一次ack。

  客戶端一次diffie-hellman參數校驗

  最后,server端響應session-ticket,用於全程加解密

 

  連接就創建完了。以后就是全程加密的傳輸啦。

 

  簡述創建https的過程:

  • tcp三次握手
  • 客戶端發送hello client
  • 服務器發送hello server
  • 服務器發送證書、diffie-hellman參數
  • 客戶端響應diffie-hellman參數
  • 服務器響應sessionTicket

傳輸

  全程加密, 沒啥。。。

 

斷開

  在傳統的四次揮手中, 多了一個 Alert Message: Encrypted Alert。 沒什么的。

 

參考

http://blog.csdn.net/fw0124/article/details/40875629

http://blog.csdn.net/fw0124/article/details/40983787

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM