計算機網路延申 一 HTTPS

2021-10-03 09:01:11 字數 2822 閱讀 4060

這篇文章,我們將從 http 明文傳輸開始,一步步講解 https 是怎麼在 http 的基礎上實現加密通訊的

一開始的時候,http 設計的初衷只是解決了通訊的問題,所以資料是明文傳輸的

在這種情況下,一些不懷好意的人很容易在雙方不知情的情況下,竊取資料

要保證資料不被竊取,唯一的辦法就是給傳輸的資料加密

這樣即使別人竊取到資料,也不知道傳輸的內容,因為他獲得的只是一堆看起來無意義的亂碼

(1)對稱加密

通訊雙方約定乙個金鑰,這個金鑰只有通訊雙方知道,用這個金鑰加密的資料,只有用這個金鑰才能夠解密

(2)對稱加密的問題

對稱加密有乙個問題,這個問題出現在通訊過程的開始,那就是通訊的雙方要怎麼約定金鑰

假如金鑰是通過網路傳輸的,那麼很可能這個金鑰在一開始就被別人竊取

(1)非對稱加密

要通訊的主機首先產生一對金鑰(乙個公鑰和乙個私鑰),其中公鑰是大家都知道,私鑰是只有才自己知道

用公鑰加密的資料,只有用對應的私鑰才能解密,用私鑰加密的資料,只有用對應的公鑰才能解密

(2)非對稱加密的問題

非對稱加密也有乙個問題,這個問題和對稱加密的問題有點相似,就是公鑰怎麼安全地交到對方手上

假如也是通過網路傳輸,那麼公鑰有可能被替換(中間人攻擊)

非對稱加密解決了密碼被竊取的問題,因為公鑰是大家都知道的,不存在被誰竊取的問題

現在的問題在於怎麼證明 「你就是你」(alice 怎麼知道和自己通訊的是 bob 而不是 hacker)

我們暫且拋開上面的問題不談,先來討論一下數字簽名技術

數字簽名的出現主要是為了解決兩個問題,一是驗證內容是否被篡改,二是確定內容是誰生成的

它具體是怎麼做到的呢?不急,我們先來看一下使用數字簽名的兩個過程,生成簽名和驗證簽名

怎麼驗證內容沒有被修改,看完上面的兩個過程相信大家也已經知道,那麼確定內容是誰生成的又是怎麼做到的呢

我們注意到乙個細節,對摘要進行加密使用的是傳送方的私鑰,而私鑰是自己才有的,這就是唯一性的證明

由於私鑰只有自己知道,也就是說只有自己才能簽名,而公鑰是大家都知道的,所以大家都能驗證簽名

實際上,數字簽名是常規的非對稱加密的逆應用,在數字簽名中,使用私鑰加密,使用公鑰解密

好,我們重新回到之前的問題,怎麼證明 「你就是你」,問題的本質其實是公鑰怎麼安全分發

這時候數字證書就可以派上用場,數字證書是由權威機構頒發給伺服器的身份憑證,其實就相當於身份證

伺服器拿著身份證就能證明 「我就是我,是獨一無二的煙火」,並且通過數字證書我們還能安全的分發公鑰

下面我們先來看看乙個伺服器是怎麼申請證書的,以及客戶端是怎麼根據證書得到可信的公鑰的

針對上面的兩個過程,我們來回答幾個問題

1、為什麼數字證書不能偽造?

因為數字證書包含權威機構的數字簽名,數字簽名的特點就是只有自己才能簽名,但大家都能驗證簽名

2、為什麼權威機構是可信的?

這個問題真要從密碼學的角度的確難講,但這個道理就相當於在現實生活中我們為什麼要相信銀行一樣

3、在驗證證書時,需要使用到權威機構的公鑰,這個公鑰是怎麼傳輸的?

又回到這個問題,公鑰怎麼安全分發,按照以前思路,就是讓另乙個權威機構給這個權威機構頒發證書

那這就是乙個無限遞迴,怎麼搞呀?要想結束遞迴,那就要給遞迴設定初始條件

權威機構是乙個樹狀分層的結構,高層的權威機構會給低層的權威機構頒發證書

某些頂層權威機構的證書會內建在作業系統或瀏覽器中,預設使用的人自動相信他們

兜兜轉轉,一路過來,終於到最後一步了

把我們之前講的對稱加密、非對稱加密、數字簽名、數字證書綜合應用起來,就是 https 使用的加密技術

最後,我們把這些東西串聯起來,講一下 https 通訊的全過程

客戶端請求建立加密連線

伺服器給客戶端傳送證書

客戶端檢視證書的有效日期,如果證書已經過期,那麼提示失效,如果證書沒有過期,繼續下面步驟

客戶端檢視證書的頒發機構

如果客戶端知道這個頒發結構,那麼就會用對應的公鑰驗證證書,得到服務端的公鑰

若客戶端不知道這個頒發機構,那麼就會提示這個證書存在風險,讓使用者選擇是否要相信這個證書

如果驗證通過,也就意味著客戶端已經得到服務端的公鑰

那麼客戶端隨機生成乙個對稱金鑰,並用服務端的公鑰加密,傳送給服務端

服務端收到後,用自己的私鑰解密,得到對稱金鑰

此時,雙方都已知道對稱金鑰 ,之後用它進行加密通訊

計算機網路 時延

時延 是資料 乙個報文或分組,甚至位元 從網路或鏈路的一段傳送到另一端所需要的時間。傳送時延 是從傳送資料幀的第乙個位元算起,到該幀的最後乙個位元傳送完畢所需的時間。傳送時延 資料幀長度 b 通道頻寬 b s 通道頻寬即傳送速率 傳播時延 電磁波在通道中需要傳播一定的距離而花費的時間。處理時延 主機...

計算機網路 HTTPS協議

一 https簡介 https 全稱 hypertext transfer protocol over secure socket layer 是以安全為目標的http通道,簡單講是http的安全版。https是身披ssl外殼的http,https並不是應用層的一種協議,而是http通訊介面部分採用...

計算機網路 各種時延的計算

時延 是資料 乙個報文或分組,甚至位元 從網路或鏈路的一段傳送到另一端所需要的時間。傳送時延 是從傳送資料幀的第乙個位元算起,到該幀的最後乙個位元傳送完畢所需的時間。傳送時延 資料幀長度 b 通道頻寬 b s 通道頻寬就是資料率 傳播時延 電磁波在通道中需要傳播一定的距離而花費的時間。傳播時延 通道...