1. 程式人生 > >HTTPS協議工作原理(SSL數字證書)

HTTPS協議工作原理(SSL數字證書)

目錄

HTTPS

SSL協議的工作過程

SSL數字證書的檢視


HTTPS

我們都知道HTTP協議是明文傳輸的,並且不能驗證對方的身份,而且不能保證資料的完整性。而當我們在網路上進行購物電子交易時,電子網銀轉賬時,這種方式就顯得很不安全了。如果黑客截取了我們和伺服器端的通訊資料,那麼黑客就能獲取我們的一些敏感資訊了。所以,HTTPS應運而生!

HTTPS是在HTTP協議的基礎上加了SSL協議,SSL協議加在了傳輸層和應用層之間。在加入了SSL協議後,HTTPS相比HTTP更加的安全,其對資料的傳輸進行了加密處理,並且能驗證通訊雙方的身份,還保證了資料傳輸過程的完整性。這樣,即使黑客截取了我們和伺服器之間的通訊資料,它也獲取不到任何有用的資訊。

需要說明的是,SSL協議是獨立於 HTTP 的協議,所以不光是 HTTP 協議,其他執行在應用層的 SMTP和 Telnet 等協議均可配合 SSL 協議使用。可以說 SSL 是當今世界上應用最為廣泛的網路安全技術。

SSL協議的工作過程

那麼SSL協議是如何工作的呢?

首先,這需要伺服器擁有SSL證書,SSL證書是需要向第三方CA機構申請的,現在大部分的SSL證書都是要付費申請的。

我們拿 baidu.com為例:百度首先利用公鑰密碼體制生成一對公私鑰,私鑰自己儲存著,然後將公鑰和baidu.com的一些身份資訊傳送給第三方可信任CA機構,CA機構收到百度的申請之後,將執行一些必要的步驟,以確信請求確實由百度傳送而來,並且這些資訊是正確的。然後,認證中心對百度發來的公鑰和百度的身份資訊進行數字簽名,生成數字證書,然後傳送給百度。數字證書裡面包含了百度的公鑰、百度的身份資訊 

和 第三方CA機構的數字簽名

 那麼百度擁有了SSL數字證書之後,我們和百度之間是如何工作的呢?

  1. 客戶端訪問 https://www.baidu.com ,要求與百度Web伺服器建立SSL連線
  2. 百度Web伺服器接收到客戶端請求後,會將網站的證書資訊傳送給客戶端
  3. 客戶端收到百度的證書資訊後,通過證書上第三方可信任機構CA的簽名,驗證證書的真假。
  4. 驗證真實性之後,客戶端的瀏覽器與百度Web伺服器開始協商SSL連線的安全等級,也就是資訊加密的等級。
  5. 客戶端的瀏覽器根據雙方同意的安全等級,建立會話金鑰對,然後利用網站證書中的公鑰將會話金鑰對的公鑰進行加密,併發送給百度Web伺服器
  6. 百度Web伺服器利用自己的私鑰解密出會話金鑰對的公鑰。所以現在我們有了百度的公鑰,百度也有了我們瀏覽器會話金鑰對的公鑰
  7. 瀏覽器和百度Web伺服器分別利用對方的公鑰對資料進行加密傳輸。

SSL數字證書的檢視

瀏覽器工具->Internet選項->內容->證書,就可以看到我們瀏覽器上的數字證書了。所謂證書,其實是對公鑰的封裝,在公鑰的基礎上添加了諸如頒發者之類的資訊。