第一階段:
客戶端向服務端傳送加密通訊請求並攜帶
1. 客戶端支援 ssl / tls 版本
2. 客戶端產生的隨機數,用於生成最後的會話秘鑰。
3. 客戶端支援的密碼套件
版本和密碼套件由伺服器進行選擇
第二階段:
伺服器在收到客戶端發來的請求後,選擇上述版本和密碼套件後,同樣生成乙個隨機數,並攜帶伺服器的數字證書(內含伺服器的公鑰)傳送給客戶端。
第三階段:
客戶端收到回應後會使用遊覽器或作業系統中的 ca 公鑰對數字證書的正確性進行驗證,成功後會再次生成乙個隨機數,並使用數字證書中的伺服器公鑰進行加密傳送給伺服器。
同時傳送結束握手階段的通知,並攜帶握手階段的資料摘要供伺服器驗證。
第四階段:
伺服器收到回應後同樣會傳送結束握手通知,並攜帶握手階段的資料摘要供伺服器驗證。
這時客戶端和伺服器都有三個隨機數,二者都會通過這三個隨機數計算出會話秘鑰,之後就用這個會話秘鑰進行通話。
https建立連線過程
既然要公升級為https協議,那就很有必要知道https的原理是什麼,https是怎麼保證資訊只有通訊雙方能解析而不被第三方截獲導致資訊被竊取 篡改。2.1 原理圖 下面是一張https建立連線的原理圖,下面會對每一步進行說明。https建立連線 2.2 https建立連線過程 2.2.1 客戶端訪...
HTTPS建立連線過程詳解
現今https對乙個網路服務來說是必備的,但之前乙隻對https瀏覽器與伺服器建立連線的握手過程一知半解,下面進行一下總結 上面是一張建立https連線的流程圖,建立連線過程如下 1 客戶端傳送乙個隨機生成的隨機數加上將客戶端所支援的所有加密套件傳送給服務端,服務端收到客戶端的client hell...
編譯鏈結過程
在談編譯鏈結過程之前我們需要了解一下虛擬位址空間以及程式在編譯鏈結過程時經過了什麼步驟。虛擬位址空間之前在程序空間的部落格中詳細介紹過了,詳見 上圖就是32位系統中4g虛擬位址空間的分布情況 text 段 指令段,存放的是指令 在程式中,我們把區域性變數定義 區域性變數的 定義是指令而不是資料 還有...