https的加密過(guò)程
明文、密文壶硅、密鑰威兜、對(duì)稱加密(私鑰)和非對(duì)稱加密(一對(duì),公鑰或私鑰)
- https握手過(guò)程
1庐椒、首先服務(wù)端有一對(duì)密鑰(公鑰和私鑰用于非對(duì)稱加密)椒舵,客戶端發(fā)起經(jīng)過(guò)443端口發(fā)起https請(qǐng)求
2、服務(wù)端向客戶端發(fā)送公鑰约谈,客戶端接受到公鑰后會(huì)鑒定是否是合法的公鑰笔宿,合法后生成一個(gè)隨機(jī)的客戶端密鑰(用于對(duì)稱加密),將該密鑰通過(guò)服務(wù)端給的公鑰進(jìn)行加密后發(fā)給服務(wù)端
3棱诱、服務(wù)端用自己的私鑰進(jìn)行解密措伐,得到用于對(duì)稱加密的客戶端密鑰
這樣既保護(hù)了密鑰,又可以用對(duì)稱加密算法來(lái)獲取更快的加密解密速度军俊。
TSL層內(nèi)置于應(yīng)用層和TCP層之間
1、1.2版本是通過(guò)1.5個(gè)RTT進(jìn)行連接捧存,通過(guò)3個(gè)隨機(jī)數(shù)和證書建立安全連接
2粪躬、1.3版本是通過(guò)DH算法,通過(guò)1個(gè)RTT進(jìn)行安全連接昔穴,是2個(gè)隨機(jī)數(shù)镰官,結(jié)合初始的共有兩個(gè)數(shù)計(jì)算出私鑰
驗(yàn)證公鑰合法
https://blog.csdn.net/zysgdhf4253/article/details/80577574
鑒定合法 其中第二步,客戶端需要通過(guò)證書來(lái)鑒定服務(wù)端的公鑰是否合法吗货,因?yàn)榉?wù)端的公鑰可能是偽造的(公鑰加密 私鑰解密泳唠; 私鑰加簽 公鑰驗(yàn)簽)。
1宙搬、頒發(fā)證書(CA)的機(jī)構(gòu)默認(rèn)是可靠的笨腥,只有那么少數(shù)幾家,可以理解為他們是根證書勇垛,而根證書以及他們的公鑰會(huì)被內(nèi)置到操作系統(tǒng)脖母,所以每個(gè)人的電腦上都有根證書,而下面還有樹形結(jié)構(gòu)的其他被授權(quán)的證書機(jī)構(gòu)闲孤,但是根都是要從這幾家進(jìn)行頒發(fā)的
2谆级、當(dāng)你的作為一個(gè)服務(wù)端需要一個(gè)證書,那么就把你的公鑰和host地址發(fā)送到上級(jí)的CA機(jī)構(gòu),這里假設(shè)為一級(jí)機(jī)構(gòu)肥照,它會(huì)將你的信息添加到自己的證書上脚仔,并用自己的私鑰進(jìn)行簽名,變成一個(gè)新的證書發(fā)送給你舆绎,而一級(jí)機(jī)構(gòu)的證書是由根CA機(jī)構(gòu)這樣頒發(fā)的(它的信息被根CA用私鑰進(jìn)行了簽名)鲤脏。
3、服務(wù)端發(fā)送公鑰給客戶端的時(shí)候會(huì)攜帶證書亿蒸,客戶端可以在證書中找到根CA機(jī)構(gòu)凑兰,并在電腦的操作系統(tǒng)中找到根CA是公鑰,對(duì)證書驗(yàn)簽边锁,證明一級(jí)機(jī)構(gòu)的證書是由根CA證書頒發(fā)的姑食,再用一級(jí)機(jī)構(gòu)的證書的公鑰給服務(wù)器的證書驗(yàn)簽,證明服務(wù)器的證書是由一級(jí)機(jī)構(gòu)頒發(fā)的茅坛,也就證明了服務(wù)端的證書是可靠的音半。
注意:
- 證書可以自簽名(自己做CA),但是不受信任贡蓖,因?yàn)闉g覽器并沒(méi)有內(nèi)置你的證書公鑰
- 驗(yàn)證過(guò)程可能會(huì)出現(xiàn) 證書的盜用的或證書是不受信任的兩種警告