http(超文字傳輸協議):http協議被用於在web瀏覽器和**伺服器之間傳遞資訊,http協議以明文方式傳送內容,不提供任何方式的資料加密,如果攻擊者擷取了web瀏覽器和**伺服器之間的傳輸報文,就可以直接讀懂其中的資訊,因此,http協議不適合傳輸一些敏感資訊,比如:信用卡號、密碼等支付資訊。
https(安全套接字層超文字傳輸協議(http+ssl)):為了解決http協議的這一缺陷,需要使用另一種協議:安全套接字層超文字傳輸協議https,為了資料傳輸的安全,https在http的基礎上加入了ssl協議,ssl依靠證書來驗證伺服器的身份,並為瀏覽器和伺服器之間的通訊加密。
一、http和https的基本概念
http:是網際網路上應用最為廣泛的一種網路協議,是乙個客戶端和伺服器端請求和應答的標準(tcp),用於從www伺服器傳輸超文字到本地瀏覽器的傳輸協議,它可以使瀏覽器更加高效,使網路傳輸減少。
https:是以安全為目標的http通道,簡單講是http的安全版,即http下加入ssl層,https的安全基礎是ssl,因此加密的詳細內容就需要ssl。
二、http與https有什麼區別?
http協議傳輸的資料都是未加密的,也就是明文的,因此使用http協議傳輸隱私資訊非常不安全,為了保證這些隱私資料能加密傳輸,於是網景公司設計了ssl(secure sockets layer)協議用於對http協議傳輸的資料進行加密,從而就誕生了https。簡單來說,https協議是由ssl+http協議構建的可進行加密傳輸、身份認證的網路協議,要比http協議安全。
https和http的區別主要如下:
1、https協議需要到ca申請證書,一般免費證書較少,因而需要一定費用。
2、http是超文字傳輸協議,資訊是明文傳輸,https則是具有安全性的ssl加密傳輸協議。
3、http和https使用的是完全不同的連線方式,用的埠也不一樣,前者是80,後者是443。
4、http的連線很簡單,是無狀態的;https協議是由ssl+http協議構建的可進行加密傳輸、身份認證的網路協議,比http協議安全。
三、https的工作原理
我們都知道https能夠加密資訊,以免敏感資訊被第三方獲取,所以很多銀行**或電子郵箱等等安全級別較高的服務都會採用https協議。
客戶端在使用https方式與web伺服器通訊時有以下幾個步驟,如圖所示。
(1)客戶使用https的url訪問web伺服器,要求與web伺服器建立ssl連線。
(2)web伺服器收到客戶端請求後,會將**的證書資訊(證書中包含公鑰)傳送乙份給客戶端。
(3)客戶端的瀏覽器與web伺服器開始協商ssl連線的安全等級,也就是資訊加密的等級。
(4)客戶端的瀏覽器根據雙方同意的安全等級,建立會話金鑰,然後利用**的公鑰將會話金鑰加密,並傳送給**。
(5)web伺服器利用自己的私鑰解密出會話金鑰。
(6)web伺服器利用會話金鑰加密與客戶端之間的通訊。
對稱金鑰加密:又稱私鑰加密,即資訊的傳送方和接收方用乙個金鑰去加密和解密資料。它的最大優勢是加/解密速度快,適合於對大資料量進行加密;
非對稱金鑰加密系統:又稱公鑰金鑰加密,即資訊的傳送方和接收方用不同的金鑰去加密和解密資料;非對稱加密為資料的加密與解密提供了乙個非常安全的方法,它使用了一對金鑰,公鑰(public key)和私鑰(private key)。私鑰只能由一方安全保管,不能外洩,而公鑰則可以發給任何請求它的人。
四、https的優點
儘管https並非絕對安全,掌握根證書的機構、掌握加密演算法的組織同樣可以進行中間人形式的攻擊,但https仍是現行架構下最安全的解決方案,主要有以下幾個好處:
(1)使用https協議可認證使用者和伺服器,確保資料傳送到正確的客戶機和伺服器;
(2)https協議是由ssl+http協議構建的可進行加密傳輸、身份認證的網路協議,要比http協議安全,可防止資料在傳輸過程中不被竊取、改變,確保資料的完整性。
(3)https是現行架構下最安全的解決方案,雖然不是絕對安全,但它大幅增加了中間人攻擊的成本。
(4)谷歌曾在2023年8月份調整搜尋引擎演算法,並稱「比起同等http**,採用https加密的**在搜尋結果中的排名將會更高」。
五、https的缺點
雖然說https有很大的優勢,但其相對來說,還是存在不足之處的:
(1)https協議握手階段比較費時,會使頁面的載入時間延長近50%,增加10%到20%的耗電;
(2)https連線快取不如http高效,會增加資料開銷和功耗,甚至已有的安全措施也會因此而受到影響;
(3)ssl證書需要錢,功能越強大的證書費用越高,個人**、小**沒有必要一般不會用。
(4)ssl證書通常需要繫結ip,不能在同一ip上繫結多個網域名稱,ipv4資源不可能支撐這個消耗。
(5)https協議的加密範圍也比較有限,在黑客攻擊、拒絕服務攻擊、伺服器劫持等方面幾乎起不到什麼作用。最關鍵的,ssl證書的信用鏈體系並不安全,特別是在某些國家可以控制ca根證書的情況下,中間人攻擊一樣可行。
六、http切換到https
如果需要將**從http切換到https到底該如何實現呢?
btw,這裡雖然將http切換為了https,還是建議保留http。所以我們在切換的時候可以做http和https的相容,具體實現方式是,去掉頁面鏈結中的http頭部,這樣可以自動匹配http頭和https頭。例如:將改為然後當使用者從http的入口進入訪問頁面時,頁面就是http,如果使用者是從https的入口進入訪問頁面,頁面就是https的。
**:
http 與 https 的區別
https secure hypertext transfer protocol 安全超文字傳輸協議 它是乙個安全通訊通道,它基於http開發,用於在客戶計算機和伺服器之間交換資訊。它使用安全套接字層 ssl 進行資訊交換,簡單來說它是http的安全版。它是由netscape開發並內置於其瀏覽器中,...
HTTPS與HTTP的區別
最近學習網路相關的知識,看到https和http,兩個有區別,於是在網上找了相關的資料,放在自己的部落格,作為學習筆記吧。ssl介紹 ssl secure socket layer 為netscape所研發,用以保障在internet上資料傳輸之安全,利用 資料加密 encryption 技術,可確...
http與https的區別
在url前加https 字首表明是用ssl加密的。你的電腦與伺服器之間收發的資訊傳輸將更加安全。web伺服器啟用ssl需要獲得乙個伺服器證書並將該證書與要使用ssl的伺服器繫結。http和https使用的是完全不同的連線方式,用的埠也不一樣,前者是80,後者是443 https協議是由ssl htt...