TCP三次握手;
TLS/SSL的連接;
HTTP的請(qǐng)求和響應(yīng);
前提介紹(證書(shū)校驗(yàn))
服務(wù)端傳遞一個(gè)證書(shū),客戶端是怎么來(lái)驗(yàn)證其中是沒(méi)有問(wèn)題的
1.證書(shū)大致包含了哪些數(shù)據(jù)?
證書(shū)的申請(qǐng)者,證書(shū)的頒發(fā)者,證書(shū)的有效期,證書(shū)的公鑰,證書(shū)的指紋,證書(shū)的指紋算法,證書(shū)的數(shù)字簽名
2.如何驗(yàn)證證書(shū)是否是完整的?
1.首先根據(jù)該證書(shū)的頒發(fā)者找到對(duì)應(yīng)的頒發(fā)者的公鑰對(duì)該證書(shū)的數(shù)字簽名進(jìn)行解密,然后得到一個(gè)證書(shū)的指紋和證書(shū)的指紋算法;
2根據(jù)證書(shū)的指紋算法對(duì)整個(gè)證書(shū)進(jìn)行加密得到指紋;
3對(duì)比兩個(gè)指紋,如果一致說(shuō)明證書(shū)是完整的;
3如何驗(yàn)證證書(shū)是否是被全部替換?
在請(qǐng)求網(wǎng)絡(luò)的時(shí)候,可以對(duì)比下請(qǐng)求的Url和證書(shū)的Url,如果不一致的話,說(shuō)明證書(shū)被全部替換,一致的話說(shuō)明是正確的證書(shū);
Tcp的三次握手之前的文檔已經(jīng)介紹了,現(xiàn)在來(lái)介紹下TLS/SSL的連接過(guò)程;
1.客戶端->服務(wù)端 (安全協(xié)議和版本(SSL和TSL), 客戶端支持的所有的加密套件列表,client Random);
2服務(wù)端->客戶端 (安全協(xié)議和版本(SSL和TSL),服務(wù)端選中的加密套件, server Random, 證書(shū), 秘鑰交換服務(wù)端的參數(shù))
客戶端會(huì)去驗(yàn)證該證書(shū)的有效性
3.客戶端->服務(wù)端 (秘鑰交換客戶端的參數(shù))
這個(gè)時(shí)候雙方都含有了四個(gè)數(shù)據(jù)(client Random, server Random , 秘鑰交換客戶端參數(shù)和服務(wù)端參數(shù));
根據(jù)后面兩個(gè)參數(shù)等到預(yù)主秘鑰(Pre-master secret);
最后三個(gè)參數(shù)生成用以加密會(huì)話的會(huì)話秘鑰;
4.客戶端->服務(wù)端 (告訴后臺(tái)去采用會(huì)話秘鑰去加密);
5.客戶端->服務(wù)端(使用會(huì)話秘鑰對(duì)之前的的全部報(bào)文進(jìn)行加密,然后傳遞到服務(wù)端)
6.服務(wù)端->客戶端(使用會(huì)話秘鑰加密解密,然后結(jié)束這段握手,進(jìn)行之后的htpp請(qǐng)求和響應(yīng))