秘鑰的產(chǎn)生過程
非對稱加密
雙方都有自己的私鑰 公鑰,雙方都收到了對方 用(私+公)生成的秘鑰,再用 對方的(私+公)秘鑰+自己的私鑰=新的秘鑰 ,再用新的秘鑰加密數(shù)據(jù)發(fā)送給對方
用兩個(gè)秘鑰來加密和解密,公鑰是所有人都知道的,私鑰只有持有方才有的秘鑰。
非對稱加密也叫做公鑰加密
服務(wù)器上有成對的私鑰/公鑰,公鑰給到客戶端,客戶端用公鑰加密數(shù)據(jù),只有服務(wù)器端的私鑰才能解密。
TLS對稱和非對稱加密都有用到。
TCP三次握手
TLS握手過程
1、Client Hello(客戶端發(fā)給服務(wù)器)
加密套件:16個(gè)不同的加密組合
TCP三次握手后 ,客戶端發(fā)送了一個(gè)Clinet Hello 給服務(wù)器告訴服務(wù)器我支持那些加密套件,然后生成一個(gè)隨機(jī)數(shù)(1)發(fā)送給服務(wù)器 。
2、Server Hello(服務(wù)器發(fā)送給客戶端)
服務(wù)器的 Server Hello 響應(yīng)報(bào)文里面會告訴客戶端,服務(wù)端支持的TLS版本及選擇的加密套件,并且服務(wù)器生成一個(gè)隨機(jī)數(shù)(2)發(fā)送給客戶端。隨機(jī)數(shù)的作用?
3、Certificate(服務(wù)器發(fā)送給客戶端)
服務(wù)器再發(fā)出一個(gè)響應(yīng)來出示自己的證書,這樣瀏覽器就可以對照自己的證書信任列表來確認(rèn)這個(gè)服務(wù)器是否可信。
4、Server Key Exchange(服務(wù)器端發(fā)送)
服務(wù)器會把公鑰發(fā)送給客戶端
網(wǎng)銀 服務(wù)器需要客戶端的證書,這一步會發(fā)出請求。
5、Server Hello Done(服務(wù)器發(fā)送給客戶端)
6、Client Key Exchange(客戶端發(fā)出)
這一步是個(gè)重點(diǎn)也是難點(diǎn),客戶端會生成第三個(gè)隨機(jī)數(shù)(3) 預(yù)主秘鑰第三個(gè)隨機(jī)數(shù)會用到剛剛收到的公鑰進(jìn)行加密,并把加密后的隨機(jī)數(shù)發(fā)給服務(wù)器。就是Pubkey:顯示的隨機(jī)數(shù)
Change Cipher Spec
客戶端告訴服務(wù)器以后就用商議好的秘鑰來進(jìn)行加密。
Encrypted Handshake Message
表示TLS協(xié)商已經(jīng)滅有問題了,可以開始加密了。
7、Encrypted Handshake Message(服務(wù)器端發(fā)出)
這里表示TLS的握手已經(jīng)成功了,可以給數(shù)據(jù)加密進(jìn)行交換了。
TLS握手過程圖
先用非對稱加密生成會話密鑰,會話密鑰產(chǎn)生后使用對稱加密來加密數(shù)據(jù)后傳送(減少資源的消耗)。
對稱加密 非對稱加密 CA中心
非對稱加密HTTPS(SSL2.0)
非對稱加解密速率慢、效率低
非對稱、對稱混合加密的方式
這樣也存在問題
https CA證書(解決中間人私發(fā)公鑰、偽裝身份問題)
SSL證書