? ? ? ? 前言:隨著互聯網安全問題日益嚴重,HTTPS已成為保障數據傳輸安全的標準協議,通過加密技術和身份驗證,HTTPS有效防止數據竊取、篡改和中間人攻擊,確保通信雙方的安全和信任。
???這里是秋刀魚不做夢的BLOG
???想要了解更多內容可以訪問我的主頁秋刀魚不做夢-CSDN博客
在正式開始講解之前,先讓我們看一下本文大致的講解內容:
目錄
1.HTTPS的概念
2.加密機制介紹
? ? ? ? (1)引入對稱加密
? ? ? ? 【1】對稱加密的工作原理
? ? ? ? 【2】常見的對稱加密算法
? ? ? ? (2)引入非對稱加密
? ? ? ? 【1】非對稱加密的工作原理
? ? ? ? 【2】常見的非對稱加密算法
? ? ? ? (3)引入中間人攻擊防范
????????【1】中間人攻擊的工作原理
????????【2】HTTPS如何防止中間人攻擊
? ? ? ? (4)引入證書機制
????????【1】證書的工作原理
????????【2】證書的組成部分
3.HTTPS的工作原理
????????(1)客戶端發起請求
? ? ? ? (2)SSL/TLS握手過程
? ? ? ? (3)加密通信
4.HTTPS的優點
寫在前面
學習HTTPS需要先學習HTTP的內容------------------------------------------------------------------------------>網絡原理之HTTP(如果想知道網絡原理中有關HTTP的知識,那么只看這一篇就足夠了!)-CSDN博客
1.HTTPS的概念
? ? ? ? 在開始學習HTTPS的原理之前,先讓我們了解一下什么是HTTPS:
????????HTTPS(Hypertext Transfer Protocol Secure,超文本傳輸安全協議)就是HTTP的加密版本,其主要目的為確保客戶端和服務器之間傳輸的數據不被竊取或篡改,與傳統的HTTP協議不同,HTTPS通過使用SSL/TLS(就是一個有關安全加密的協議)為通信提供加密保護,保證數據的安全。
? ? ? ? ——所以,簡單來說HTTPS = HTTP +?SSL/TLS,可以認為是HTTP協議的plus版,它比HTTP更加的安全可靠。
2.加密機制介紹
????????在了解了HTTPS的基本概念之后,在讓我們看一下在HTTPS的通信中會涉及的加密機制,其中大致有四個,分別為:對稱加密、非對稱加密、中間人攻擊和數字證書。
? ? ? ? (1)引入對稱加密
基本概念:
? ? ? ? ——首先先讓我們學習一下對稱加密,對稱加密是HTTPS中用于加密和解密傳輸數據的核心加密方法,在對稱加密中,客戶端和服務器是使用相同的密鑰來加密和解密消息,這種加密方式的優勢在于加密和解密的過程非常高效,適合大量數據的加密處理。
????????但是,它也有其缺點,其主要缺點就是密鑰分發(即服務器將其密鑰發送給客戶端,客戶端用這個密鑰對數據進行加密)的問題:一旦密鑰被泄露,所有通過該密鑰加密的數據可能會被竊取。
? ? ? ? 【1】對稱加密的工作原理
????????對稱加密其實就是通過同一個 "密鑰" , 把明文加密成密文, 并且也能把密文解密成明文。雖然對稱加密效率很高,但是其存在密鑰分發的危險問題,所以通常HTTPS會通過非對稱加密(下文會進行解釋,讀者可以先了解一下),對稱加密的具體過程如下:
首先客戶端使用服務器發送過來的對稱密鑰對要加密的數據進行加密,然后發送給服務器(此時就可能會被中間的黑客所截獲數據)
當服務器接收到客戶端發送來的數據之后,只用相同的對稱密鑰對數據進行解密
之后對解密的信息進行響應,響應的數據也使用這個對稱密鑰加密之后發送給客戶端
? ? ? ? ——這樣我們就了解了對稱加密的工作原理了!!!,接下來讓我們看一下都有哪些常見的對稱加密算法:
? ? ? ? 【2】常見的對稱加密算法
AES(高級加密標準):目前最廣泛使用的對稱加密算法,提供強大的安全性,且由于其加密和解密速度較快,適用于大規模的數據傳輸。
DES(數據加密標準):雖然DES曾經是非常流行的對稱加密算法,但由于密鑰長度僅為56位,已經被認為不再足夠安全,現在已逐漸被AES取代。
????????對稱加密在加密數據時速度極快,能夠有效保障數據的機密性,但僅憑對稱加密無法解決密鑰交換的問題,因此在HTTPS中它與非對稱加密結合使用,形成了完整的安全通信方案。
? ? ? ? (2)引入非對稱加密
????????非對稱加密(又稱公鑰加密)是HTTPS安全協議中不可或缺的另一個重要組成部分,在非對稱加密中,使用一對密鑰來進行加密和解密——公鑰和私鑰,公鑰可以公開用于加密,而私鑰只能由接收方持有并用于解密。
? ? ? ? 【1】非對稱加密的工作原理
在HTTPS中,非對稱加密用于初始化加密通信過程中的密鑰交換,具體流程如下:
首先客戶端與服務器在建立連接時,首先會通過網絡給客戶端公鑰
然后,當客戶端接收到這個公鑰之后,就會用這個公鑰對對稱密鑰進行加密,然后將對稱密鑰傳輸給服務器
服務器接收到對稱密鑰之后,使用私鑰對加密的對稱密鑰進行解密,獲取對稱密鑰
在之后對稱加密通信階段,數據會被使用該對稱密鑰加密并發送,無論是客戶端發送的請求還是服務器返回的響應,都將通過這個對稱密鑰進行加密和解密
????????通過非對稱加密,客戶端和服務器能夠在不暴露密鑰的情況下安全地交換加密數據,這大大增強了通信過程的安全性。
? ? ? ? 【2】常見的非對稱加密算法
RSA:RSA是目前最廣泛使用的非對稱加密算法之一,基于大數分解的數學難題,RSA能夠確保數據的加密和解密過程極為安全。RSA通常用于密鑰交換和數字簽名。
ECC:ECC基于橢圓曲線的數學原理,相較于RSA,在較短的密鑰長度下能提供相同級別的安全性,且計算效率更高,適合移動設備等資源有限的環境。
????????非對稱加密解決了密鑰傳輸的安全性問題,但其計算復雜度相對較高,因此在HTTPS通信過程中,通常只在握手階段(傳輸對稱密鑰)使用非對稱加密,而在數據傳輸階段(使用對稱密鑰加密)切換到效率更高的對稱加密。
? ? ? ? (3)引入中間人攻擊防范
? ? ? ? 在了解完了對稱加密和非對稱加密之后,在讓我們了解一下中間人攻擊,其是指攻擊者通過攔截和篡改客戶端與服務器之間的通信來竊取或篡改數據,在沒有有效加密的情況下,中間人攻擊可以輕易地讀取和修改傳輸的信息,造成嚴重的安全隱患。
????????【1】中間人攻擊的工作原理
設服務器具有非對稱加密算法的公鑰S,私鑰S'
設中間人具有非對稱加密算法的公鑰M,私鑰M'
客戶端向服務器發起請求,服務器明文傳送公鑰S給客戶端
中間人劫持數據報文,提取公鑰S并保存好,然后將被劫持報文中的公鑰S替換成為自己的公鑰M, 并將偽造報文發給客戶端
客戶端收到報文,提取公鑰M(自己當然不知道公鑰被更換過了),自己形成對稱秘鑰X,用公鑰M加 密X,形成報文發送給服務器
中間人劫持后,直接用自己的私鑰M'進行解密,得到通信秘鑰X,再用曾經保存的服務端公鑰S加 密后,將報文推送給服務器
服務器拿到報文,用自己的私鑰S'解密,得到通信秘鑰X
雙方開始采用X進行對稱加密,進行通信。但是一切都在中間人的掌握中,劫持數據,進行竊聽甚 至修改,都是可以的
????????這樣我們就了解了中間人攻擊的流程了!!!(讀者可以在紙上進行繪圖理解)
????????【2】HTTPS如何防止中間人攻擊
數字證書與公鑰基礎設施:HTTPS依賴于數字證書來驗證服務器的身份,確保客戶端與真正的服務器建立連接,服務器的公鑰經過證書頒發機構(CA)的簽名,客戶端可以通過驗證證書的有效性來避免與偽造的服務器連接。
完整性校驗:SSL/TLS協議使用哈希函數和消息認證碼(MAC)對數據進行完整性校驗,確保數據在傳輸過程中沒有被篡改,如果數據被篡改,接收方會發現數據的哈希值不匹配,從而中斷連接。
????????通過這兩個機制,HTTPS有效地防止了中間人攻擊,確保了客戶端與服務器之間的通信是安全的,不會被攻擊者篡改或竊取。
? ? ? ? (4)引入證書機制
????????數字證書是HTTPS通信中非常重要的安全機制,證書的主要作用是為服務器提供身份驗證,并確保服務器的公鑰可以安全地傳遞給客戶端,從而為加密通信建立信任基礎。
????????【1】證書的工作原理
證書的作用:在客戶端與服務器建立連接之前,服務器會向客戶端發送其數字證書,客戶端通過驗證證書的有效性和合法性,來確認與服務器的通信是否安全,證書由受信任的CA簽發,CA的作用是對證書進行簽名,確保證書的合法性。
驗證證書:客戶端收到證書后,會檢查證書是否有效,證書是否過期,是否由受信任的CA簽發,以及證書中的域名是否與服務器的域名匹配,如果證書合法,客戶端會使用服務器的公鑰進行加密操作,啟動加密通信,如果不合法則終止通信。
????????
????????【2】證書的組成部分
公鑰:用于加密數據,是證書中最重要的部分,客戶端通過公鑰加密會話密鑰,而服務器使用私鑰解密。
證書主體:包含了證書所屬組織、域名、有效期等信息,表明服務器的身份。
證書簽名:由CA用私鑰對證書進行簽名,確保證書的合法性,如果證書被篡改,簽名驗證失敗,客戶端會拒絕建立連接。
3.HTTPS的工作原理
? ? ? ? 在了解了加密機制之后,在讓我們看一下HTTPS的工作原理,HTTPS的工作原理涉及到對稱加密、非對稱加密和數字證書的使用,具體過程如下:
????????(1)客戶端發起請求
????????用戶在瀏覽器中輸入HTTPS網址時,瀏覽器會向服務器發送請求,希望建立一個加密的連接,此時,客戶端與服務器之間的通信使用的是HTTP協議,但由于URL以https://
開頭,表明該連接將通過SSL/TLS進行加密。
? ? ? ? (2)SSL/TLS握手過程
為了建立加密連接,客戶端和服務器需要進行SSL/TLS握手,過程如下:
客戶端發送請求:客戶端向服務器發送一個“Hello”消息,告知服務器它支持的SSL/TLS版本、加密算法和隨機數等信息。
服務器回應:服務器接收到客戶端請求后,發送自己的SSL/TLS證書(包含公鑰等信息)和加密算法選擇。服務器的證書由受信任的證書頒發機構(CA)簽發,用于證明服務器的身份。
證書驗證:客戶端驗證服務器證書的有效性。如果證書有效且受信任(即證書由受信任的CA簽發),客戶端則接受服務器的公鑰。如果證書無效,客戶端會中斷連接。
對稱密鑰生成:客戶端使用服務器公鑰加密一個對稱密鑰(稱為預主密鑰),并將其發送給服務器,服務器使用私鑰解密預主密鑰,雙方計算出一個共享的對稱密鑰。
加密通信開始:在后續的數據交換中,客戶端和服務器使用此共享的對稱密鑰加密和解密通信內容。
? ? ? ? (3)加密通信
在數據傳輸過程中,HTTPS通過對稱加密和非對稱加密來保護數據:
非對稱加密:用于在初始階段交換對稱密鑰,在握手過程中,客戶端和服務器通過非對稱加密交換加密密鑰,這種加密方式使用一對公鑰和私鑰,公鑰用于加密,私鑰用于解密。
對稱加密:一旦雙方擁有共享的對稱密鑰,后續的數據傳輸將使用對稱加密算法進行加密。
? ? ? ? 通過上述的三個步驟,我們就大致的了解了HTTPS的工作流程了!!!
4.HTTPS的優點
? ? ? ? 那么最后,讓我們看一下為什么我們現在都在使用HTTPS而不是HTTP了呢?HTTPS有哪些優點呢?
? ? ? ? (1)數據加密: HTTPS通過加密傳輸數據,防止數據在傳輸過程中被竊取或篡改,確保機密性。
? ? ? ? (2)身份驗證: 使用數字證書驗證服務器的身份,防止偽造服務器和中間人攻擊,增強了通信的安全性。
? ? ? ? (3)數據完整性: 由于使用了加密算法和哈希校驗,HTTPS保證了數據在傳輸過程中的完整性,防止數據被篡改。
? ? ? ? (4)提高用戶信任: 現代瀏覽器通常會在地址欄顯示綠色鎖標志,告訴用戶該網站使用了HTTPS協議,從而提高用戶對網站的信任。
? ? ? ? (5)SEO優勢: 搜索引擎(如Google)將HTTPS作為排名因素之一,使用HTTPS的網站可能會在搜索結果中獲得更好的排名。
以上就是本篇文章全部內容~~