
技術(shù)出現(xiàn)的背景
因?yàn)槠毡槭褂玫膆ttp有以下缺點(diǎn):
- 通訊使用明文(不加密),內(nèi)容可能遭到竊聽。
- 不驗(yàn)證通訊方身份,因此可能遭到偽裝。
- 無法驗(yàn)證報(bào)文的完整性,所以有可能招到篡改。
為了解決以上問題,需要在http的基礎(chǔ)上加上加密處理和認(rèn)證等機(jī)制而出現(xiàn)了HTTPS。
什么是HTTPS
https是身披SSL外殼的HTTP,在通訊過程中先用SSL協(xié)議,再用TCP/IP協(xié)議。
http + 加密 + 認(rèn)證 + 完整性保護(hù) = https
那什么是SSL協(xié)議呢?在講解SSL協(xié)議之前,先來了解加密方法。SSL采用的是一種叫做公開加密的方法。
加密
-
(對稱加密)共享加密:加密和解密都是用同一個(gè)密鑰。
共享加密 - (非對稱加密)使用兩把鑰匙的公開密鑰加密
公開秘鑰加密使用一對非對稱的密鑰,一把私鑰密鑰,一把公開密鑰。
使用方式:發(fā)送密文的一方使用對方的公開密鑰進(jìn)行加密處理, 對方收到被加密的信息后, 再使用自己的私有密鑰進(jìn)行解密。

-
https采用混合加密機(jī)制
即使用共享加密(對稱加密)和公開加密(非對稱加密)這兩種機(jī)制并用。因?yàn)楣_加密與共享加密相比,處理速度較慢。
混合加密
認(rèn)證
-
證明公開密鑰是正確性的證書
因?yàn)楣_密鑰加密還存在一些問題,無法驗(yàn)證公開密鑰本身是貨真價(jià)實(shí)的公開密鑰。
為了解決這個(gè)問題,可以使用由數(shù)組證書機(jī)構(gòu)(CA)和其相關(guān)機(jī)構(gòu)頒發(fā)的公開密鑰證書。
1.第三方機(jī)構(gòu)會對公開密鑰進(jìn)行數(shù)字簽名,并將這個(gè)已簽名的公開密鑰放入到公鑰證書(可以叫數(shù)字證書或證書)中綁定在一起。
2.服務(wù)器會將這份公鑰證書發(fā)送到客戶端。
3.客戶端對公鑰證書進(jìn)行校驗(yàn)。
校驗(yàn)通過,客戶端就會明白兩件事:1.認(rèn)證服務(wù)器的公開密鑰是真實(shí)有效的數(shù)字證書認(rèn)證機(jī)構(gòu)。2.服務(wù)器的公開密鑰是值得信賴的。
認(rèn)證
HTTPS的整個(gè)通信過程
屏幕快照 2018-10-08 上午11.51.59.png



