HTTP協(xié)議的弊端
1骡澈、通信使用明文锅纺,內(nèi)容可能被竊聽
2、不驗(yàn)證通信方的身份肋殴,可能遭到偽裝
3囤锉、無法證明報(bào)文的完整性坦弟,所以有可能內(nèi)容遭到篡改
HTTPS協(xié)議
為了解決上述的問題,推出了HTTPS協(xié)議官地。HTTP協(xié)議加上加密和認(rèn)證以及完整性保護(hù)之后就是HTTPS協(xié)議酿傍。
HTTPS不是應(yīng)用層的新協(xié)議,只是HTTP通信接口部分用了SSL和TLS協(xié)議來代替驱入。
通常赤炒,HTTP與TCP直接通信,HTTPS協(xié)議則先跟SSL協(xié)議通信亏较,再由SSL和TCP通信莺褒,簡言之 所謂HTTPS協(xié)議就是身披SSL外殼的HTTP協(xié)議罷了。
SSL介紹:
安全套接字(Secure Socket Layer雪情,SSL)協(xié)議是Web瀏覽器與Web服務(wù)器之間安全交換信息的協(xié)議遵岩,提供兩個(gè)基本的安全服務(wù):鑒別與保密。
SSL是Netscape于1994年開發(fā)的旺罢,后來成為了世界上最著名的web安全機(jī)制旷余,所有主要的瀏覽器都支持SSL協(xié)議
目前有三個(gè)版本:2、3扁达、3.1正卧,最常用的是第3版,是1995年發(fā)布的跪解。
SSL協(xié)議的三個(gè)特性
① 保密:在握手協(xié)議中定義了會(huì)話密鑰后炉旷,所有的消息都被加密。
② 鑒別:可選的客戶端認(rèn)證叉讥,和強(qiáng)制的服務(wù)器端認(rèn)證窘行。
③ 完整性:傳送的消息包括消息完整性檢查(使用MAC)。
對稱加密:加密和解密都用同一個(gè)密鑰的加密方式图仓,稱為共享密鑰加密方式罐盔,也稱對稱加密。
在網(wǎng)絡(luò)上轉(zhuǎn)發(fā)密鑰時(shí)救崔,如果通信被監(jiān)聽惶看,密鑰就可能會(huì)落入到攻擊者手中,這樣也失去加密的意義六孵。
非對稱加密:公鑰加密纬黎,私鑰解密。也稱公開密鑰加密劫窒。這種方式 處理速度要慢本今。
HTTPS采用混合加密的方式。
1、服務(wù)器將公鑰給客戶端冠息,自己保留私鑰
2挪凑、客戶端生成隨機(jī)數(shù),用公鑰進(jìn)行加密 傳給服務(wù)器逛艰。服務(wù)器用私鑰進(jìn)行解密岖赋,獲取隨機(jī)數(shù)(非對稱加密)
3、客戶端后續(xù)使用隨機(jī)數(shù)作為密鑰加密傳給服務(wù)器瓮孙,服務(wù)器用同樣的隨機(jī)數(shù)進(jìn)行解密(對稱加密)
這里有一個(gè)問題唐断,即客戶端怎么確保服務(wù)器給的公鑰是貨真價(jià)實(shí)的公鑰。如何證明公鑰就是預(yù)想的服務(wù)器所要發(fā)布的公鑰杭抠,會(huì)不會(huì)有攻擊者中途篡改了公鑰脸甘。
為了解決上述問題,可以使用由數(shù)字認(rèn)證機(jī)構(gòu)和其相關(guān)機(jī)構(gòu)頒發(fā)的公開密鑰證書偏灿。
業(yè)務(wù)流程:
1丹诀、首先服務(wù)器向數(shù)字認(rèn)證機(jī)構(gòu)提出公開密鑰的申請。
2翁垂、數(shù)字認(rèn)證機(jī)構(gòu)判別其身份后铆遭,用自己的私鑰對服務(wù)器的公開密鑰進(jìn)行簽名并頒發(fā)公鑰證書。
3沿猜、服務(wù)器將機(jī)構(gòu)頒發(fā)的公鑰證書發(fā)給客戶端枚荣。
4、接到證書的客戶端對證書上的簽名進(jìn)行驗(yàn)證啼肩。使用數(shù)字認(rèn)證機(jī)構(gòu)的公鑰(預(yù)先內(nèi)置在瀏覽器中)去驗(yàn)證公鑰證書上的簽名橄妆,一旦驗(yàn)證通過,便可確保公共密鑰是可以信賴的祈坠。