目錄
- HTTPS協議概念
- HTTPS通信(握手)過程
- HTTPS的優缺點
- 優點:
- 缺點:
- HTTPS如何保證安全
- 對稱加密:
- 非對稱加密:
- TLS/SSL的工作原理
- TLS/SSL概述
- TLS/SSL功能實現
- 數字證書
- 數字證書產生的原因
- 數字證書概念及工作原理
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 算法生成一個摘要,然后使用公證加工的公鑰來對數字證書中的摘要進行解密,最后將解密的摘要和生成的摘要進行對比,就能發現得到的信息是否被更改了。這個方法最要的是認證中心的可靠性,一般瀏覽器里會內置一些頂層的認證中心的證書,相當于我們自動信任了他們,只有這樣才能保證數據的安全。要進行對比,就能發現得到的信息是否被更改了。