Secure Sockets Layer 安全套接層
不使用SSL/TLS,信息會(huì)以明文傳播,帶來了三個(gè)風(fēng)險(xiǎn)。
1、竊聽風(fēng)險(xiǎn)
2、篡改風(fēng)險(xiǎn)
3、冒充風(fēng)險(xiǎn)
SSL/TLS就是為了解決這三個(gè)問題,希望達(dá)到
所有信息都是加密傳播
具有檢驗(yàn)機(jī)制,一旦被篡改,通信雙方會(huì)被發(fā)現(xiàn)
配備身份證書,防止身份被冒充
目前使用的主流是TLS 1.0,接下來是SSL 3.0
基本運(yùn)行過程
基本思路:采用公鑰加密法,客戶端先向服務(wù)器端索要公鑰,然后公鑰加密信息,服務(wù)器收到密文后,用自己的私鑰解密。
1、如何保證公鑰不被篡改
將公鑰放在數(shù)字證書中,只要證書是可信的,公鑰就是可信的。
2、公鑰加密計(jì)算量太大,如何減少耗用時(shí)間?
每一次session,客戶端和服務(wù)端都生成一個(gè)對(duì)話秘鑰(session key),用它來加密信息。由于對(duì)話秘鑰是對(duì)稱加密的,所以運(yùn)算速度非??臁6?wù)器公鑰只用于加密“對(duì)話秘鑰本身”,這樣就減少了加密運(yùn)算的消耗時(shí)間。
(個(gè)人感覺非常巧妙。。。)
所以SSL/TLS的基本運(yùn)行過程是這樣的:
1、客戶端向服務(wù)端索要并驗(yàn)證公鑰。
2、雙方協(xié)商生成“對(duì)話秘鑰” session key
3、雙方采用session key進(jìn)行加密通信。
前兩步又稱為握手階段
過程比較復(fù)雜,包括SSL版本確認(rèn),隨機(jī)數(shù)、支持的加密方法、包含公鑰的數(shù)字證書等等