首页 归档 关于 learn love 工具

SSL的握手机制

SSL的握手机制和数字签名机制完全不同, 单向验证机制,只验证服务端。

  • 第一步:Visitor给出协议版本号、一个客户端随机数(Client random),以及客户端支持的加密方法。
  • 第二步:Server确认双方使用的加密方法,以及一个服务器生成的随机数(Server random)。
  • 第三步:Server发送数字证书给Visitor。
  • 第四步:Visitor确认数字证书有效(查看证书状态且查询证书吊销列表),并使用信任的CA的公钥解密数字证书获得Server的公钥,然后生成一个新的46字节随机数(称为预备主密钥Pre-master secret),并使用Server的公钥加密预备主密钥发给Server。
  • 第五步:Server使用自己的私钥,解密Visitor发来的预备主密钥。
  • 第六步:Visitor和Server双方都具有了(客户端随机数+服务端随机数+预备主密钥),它们两者都根据约定的加密方法,使用这三个随机数生成对称密钥——主密钥(也称为对话密钥session key),用来加密接下来的整个对话过程。
  • 第七步:在双方验证完session key的有效性之后,SSL握手机制就算结束了。之后所有的数据只需要使用“对话密钥”加密即可,不再需要多余的加密机制。

注意:
1.在SSL握手机制中,需要三个随机数(客户端随机数+服务端随机数+预备主密钥);
2.至始至终客户端和服务端只有一次非对称加密动作——客户端使用证书中获得的服务端公钥加密预备主密钥。
3.上述SSL握手机制的前提单向验证,无需验证客户端,如果需要验证客户端则可能需要客户端的证书或客户端提供签名等。

参考