在安全HTTPS中提及到的密钥协商(安全通讯前的准备工作)中,包含了身份认证和密钥协商2大过程如下,其中SSL协议包含记录协议和握手协议,在握手协议中协商通讯传输的的对称加密密码、压缩算法、加密算法等,具体的步骤如下:
Step1
s客户端往服务器端发ClientHello消息
消息特点:该消息是客户端连接服务器端时发送的第一个消息。
消息构成:
(1). 使用的TLS协议版本。
(2). 随机数;用于计算对称加密时的“主密码”。
(3). 会话ID;重连时有用,可为空。
(4). 加密算法列表;客户端支持的加密算法列表,并按照客户端的偏好从前往后排。
(5). 压缩算法列表;客户端支持的压缩算法列表,并按照客户端的偏好从前往后排。
(6). 扩展信息。
消息作用:用于发起会话、交换随机数、协商加密算法、压缩算法等。
Step2
服务器端验证ClientHello消息,主要验证:
(1) 消息格式是否合法;
(2) 能否至少支持客户端所列举的一个加密算法和一个压缩算法等。
验证不通过则发送消息断开会话,验证通过则执行下一步。
Step3
服务器往客户端发送ServerHello消息。
消息特点:该消息是服务器收到ClientHello后返回给客户端的第一个消息。
消息构成:
(1). 使用的TLS协议版本。
(2). 随机数;用于计算对称加密时的“主密码”(这个随机数是服务器发送给客户端的,跟第一步骤的随机