Https的理解
Https的理解
http 協議的缺點
-
通訊使用明文,內容可能會被竊聽
- TCP/IP是可能被竊聽的網路。
不驗證對方的身份,隱藏有可能遭遇偽裝
無法驗證報文的完整性,所以有可能已經被修改
通訊上的加密
- 一種方式就是通訊加密。HTTP協議中沒有加密機制。但是可以通過和SSL(Secure Socket Layer)安全套接層或者TLS(安全傳輸層協議)的組合使用,加密HTTP的通訊內容。 用SSL建立安全通訊線路後,就可以在這條線路上進行HTTP通訊了。與SSL組合使用的HTTP被稱作HTTPS。 就是先在伺服器和客戶端之間建立安全的通訊線路之後開始通訊。
- 對內容進行加密。對報文主題的內容進行加密。為了做到有效的內容加密,前提是要求客戶端和服務端同事具備加密和解密機制。改方式不同於SSL和TLS將整個通訊線路加密處理。所以內容仍有被篡改的風險。
不驗證通訊方身份就可能遭遇到偽裝。任何人都可以發起請求。不確認對方的身份,因此存在各種隱患
- 無法確定請求傳送至目標的Web伺服器是否是真實意圖的Web伺服器,可能是偽裝的Web伺服器
- 無法確定相應返回的客戶端是否是按照真實意圖接收相應的那個客戶端。有可能是偽裝的客戶端。
- 無法確定正在通訊的對方是否具備訪問許可權。因為某些Web伺服器上儲存著某些重要的資訊。只想傳送給某些使用者通訊的許可權
- 無意義的請求也會照單全收,無法阻止海量請求下的DoS攻擊
- 無法判斷請求出自何手
無法驗證報文的完整性,可能遭到篡改
由於HTTP協議無法證明通訊的報文完整性,因此請求和相應發出之後知道對方接收的這段時間,即使請求或者響應遭到篡改,我們也無法獲知。
Http+加密(防止內容被竊聽)+ 認證(防止偽裝)+完整性保護(防止被中間人篡改)
Https並非是應用層的一種新協議。只是Http通訊介面部分用SSL(Secure Socket Layer)和TLS(Transport Layer Security)協議替代而已。通常Http直接和TCP通訊。當使用SSL時,變成先和SSL通訊,再有SSL和TCP通訊。所謂HTTPS ,無非是身披SSL協議外殼的HTTP,採用了SSL之後,HTTP就擁有了HTTPS的加密、證書、完整性保護這些功能。SSL是獨立於HTTP的協議,所以不光HTTP協議,其他執行在應用層的SMTP和Telnet等協議均可配合SSL協議使用。可以說SSL是世界上應用最廣泛的網路安全語言。
共享金鑰加密的困境。加密和解密同用一個金鑰叫做共享金鑰加密。也稱為對稱金鑰加密。
相互交換金鑰的公開金鑰加密技術。公開金鑰加密方式很好解決了共享金鑰的困難。使用公開金鑰加密的方式,傳送密文的一方使用對方的公開金鑰進行加密,對方收到加密資訊之後,再使用自己的私有金鑰進行解密。利用這種方式不需要來傳送來解密的私有金鑰,也不用擔心金鑰被攻擊者竊聽而盜走。
SSL採用一種公開金鑰加密的加密處理方式。近代加密方法中的加密演算法是公開的。而金鑰是保密的。通過這種方法可以保持加密方法的安全性。
使用兩把金鑰的公開金鑰加密
公開金鑰加密的方式很好解決了共享金鑰加密的困境。通過公開金鑰加密。通過私有金鑰解密。HTTPS採用了共享金鑰加密和公開金鑰加密兩者共用的混合加密機制。如果金鑰能夠安全交換,就有可能實現共享金鑰加密的手段。
數字證書下發的完整過程。
- 伺服器把自己的公開金鑰登入到數字證書認證機構。
- 數字證書認證機構驗證申請者身份後,會對申請的公開金鑰做數字簽名,然後分配這個已簽名的公開金鑰,並將公開金鑰放入到公鑰證書繫結子一起。
- 服務端把公鑰傳送給客戶端。客戶端拿到服務端傳送過來的公鑰證書後,使用數字證書驗證機構公開金鑰,向數字認證結構驗證公鑰證書上的數字簽名,以保證服務端公開金鑰的真實性。
- 使用公開金鑰對報文加密後傳送
- 伺服器對私有金鑰進行解密。
SSL速度慢嗎
由於HTTPS還需要做伺服器、客戶端雙方加密及解密處理。因此會消耗較多的CPU和記憶體等硬體資源。 和HTTP通訊部分相比,SSL通訊部分消耗網路資源。而SSL通訊部分。又因為要對通訊進行處理,所以時間延長了。
為什麼不用HTTPS
- 因為和純文字相比,加密通訊會消耗更多的CPU及記憶體資源,如果每次請求都要進行加密。會消耗更多的資源。
- 成本考慮。 申請攜帶公鑰的加密證書需要收費
相關文章
- [安全] HTTPS的理解HTTP
- https協議的理解HTTP協議
- 理解 HTTPS 的工作原理HTTP
- HTTPS原理解析HTTP
- Android Https 理解AndroidHTTP
- 理解 HTTPS 協議HTTP協議
- 帶你通俗理解httpsHTTP
- 分分鐘讓你理解HTTPSHTTP
- 深入理解HTTPS工作原理HTTP
- 深入理解HTTPS協議HTTP協議
- 理解https中的安全及其實現原理HTTP
- 介面測試之深入理解HTTPSHTTP
- 也許,這樣理解HTTPS更容易HTTP
- 帶你從零到一理解 HTTPSHTTP
- 一個故事讓你徹底理解 HttpsHTTP
- 深入理解Https如何保證通訊安全HTTP
- Https原理解析及詳細推演過程HTTP
- 深入理解 HTTPS 原理、過程與實踐HTTP
- 深入理解http1.x、http 2和httpsHTTP
- 計算機網路——深入理解HTTP以及HTTPs計算機網路HTTP
- 深入理解https進行SSL單向認證的全過程HTTP
- 一篇漫畫故事帶你理解透HTTPS(下)HTTP
- https的原理HTTP
- HTTPS 的故事HTTP
- 一分鐘理解HTTPS到底解決了什麼問題HTTP
- 用 HTTPS 安全嗎?HTTPS 的原理是啥?HTTP
- 自動的HTTPS伺服器:HTTPS-PORTALHTTP伺服器
- https如何工作的HTTP
- Https的前世今生HTTP
- 支援https請求以及https請求的抓包HTTP
- 大型網站的HTTPS實踐(三)——HTTPS對效能的影響網站HTTP
- 大型網站的 HTTPS 實踐(二):HTTPS 對效能的影響網站HTTP
- 大型網站的 HTTPS 實踐(二)——HTTPS 對效能的影響網站HTTP
- 什麼是HTTPS證書?HTTP與HTTPS的區別HTTP
- https的那些事兒HTTP
- 小白眼中的https?HTTP
- HTTPS代理的工作原理HTTP
- httpsHTTP