目錄
一、基礎知識
二、https進行的流程
三、https和http的區別
(1)https的介紹
https是一種應用層協議,本質上來說它是http協議的一種變種。https比http協議安全,因為http是明文傳輸,而https是加密傳輸,加密過程中使用了三種加密手段,分別是證書,對稱加密和非對稱加密。https相比於http多了一層ssl/tsl,其構造如下:下面簡單介紹下加密演算法
(1)證書加密
伺服器在使用證書加密之前需要去證書頒發機構申請該伺服器的證書,在https的請求過程伺服器端將會把本伺服器的證書傳送給客戶端,客戶端進行證書驗證,以此來驗證伺服器的身份。
(2)對稱加密
https的請求中,客戶端和伺服器之間的通訊的資料是通過對稱加密演算法進行加密的。對稱加密,即在加密和解密的過程使用同乙個私鑰進行加密以及解密,而且對稱加密演算法是公開的,所以該私鑰是不能夠洩漏的,一旦洩漏,對稱加密形同虛設。
上述私鑰是可能洩漏的,原因是上述私鑰是需要在網路中進行傳輸的。流程:在a端生成私鑰,傳遞給b端(傳遞過程需要是安全的),後面a端使用該私鑰加密,傳遞資料報文到b端,b端使用接受到的私鑰解密。
加密過程:加密演算法+明文+私鑰------》密文
解密過程:解密演算法+密文+私鑰------》明文
適用場景:上述過程是不複雜的,對大量資料進行加密時,對稱加密是適用的,速度快
(3)非對稱加密演算法
https的請求中也使用了非對稱加密演算法。非對稱加密,加密和解密過程使用不同的金鑰,乙個公鑰,對外公開,乙個私鑰,僅是解密端擁有。由於公鑰和私鑰是分開的,非對稱加密演算法安全級別高,加密密文長度有限制,適用於對少量資料進行加密,速度較慢。
case1:使用公鑰加密,私鑰解密
加密過程:加密演算法+明文+共鑰------》密文
解密過程:解密演算法+密文+私鑰------》明文
流程:a端向b端請求,b端返回公鑰給a端,然後a端使用公鑰加密,傳遞給資料報文給b端,b端使用自己的私鑰進行解密。
case2:使用私鑰加密,公鑰解密
加密過程:加密演算法+明文+私鑰------》密文
解密過程:解密演算法+密文+共鑰------》明文
該過程有些不明白,需要深入研究,公鑰每個人都可以獲取,解密過程豈不是人人都可以????
https作為一種安全的應用層協議,它使用了以上三種加密手段,我們現在嘗試分析其加密的思想。
首先,資料正文一般資料量較大,適用於對稱加密,因為對稱加密速度快,適應於大量資料加密,但是安全級別低,其中對稱加密的私鑰需要在網路中傳輸,容易被盜取;
其次,正因為非對稱機密私鑰易被盜取,所以我們需要對這個私鑰進行加密,而且安全級別要求高,所以這個可以用非對稱加密進行加密,原因是對稱加密的私鑰資料量小,非對稱加密可以提供高安全級別和高響應速度。
最後,由於非對稱加密的公鑰可以在網路中傳輸,如何保證公鑰傳送到給正確的一方,這個時候使用了證書來驗證。證書不是保證公鑰的安全性,而是驗證正確的互動方。可以使用下圖進行說明:
上述過程就是兩次http請求,其詳細過程如下:
1.客戶端想伺服器發起https的請求,連線到伺服器的443埠;
2.伺服器將非對稱加密的公鑰傳遞給客戶端,以證書的形式回傳到客戶端
3.伺服器接受到該公鑰進行驗證,就是驗證2中證書,如果有問題,則https請求無法繼續;如果沒有問題,則上述公鑰是合格的。(第一次http請求)客戶端這個時候隨機生成乙個私鑰,成為client key,客戶端私鑰,用於對稱加密資料的。使用前面的公鑰對client key進行非對稱加密;
4.進行二次http請求,將加密之後的client key傳遞給伺服器;
5.伺服器使用私鑰進行解密,得到client key,使用client key對資料進行對稱加密
6.將對稱加密的資料傳遞給客戶端,客戶端使用非對稱解密,得到伺服器傳送的資料,完成第二次http請求。
通過上線詳細對https的分析,我們可得:
(1)https是密文傳輸,http是明文傳輸;
(2)預設連線的埠號是不同的,https是443埠,而http是80埠;
(3)https請求的過程需要ca證書要驗證身份以保證客戶端請求到伺服器端之後,傳回的響應是來自於伺服器端,而http則不需要ca證書;
(4)https=http+加密+認證+完整性保護。
HTTP請求的整個過程
這是這兩天面試的時候的一道面試題,當時答得不好,現在總結了一下。一次完整的 http 請求包括一下幾個步驟 這僅是個人的理解 dns解析 tcp 連線 瀏覽器傳送http請求 伺服器響應請求 瀏覽器解析html檔案 瀏覽器布局渲染 1.dns網域名稱解析。1 首先會在瀏覽器dns快取中搜尋是否有對應...
網頁http請求的整個過程
這是這兩天面試的時候的一道面試題,當時答得不好,現在總結了一下。一次完整的 http 請求包括一下幾個步驟 這僅是個人的理解 dns解析 tcp 連線 瀏覽器傳送http請求 伺服器響應請求 瀏覽器解析html檔案 瀏覽器布局渲染 1.dns網域名稱解析。1 首先會在瀏覽器dns快取中搜尋是否有對應...
HTTPS請求過程
瀏覽器將自己支援的一套加密演算法給服務端 服務端從中選出一組加密演算法與hash演算法,將自己的身份資訊以證書的形式發回瀏覽器,證書中包括服務端 加密公鑰及證書頒發機構等資訊 瀏覽器收到訊息後作如下操作 如果證書受信任,或者使用者接受不受信任的證書,瀏覽器生成一串隨機數的密碼 對稱秘鑰 使用證書中的...