彻底搞清HTTPS安全通讯之SSL/TLS加密协议( 二 )


文章插图
 
4.3 客户端回应

彻底搞清HTTPS安全通讯之SSL/TLS加密协议

文章插图
 
客户端收到服务器回应以后,首先验证服务器证书 。如果有以下问题:
  • 证书不是可信机构颁布
  • 或者证书中的域名与实际域名不一致
  • 或证书已经过期
    这时就会向访问者显示一个警告,由用户选择是否还要继续通信 。
如果证书没有问题,客户端就会从证书中取出服务器的公钥,然后,向服务器发送以下信息:
  • 一个随机数,用服务器公钥加密,称为pre-master key 。
  • 编码改变通知,表示随后的信息将用双方商定的加密方法 和密钥发送
  • 客户端握手结束通知,表示客户端的握手阶段已经结束 。这一项同时也是前面发送的所有内容的hash值,用来供服务器检验 。
客户端与服务器同时有了三个随机数,接着双方就用事先商定的加密方法,各自生成本次会话所用的同一把”会话密钥“ 。
使用三次随机数,防止有的主机生成的只是伪随机数 。
4.4 服务器回应服务器收到客户端的第三个随机数pre-master key之后,计算生成本次会话所用的”会话密钥“,然后给客户端发送下面信息:
  • 编码改变通知,表示随后的信息都将用双方商定的加密方法 和密钥发送 。
  • 服务器握手结束通知,表示服务器的握手阶段已经结束 。这一项同时也是前面发送的所有内容的hash值,用来供客户端检验 。

彻底搞清HTTPS安全通讯之SSL/TLS加密协议

文章插图
 




推荐阅读