协议模型:
- 第一步(客户端/服务器的证书,随机数,算法,协议交换):
- 客户端产生随机数RNC
- 客户端发送客户端的证书,协议(SSL/TLS),算法信息,RNC给服务器.
- 服务断接收到请求,产生服务端的随机数RNS
- 服务端回复服务器的证书,协议(SSL/TLS),算法信息,RNS给客户.
- 第二步(客户端/服务器向认证机构校验证书信息):
- 客户端向第三方/本地信任库认证接收到的服务器证书信息.
- 服务器断向第三方/本地信任库校验客户端的证书信息
- 第三步(生成主密钥 Primary Master Secret):
- 客户端产生随机数PMS.
- 客户端根据协议(SSL/TLS),服务器的证书公钥生成加密过的PMS.
- 客户端向服务器发送加密过的PMS.
- 服务器与接收加密过的PMS,并根据服务器的证书私钥解密出PMS.
- 客户端与服务端保存公共私钥(RNC+RNS+PMS)作为共同的私钥.
- 第四步(会话密钥确认):
- 客户端通过PMS产生会话密钥.
- 客户端数据使用会话密钥加密发送给服务器.
- 服务器使用PMS产生对应的密钥.
- 服务使用会话密钥解密接收到的数据.
- 服务器发送确认信息给客户端.
- 终止握手.
- 第五步(正式会话):
- 客户端数据使用会话密钥加密 发送给服务端.
- 服务端接收数据使用相同的会话密钥解密出数据.
- 服务器使用会话密钥加密数据发送给客户端
- 客户端使用会话密钥解密出对应数据.
只要这5步中有一步校验异常,都会重新握手.