文章詳情
HTTP協議和HTTPS協議的區別詳解
文章目錄
- HTTPS VS HTTP
- HTTPS=HTTP+加密+證書+完整性保護
- 加密
- 對稱加密
- 非對稱加密
- 混合加密
- 證書
- 完整性保護
- HTTPS并不能取代HTTP
- SSL是把雙刃劍
- HTTPS的遺憾之處
HTTPS VS HTTP
計算機網絡 (二) 應用層 :HTTP協議詳解
在之前的文章中介紹了HTTP協議,雖然從中了解了他優秀的一面,但是也能看到他許多的不足。
由于其本身通信使用明文,沒有進行加密,也沒有確認通信方的一種機制,所以在互聯網上近似于裸奔,很容易就會受到中間人攻擊,導致安全存在問題。
通信時數據并沒有進行加密,而是使用明文,很容易就會被竊聽
沒有驗證通信對象的機制,導致了可能會有人假扮客戶端進行通信
無法驗證報文的完整性,中途可能被人篡改,自己又無法確認
HTTP的主要缺點如下
- 通信使用明文,內容可能會被竊聽
- 不驗證通信方的身份,因此有可能遭遇偽裝
- 無法驗證報文的完整性,有可能遭到篡改
為了彌補上述缺點,HTTPS就誕生了,HTTPS并不是一個新的協議,而是身披SSL外殼的HTTP,通過引入加密,證書,完整性保護來保證了他的安全。
HTTPS=HTTP+加密+證書+完整性保護
加密
對稱加密
對稱密鑰加密也叫做共享密鑰加密,其實就是加密和解密采用了同一個密鑰
雙方在進行通信時,發送方會利用密鑰進行加密,再將密鑰一同發送給接收方,讓其使用這個密鑰進行解密。
這種方法看起來不錯,但是也存在問題,如果在發送的時候被攔截下來,密鑰就會泄露給中間人,此時中間人就可以通過密鑰來對之后的數據進行解密,此時也就失去了加密的意義
這時,就引入了非對稱加密
非對稱加密
非對稱加密又叫做公開密鑰加密,他使用一對非對稱的密鑰,一把叫做私有密鑰,一把叫做公有密鑰。故名思意,共有密鑰是公開的,任何人都可以獲得,而私有密鑰則不能讓任何人知道
當進行通信時,發送方使用對方的公有密鑰進行加密,而接收方接收時則使用自己的私有密鑰進行解密,這樣一來,用于解密的私鑰就完全掌握在接收者自己手里,中間人也無法從中竊取密鑰,安全也一定程度的得到了保障。
混合加密
但是,從上面的描述也可以看出來,由于非對稱加密的處理比起對稱加密來說較為復雜,所以如果在通信時一直使用非對稱加密,就會導致通信的效率大大的降低,所以HTTPS采用對稱加密和非對稱加密并用的混合加密機制
具體怎么做呢?
-
使用非對稱加密的方式來交換之后用來進行加密解密的對稱加密密鑰
(因為對稱加密的主要問題就是無法確保密鑰是否安全,而此時采用非對稱加密來傳輸密鑰,就能很好的規避這個問題) -
在確保之前交換安全的情況下,使用對稱加密密鑰來進行通信
(而非對稱加密的最大問題就在于其復雜的處理機制導致效率降低,所以在安全的情況下使用對稱加密就可以大大提高效率)
證書
雖然數據得到了加密,不至于明文裸奔,但是這時以及安全了嗎?
答案是否定的,我們還需要考慮到HTTP的第二個缺點,沒有驗證對象。
假設這樣一個情景,小明和小張進行通信,中間人在雙方第一次通信時就截獲了小明的公鑰,即使無法使用私鑰解密,但是他仍然想出了一個壞點子——偷天換日,此時他冒充小明,將自己生成的公鑰發送給小張。
此時小張誤以為他就是小明,所以使用中間人的公鑰進行加密,將對稱加密的密鑰發送了過去。
此時中間人就可以通過自己的私鑰來進行解密,于是就獲取了對稱加密的密鑰。之后他接著使壞——此時再偽裝成小張,將密鑰再一次加密后發送給小明,此時小明也認為他就是小張。
通過這種手法,中間人就能在雙方都不知情的情況下,掌握了雙方的對稱加密密鑰,輕松的截取了雙方的通信內容。
為了解決這個問題,HTTPS引入了數字證書這一機制。
服務器的運營人員會向數字證書認證機構來進行認證,在機構對其驗明身份之后,就會對服務器的公鑰做一個數字簽名,并且將公鑰放入公鑰證書后綁定在一起。
此時當客戶端接收到服務器發送的公鑰證書的時候,就會向證書認證機構來驗證數字簽名是否正確,來判斷該公鑰是否遭到替換,確保了公鑰的真實性。
此時即使中間人想仿造公鑰證書,但也因為無法通過機構的驗證而被識破。
此時,中間人就沒有使壞的空間了。
這就是HTTPS使用加密以及證書來確保安全的整個流程
完整性保護
在上面的流程中,應用層發送數據的時候會附加MAC報文摘要,MAC能夠查知報文是否遭受到篡改,從而讓保護報文的完整性。
HTTPS并不能取代HTTP
SSL是把雙刃劍
HTTPS也叫做披著SSL外殼的HTTP,在通信接口部分他使用了SSL和TLS來進行代替。
對于HTTP協議來說,他直接和TCP進行通信。
而HTTPS為了保證安全,使用了SSL來提供保障,通信時首先與SSL進行通信,再由SSL來與TCP進行通信,正是因為由SSL的存在,才使得HTTP具備了HTTPS的加密、證書、安全性保障這些功能。
但是成也蕭何,敗也蕭何,SSL為HTTPS保障安全的同時,也降低了他的效率
SSL主要慢在兩個方面
- 和HTTP相比,網絡負載可能會變慢2到100倍。由于HTTPS還需要額外進行SSL通信,整體上處理通信量不可避免的增加了。
- SSL為了確保安全,在客戶端和服務端都需要進行大量的加密和解密的運算處理,導致其比起HTTP來說會更多的消耗服務器和客戶端的硬件資源,導致負載增強。
HTTPS的遺憾之處
-
SSL的高度安全帶來的低效率以及高負載使得HTTPS并不會一直使用(或者干脆不用)
(對于高訪問量的Web網站來說,進行大量的加密解密出來帶來的負載十分龐大,并且對于非敏感信息(可公開信息)也沒有加密的必要,所以大多數網站并不會一直使用HTTPS,而是只在進行私密內容傳輸的時候才會使用,來確保資源的節約。) -
數字證書的高昂成本使得個人網站及非盈利網站望而卻步
(要進行HTTPS通信,數字證書是必不可少的,但是對于一些非盈利的網站以及個人網站來說,每年用來購買數字證書帶來的花銷并不是一個小數目,所以大多還是繼續使用HTTP
上一文章:黑客留下的網站后門能做什么?
下一文章:女子現神操作,使出社工技術找回24萬
相關推薦
- 09-09HTTP協議和HTTPS協議的區別詳解
- 08-01老程序員對新人的忠告,不要讓技術成為自己唯
- 08-31編程語言那么多,但java仍然是首選語言
- 09-24神奇的“硬盤”炸彈,你聽過么?
- 12-12如何繞過cdn獲取網站真實ip進行測試
- 08-13HTTP技術快速提升網頁的訪問速度
- 11-01蘋果用戶看見賬號登錄彈窗要小心,可能是釣魚
- 07-25產品經理需要學什么技術?本文告訴你!
- 05-16網頁上的內容無法復制,這幾招輕松秒殺
- 12-28一個瀏覽器的自述:我們如何防御黑客攻擊(下
- 07-282017上半年白帽黑客排行榜
- 02-08國內黑客多次ddos攻擊逃到境外,網警窮追不舍
- 05-22一個小技巧免費高速下載百度云文件
- 05-10女子現神操作,使出社工技術找回24萬