HTTPS協議工作原理

1. 爲什麼需要HTTPS?

1) 保護隱私(Privacy所有信息都是加密傳播,第三方無法竊聽數據。如果使用 HTTP 明文傳輸數據的話,很可能被第三方劫持數據,那麼所輸入的密碼或者其他個人資料都被暴露在他人面前,後果可想而知。

2) 數據完整性(Integraty):一旦第三方篡改了數據,接收方會知道數據經過了篡改,這樣便保證了數據在傳輸過程中不被篡改。

3) 身份認證(Identification):第三方不可能冒充身份參與通信,因爲服務器配備了由證書頒發機構(Certificate Authority,簡稱 CA)頒發的安全證書,可以證實服務器的身份信息,防止第三方冒充身份。.

2. 什麼是HTTPS?

HTTPS(HyperText Transfer Protocol Secure)是在HTTP上建立SSL/TLS加密層,並對傳輸數據進行加密,是HTTP協議的安全版。現在它被廣泛用於萬維網上安全敏感的通訊,例如某寶交易支付。

HTTPS = HTTP + SSL/TLS

HTTPS協議相比HTTP協議的優勢:

1) 數據隱私性:內容經過對稱加密,每個連接生成一個唯一的加密密鑰

2) 數據完整性:內容傳輸經過完整性校驗

3) 身份認證:第三方無法僞造服務端(客戶端)身份

3. SSL/TLS 的工作原理

加密算法有兩種:對稱加密、非對稱加密

1) 對稱加密:通信雙方使用相同的密鑰進行加密。特點是加密速度快,但是缺點是需要保護好密鑰,如果密鑰泄露的話,那麼加密就會被別人破解。常見的對稱加密有 AES,DES 算法。

2) 非對稱加密:它需要生成兩個密鑰:公鑰(Public Key)和私鑰(Private Key)。常見的非對稱算法有 RSA

HTTPS採用對稱加密和非對稱加密兩者並用的混合加密機制。

4. 解決報文可能遭篡改問題——數字簽名

網絡傳輸過程中需要經過很多中間節點,雖然數據無法被解密,但可能被篡改,那如何校驗數據的完整性呢?

數字簽名:

1) 能確定消息確實是由發送方簽名並發出來的,因爲別人假冒不了發送方的簽名。

2) 數字簽名能確定消息的完整性,證明數據是否未被篡改過。

5. HTTP 與 HTTPS 的區別

1) HTTPS比HTTP更加安全,對搜索引擎更友好,利於SEO,谷歌、百度優先索引HTTPS網頁;

2) HTTPS需要用到SSL證書,而HTTP不用;

3) HTTPS標準端口443,HTTP標準端口80;

4) HTTPS基於傳輸層,HTTP基於應用層;

5) HTTPS在瀏覽器顯示綠色安全鎖,HTTP沒有顯示;

6. 爲何不所有的網站都使用HTTP?

1) HTTPS實施有門檻,這個門檻在於需要權威CA頒發的SSL證書。從證書的選擇、購買到部署,傳統的模式下都會比較耗時耗力。

2) HTTPS普遍認爲性能消耗要大於HTTP,因爲與純文本通信相比,加密通信會消耗更多的CPU及內存資源。如果每次通信都加密,會消耗相當多的資源,平攤到一臺計算機上時,能夠處理的請求數量必定也會隨之減少。但事實並非如此,用戶可以通過性能優化、把證書部署在SLB或CDN,來解決此問題。

舉個實際的例子,“雙十一”期間,全站HTTPS的淘寶、天貓依然保證了網站和移動端的訪問、瀏覽、交易等操作的順暢、平滑。通過測試發現,經過優化後的許多頁面性能與HTTP持平甚至還有小幅提升,因此HTTPS經過優化之後其實並不慢。

3) HTTPS需要購買證書。要進行HTTPS通信,證書是必不可少的。而使用的證書必須向認證機構(CA)購買。

簡單的加密算法有:

BASE64 嚴格地說,屬於編碼格式,而非加密算法

MD5(Message Digest algorithm 5,信息摘要算法)

SHA(Secure Hash Algorithm,安全散列算法)

HMAC(Hash Message Authentication Code,散列消息鑑別碼)

7. 總結

相較於HTTP協議,HTTPS確保了報文的機密性以及完整性。HTTPS確保這些的依賴就是SSL/TSL協議,SSL/TSL安全協議搭配數字證書保證了報文在傳輸過程中的絕對安全。

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章