首頁 > 軟體

https協定詳解

2022-10-16 14:04:38

HTTPS協定概念

超文字傳輸安全協定(Hypertext Transfer Protocol Secure,簡稱:HTTPS)是一種通過計算機網路進行安全通訊的傳輸協定。HTTPS經由HTTP進行通訊,利用SSL/TLS來加密封包。HTTPS的主要目的是提供對網站伺服器的身份認證,保護交換資料的隱私與完整性。HTTP協定採用明文傳輸資訊,存在資訊竊聽、資訊篡改和資訊劫持的風險,而協定TLS/SSL具有身份驗證、資訊加密和完整性校驗的功能,可以避免此類問題發生。安全層的主要職責就是對發起的HTTP請求的資料進行加密操作 和 對接收到的HTTP的內容進行解密操作。

HTTPS通訊(握手)過程

  • 使用者端向伺服器發起請求,請求中包含使用的協定版本號、生成的一個亂數、以及使用者端支援的加密方法。
  • 伺服器端接收到請求後,確認雙方使用的加密方法、並給出伺服器的證書、以及一個伺服器生成的亂數。
  • 使用者端確認伺服器證書有效後,生成一個新的亂數,並使用數位憑證中的公鑰,加密這個亂數,然後發給服 務器。並且還會提供一個前面所有內容的 hash 的值,用來供伺服器檢驗。
  • 伺服器使用自己的私鑰,來解密使用者端傳送過來的亂數。並提供前面所有內容的 hash 值來供使用者端檢驗。
  • 使用者端和伺服器端根據約定的加密方法使用前面的三個亂數,生成對話祕鑰,以後的對話過程都使用這個祕鑰來加密資訊。

HTTPS的優缺點

優點:

使用HTTPS協定可以認證使用者和伺服器,確保資料傳送到正確的使用者端和伺服器
使用HTTPS協定可以進行加密傳輸、身份認證,通訊更加安全,防止資料在傳輸過程中被竊取、修改,確保資料安全性
HTTPS是現行架構下最安全的解決方案,雖然不是絕對的安全,但是大幅增加了中間人攻擊的成本

缺點:

HTTPS需要做伺服器和使用者端雙方的加密個解密處理,耗費更多伺服器資源,過程複雜
HTTPS協定握手階段比較費時,增加頁面的載入時間
SSL證書是收費的,功能越強大的證書費用越高
HTTPS連線伺服器端資源佔用高很多,支援訪客稍多的網站需要投入更大的成本
SSL證書需要繫結IP,不能再同一個IP上繫結多個域名

HTTPS如何保證安全

結合兩種加密⽅式,將對稱加密的金鑰使⽤⾮對稱加密的公鑰進⾏加密,然後傳送出去,接收⽅使⽤私鑰進⾏解密得到對稱加密的金鑰,然後雙⽅可以使⽤對稱加密來進⾏溝通。 此時⼜帶來⼀個問題,中間⼈問題:如果此時在使用者端和伺服器之間存在⼀箇中間⼈,這個中間⼈只需要把原本雙⽅通訊互發的公鑰,換成⾃⼰的公鑰,這樣中間⼈就可以輕鬆解密通訊雙⽅所傳送的所有資料。 所以這個時候需要⼀個安全的第三⽅頒發證書(CA),證明身份的身份,防⽌被中間⼈攻擊。 證書中包括:簽發者、證書⽤途、使⽤者公鑰、使⽤者私鑰、使⽤者的HASH演演算法、證書到期時間等。但是問題來了,如果中間⼈篡改了證書,那麼身份證明是不是就⽆效了?這個證明就⽩買了,這個時候需要⼀個新的技術,數位簽章。 數位簽章就是⽤CA⾃帶的HASH演演算法對證書的內容進⾏HASH得到⼀個摘要,再⽤CA的私鑰加密,最終組成數位簽章。當別⼈把他的證書發過來的時候,我再⽤同樣的Hash演演算法,再次⽣成訊息摘要,然後⽤CA的公鑰對數位簽章解密,得到CA建立的訊息摘要,兩者⼀⽐,就知道中間有沒有被⼈篡改了。這個時候就能最⼤程度保證通訊的安全了。

對稱加密:

即通訊的雙⽅都使⽤同⼀個祕鑰進⾏加解密,對稱加密雖然很簡單效能也好,但是⽆法解決⾸次把祕鑰發給對⽅的問題,很容易被⿊客攔截祕鑰。

非對稱加密:

對稱加密雖然安全性更⾼,但是帶來的問題就是速度很慢,影響效能。

  • 私鑰 + 公鑰= 金鑰對
  • 即⽤私鑰加密的資料,只有對應的公鑰才能解密,⽤公鑰加密的資料,只有對應的私鑰才能解密
  • 因為通訊雙方的手裡都有一套自己的金鑰對,通訊之前雙方會先把自己的公鑰都先發給對方
  • 然後對方再拿著這個公鑰來加密資料響應給對方,等到到了對方那裡,對方再用自己的私鑰進行解密

TLS/SSL的工作原理

TLS/SSL概述

即安全傳輸層協定

TLS/SSL的工作方式就是使用者端使用非對稱加密與伺服器進行通訊,實現身份的驗證並協商對稱加密使用的祕鑰。對稱加密演演算法採用協商祕鑰對資訊以及資訊摘要進行加密通訊,不同節點之間採用的對稱祕鑰不同,從而保證資訊只能通訊雙方獲取。

TLS/SSL全稱安全傳輸層協定(Transport Layer Security), 是介於TCP和HTTP之間的一層安全協定,不影響原有的TCP協定和HTTP協定,所以使用HTTPS基本上不需要對HTTP頁面進行太多的改造。TLS/SSL的功能實現主要依賴三類基本演演算法。

TLS/SSL功能實現

雜湊函數hash:基於雜湊函數驗證資訊的完整性
對稱加密:對稱加密演演算法採用協商的祕鑰對資料加密
非對稱加密:非對稱加密實現身份認證和祕鑰協商

數位憑證

數位憑證產生的原因

現在的方法也不一定是安全的,因為沒有辦法確定得到的公鑰就一定是安全的公鑰。可能存在一箇中間人,擷取了對方發給我們的公鑰,然後將他自己的公鑰傳送給我們,當我們使用他的公鑰加密後傳送的資訊,就可以被他用自己的私鑰解密。然後他偽裝成我們以同樣的方法向對方傳送資訊,這樣我們的資訊就被竊取了,然而自己還不知道。為了解決這樣的問題,可以使用數位憑證。

數位憑證概念及工作原理

首先使用一種 Hash 演演算法來對公鑰和其他資訊進行加密,生成一個資訊摘要,然後讓有公信力的認證中心(簡稱 CA )用它的私鑰對訊息摘要加密,形成簽名。最後將原始的資訊和簽名合在一起,稱為數位憑證。當接收方收到數位憑證的時候,先根據原始資訊使用同樣的 Hash 演演算法生成一個摘要,然後使用公證加工的公鑰來對數位憑證中的摘要進行解密,最後將解密的摘要和生成的摘要進行對比,就能發現得到的資訊是否被更改了。這個方法最要的是認證中心的可靠性,一般瀏覽器裡會內建一些頂層的認證中心的證書,相當於我們自動信任了他們,只有這樣才能保證資料的安全。要進行對比,就能發現得到的資訊是否被更改了。

 


IT145.com E-mail:sddin#qq.com