1.基礎(chǔ)知識
SSL:一般情況下卿闹,網(wǎng)站使用的都是明文方式傳輸數(shù)據(jù)阱高,但是在涉及到一些隱私信息時(如銀行交易)鹦付,這個時候網(wǎng)站就會跳轉(zhuǎn)到 SSL昆禽,SSl的功能就是提供加密數(shù)據(jù)蝗蛙。這樣的話,TCP/IP協(xié)議只要做好的自己的事情醉鳖,數(shù)據(jù)加密就全權(quán)委托給SSL協(xié)議完成
TLS:TLS是對SSL的擴(kuò)展和優(yōu)化捡硅,他可以提供數(shù)據(jù)安全的同時,確保數(shù)據(jù)的完整性
HTTPS:超文本傳輸安全協(xié)議盗棵。就是http+ssl/tls,可以理解為安全版http
對稱加密:對稱加密又叫做私鑰加密壮韭,即信息的發(fā)送方和接收方使用同一個密鑰去加密和解密數(shù)據(jù)
非對稱加密:使用一對密鑰,即公鑰和私鑰纹因,且二者成對出現(xiàn)喷屋。私鑰被自己保存,不能對外泄露瞭恰。公鑰指的是公共的密鑰屯曹,任何人都可以獲得該密鑰。用公鑰或私鑰中的任何一個進(jìn)行加密惊畏,用另一個進(jìn)行解密恶耽。
證書認(rèn)證:個人生成的公鑰和私鑰是不被信任的,只有經(jīng)過CA認(rèn)證后后才會被認(rèn)為是可信任的密鑰陕截。目前大多瀏覽器都內(nèi)置了國際知名CA的根證書中心驳棱,如果我們的密鑰被CA中心簽名過,那么就是合法的數(shù)字證書农曲。但其CA驗(yàn)證密鑰過程復(fù)雜社搅,所以很多人使用自簽名的數(shù)字證書
小結(jié):很明顯非對稱加密安全是很高的驻债,因?yàn)槟玫狡渲幸话谚€匙無法推算出另一把鑰匙,即使有人攔截了加密后的信息形葬,是不可能解密的合呐,甚至就是說加密者自己也無法解密,因?yàn)閯e人沒有密鑰笙以,而加密者自己也僅僅擁有公鑰淌实,非對稱加密使用的是公鑰加密和私鑰解密機(jī)制
2.圖解https傳輸過程
一步一步來:
1)客戶端發(fā)起https請求,連接到服務(wù)端的443端口
2)服務(wù)端采用的https有一套數(shù)字證書猖腕,這個證書可以自己配置拆祈,也可以像證書管理組織申請,證書的本質(zhì)是公鑰(發(fā)給任何人)和私鑰(腹服務(wù)端保留)
3)服務(wù)端將公鑰傳送證書傳遞給客戶端倘感,證書中包含了很多信息放坏,比如證書的頒發(fā)機(jī)構(gòu),過期時間老玛,網(wǎng)址淤年,公鑰等
4)客戶端解析證書,由客戶端的TLS完成蜡豹,首先會驗(yàn)證公鑰是否有效麸粮,比如頒發(fā)機(jī)構(gòu),過期時間等镜廉。如果有異常弄诲,就會彈出警告信息。(這個我們上網(wǎng)應(yīng)該遇到過桨吊,一般都是提示說該網(wǎng)站的證書不可信任威根,是否繼續(xù)啥的balabala,具體的記不清了)视乐。證書沒問題后會隨機(jī)生成隨機(jī)值(這個很重要洛搀,用于對稱加密),然后使用第三步中的證書對這個隨機(jī)值進(jìn)行非對稱加密
5)將證書非對稱加密后的隨機(jī)值傳到服務(wù)器
6)服務(wù)器使用私鑰對其進(jìn)行非對稱解密后佑淀,得到客戶端的隨機(jī)值留美,然后把內(nèi)容通過該隨機(jī)值進(jìn)行對稱加密
7)服務(wù)端將對稱加密后的信息發(fā)給客戶端
8)客戶端用之前的生成的隨機(jī)值來進(jìn)行對稱解密,獲取內(nèi)容明文
總結(jié):在傳輸過程中伸刃,發(fā)起了兩次請求谎砾,用到了對稱加密和非對稱加密