Bob使用前面的两个随机数以及刚刚新生成的"随机数"PreMaster Secret,使用与服务器确定的加密算法,生成会话秘钥Session Secret。 这里,没有发送 ECDHE 算法交换中的消息Server Key Exchange Client Key Exchange Alice 第二次握手:Alice 收到 Bob 的回复,利用自己的证书的私钥进行解密,获得这个“随机数”PreMaster secr...
Client Key Exchange 的形成比较复杂,不仅仅是对客户端产生的密钥加密而已,这里简单点,就把它理解成是客户端产生的密钥,然后用服务器公钥加密所形成,传给服务器后,服务器用私钥加密,就会得到跟客户端一样的密钥。外界拿到Client Key Exchange后,由于没有私钥,无法解密。 上面其实保证了密钥两点,通讯双方一致性和在网...
4 ServerKeyExchange(客户端<-服务器) 服务器发送ServerKeyExchange消息。 服务器:我们用这些信息来进行密钥交换吧。 当Certificate消息不足以满足需求时候,服务器会通过ServerKeyExchange消息向客户端发送一些必要信息。具体发送的信息内容会根据所使用的密码套件而有所不同。 当不需要这些信息时候,将不会发送ServerKeyEx...
enum{hello_request(0),client_hello(1),server_hello(2),certificate(11),server_key_exchange(12),certificate_request(13),server_hello_done(14),certificate_verify(15),client_key_exchange(16),finished(20),(255)}HandshakeType;struct{HandshakeType msg_type;/* handshake type */uint24 length;/* b...
ServerKeyExchange:这个消息是可选的,该消息主要用来传递双方协商密钥的参数 ClientCertificateRequest:这个消息也是可选的,只有当服务端也需要验证客户端身份会用到 ServerHelloDone:告知客户端服务端这边握手相关的消息发送完毕,等待客户端响应 3、客户端发送
select (KeyExchangeAlgorithm) { case dh_anon: ServerDHParams params; case dhe_dss: case dhe_rsa: ServerDHParams params; digitally-signed struct { opaque client_random[32]; opaque server_random[32]; ServerDHParams params; } signed_params; case ec_diffie_hellman: ...
select (KeyExchangeAlgorithm) { case dh_anon: ServerDHParams params; case dhe_dss: case dhe_rsa: ServerDHParams params; digitally-signed struct { opaque client_random[32]; opaque server_random[32]; ServerDHParams params; } signed_params; case ec_diffie_hellman: ...
密钥协商使用四条: server的Certificate,ServerKeyExchange,client的Certificate,ClientKeyExchange 。TLS规定以后如果要新增密钥协商方法,可以订制这4条消息的数据格式,并且指定这4条消息的使用方法。密钥协商得出的共享密钥必须足够长,当前定义的密钥协商算法生成的密钥长度必须大于46字节。
双向认证的流程也没有太多变化,只是在“Server Hello Done”之后,“Client Key Exchange”之前,客户端要发送“Client Certificate”消息,服务器收到后也把证书链走一遍,验证客户端的身份。大家可以参照本章的图,自己理解一下噢~ 三、小结 本篇,很重要,还有点复杂。大家要熟悉一下本章的两张握手图,理解TLS的握手...
密钥协商使用四条: server的Certificate,ServerKeyExchange,client的Certificate,ClientKeyExchange 。TLS规定以后如果要新增密钥协商方法,可以订制这4条消息的数据格式,并且指定这4条消息的使用方法。密钥协商得出的共享密钥必须足够长,当前定义的密钥协商算法生成的密钥长度必须大于46字节。