單向認證

單向認證過程
- 客戶端向服務端發(fā)送SSL協(xié)議版本號、加密算法種類、隨機數(shù)等信息。
- 服務端給客戶端返回SSL協(xié)議版本號、加密算法種類、隨機數(shù)等信息,同時也返回服務器端的證書,即公鑰證書
- 客戶端使用服務端返回的信息驗證服務器的合法性,包括:
- 證書是否過期
- 發(fā)型服務器證書的CA是否可靠
- 返回的公鑰是否能正確解開返回證書中的數(shù)字簽名
- 服務器證書上的域名是否和服務器的實際域名相匹配
- 驗證通過后,將繼續(xù)進行通信,否則,終止通信
- 客戶端向服務端發(fā)送自己所能支持的對稱加密方案,供服務器端進行選擇
- 服務器端在客戶端提供的加密方案中選擇加密程度最高的加密方式。
- 服務器將選擇好的加密方案通過明文方式返回給客戶端
- 客戶端接收到服務端返回的加密方式后,使用該加密方式生成產(chǎn)生隨機碼,用作通信過程中對稱加密的密鑰,使用服務端返回的公鑰進行加密,將加密后的隨機碼發(fā)送至服務器
- 服務器收到客戶端返回的加密信息后,使用自己的私鑰進行解密,獲取對稱加密密鑰。
- 在接下來的會話中,服務器和客戶端將會使用該密碼進行對稱加密,保證通信過程中信息的安全。
雙向認證
雙向認證與單向認證相比增加了服務端對客戶端的認證

雙向認證過程
- 客戶端向服務端發(fā)送SSL協(xié)議版本號、加密算法種類、隨機數(shù)等信息。
- 服務端給客戶端返回SSL協(xié)議版本號、加密算法種類、隨機數(shù)等信息,同時也返回服務器端的證書,即公鑰證書
- 客戶端使用服務端返回的信息驗證服務器的合法性,包括:
- 證書是否過期
- 發(fā)型服務器證書的CA是否可靠
- 返回的公鑰是否能正確解開返回證書中的數(shù)字簽名
- 服務器證書上的域名是否和服務器的實際域名相匹配
- 驗證通過后,將繼續(xù)進行通信,否則,終止通信
- 服務端要求客戶端發(fā)送客戶端的證書,客戶端會將自己的證書發(fā)送至服務端
- 驗證客戶端的證書,通過驗證后,會獲得客戶端的公鑰
- 客戶端向服務端發(fā)送自己所能支持的對稱加密方案,供服務器端進行選擇
- 服務器端在客戶端提供的加密方案中選擇加密程度最高的加密方式
- 將加密方案通過使用之前獲取到的公鑰進行加密,返回給客戶端
- 客戶端收到服務端返回的加密方案密文后,使用自己的私鑰進行解密,獲取具體加密方式,而后,產(chǎn)生該加密方式的隨機碼,用作加密過程中的密鑰,使用之前從服務端證書中獲取到的公鑰進行加密后,發(fā)送給服務端
- 服務端收到客戶端發(fā)送的消息后,使用自己的私鑰進行解密,獲取對稱加密的密鑰,在接下來的會話中,服務器和客戶端將會使用該密碼進行對稱加密,保證通信過程中信息的安全。