一、總結:兩次互動過程,三個秘鑰。
第一次互動:用非對稱加密的公鑰和私鑰商量下通訊使用的真實秘鑰
第二次互動:用真實秘鑰進行加密通訊
詳情如下:
https在傳輸的過程中會涉及到三個金鑰:
伺服器端的公鑰和私鑰,用來進行非對稱加密
客戶端生成的隨機金鑰,用來進行對稱加密
二、過程描述:
乙個https請求實際上包含了兩次http傳輸,可以細分為8步。
1.客戶端向伺服器發起https請求,連線到伺服器的443埠
2.伺服器端有乙個金鑰對,即公鑰和私鑰,是用來進行非對稱加密使用的,伺服器端儲存著私鑰,不能將其洩露,公鑰可以傳送給任何人。
3.伺服器將自己的公鑰傳送給客戶端。
4.客戶端收到伺服器端的公鑰之後,會對公鑰進行檢查,驗證其合法性,如果發現發現公鑰有問題,那麼https傳輸就無法繼續。嚴格的說,這裡應該是驗證伺服器傳送的數字證書的合法性,關於客戶端如何驗證數字證書的合法性,下文會進行說明。如果公鑰合格,那麼客戶端會生成乙個隨機值,這個隨機值就是用於進行對稱加密的金鑰,我們將該金鑰稱之為client key,即客戶端金鑰,這樣在概念上和伺服器端的金鑰容易進行區分。然後用伺服器的公鑰對客戶端金鑰進行非對稱加密,這樣客戶端金鑰就變成密文了,至此,https中的第一次http請求結束。
5.客戶端會發起https中的第二個http請求,將加密之後的客戶端金鑰傳送給伺服器。
6.伺服器接收到客戶端發來的密文之後,會用自己的私鑰對其進行非對稱解密,解密之後的明文就是客戶端金鑰,然後用客戶端金鑰對資料進行對稱加密,這樣資料就變成了密文。
7.然後伺服器將加密後的密文傳送給客戶端。
8.客戶端收到伺服器傳送來的密文,用客戶端金鑰對其進行對稱解密,得到伺服器傳送的資料。這樣https中的第二個http請求結束,整個https傳輸完成。
第一次訓練賽 H
fzu 1075 假設x是乙個正整數,它的值不超過65535 即1input 輸入的第一行含乙個正整數k 1 k 10 表示測試例的個數,後面緊接著k行,每行對應乙個測試例,包含乙個正整數x。output 每個測試例對應一行輸出,輸出x的素數乘積表示式,式中的素數從小到大排列,兩個素數之間用 表示乘...
優化EF Code First第一次請求速度
由於ef code first模式沒有模型檔案,所以很多一次請求的時候速度比較慢,ef需要將對應的資料庫對映關係載入到記憶體裡面,往後請求就比較快。可以通過在程式初始化的時候增加一段 來優化ef第一次執行的速度,具體 如下 ef暖機操作 using companycontext dbcontext ...
第一次飛行
開始敲下這段話時,窗外下面正是一片片陽光照耀著的白雲,伴隨著張學友的歌聲,心潮起伏.雖然從初中起,我就經常乙個人坐著火車,汽車東奔西跑,坐飛機卻是第一次.早上上飛機前,心裡忐忑,必竟還是踏在陸地上踏實.但上了飛機後注意力就放在其它地方上去了,而且,運氣好的是我有乙個靠窗的位置.飛機準備起飛了,助跑加...