一、参数协商算法
首先客户端和服务端肯定一个双方都支持的最高的协议版本,同时肯定他们使用的密码套件----组合算法 (Cipher Suite)算法的组合分别用在不一样目的的三个算法,包含交换秘钥和身份认证的算法,用于加密程序的对称加密算法,以及消息验证的MAC算法。算法组合的规范以下:安全
身份验证经过以后,进入秘钥交换阶段,客户端和服务器之间并非直接交换秘钥,屙屎交换升恒米药品所须要用的信息,这个信息被称为 Pre-Master Secret (客户端产生的一个随机数)若是参数协商阶段肯定了算法组合使用RSA交换秘钥,那么客户端使用公钥(包含在服务器证书中)加密 Pre-Master Secret,而后再传给服务器,服务器使用私钥来解密,因此Pre-Master Secret 是安全的,以后双方还要计算一个 Master Secret ,最终的秘钥都是基于Master Secret生成的,Master Secret是经过三对三个随机数进行计算获得的。除了Pre-Master Secret 以外,另外两个随机数则是参数协商阶段交换的客户端随机数和服务器随机数。服务器
在SSL/TLS1.2中使用消息验证码MAC实现消息防篡改过,原理是在消息发送以前,将消息和一个消息和双方共享的秘钥做为一个hash算法的输入,再讲求的值的摘要发送给对方。对方使用私钥解密dom
二、TLS1.2 握手的消息的顺序图ui
这样总结下: 也就是说在客户端仍是在服务端的随机数是存在两个的随机数,就客户端来讲 分别是第一次产生的 Random_C 和后面 发送的 Pre-Master Secret 包含在ClientKeyExchange 中而且使用服务器的公钥加密。加密
TLS秘钥协商过程抓包blog