SSL握手Client_Hello版本

时间:2013-01-10 11:14:00

标签: ssl version handshake

我有一个非常基本的问题:SSL握手中的client_hello或server_hello如何确定它支持哪些SSL / TLS版本?我的意思是,据我所知,第一个客户端然后服务器发送他们支持的最高可能的SSL版本。但是,这是如何确定的?

它是证书中的版本字段吗?

祝你好运, HL

2 个答案:

答案 0 :(得分:2)

TLS specification, appendix E中对此进行了描述。这在TLS 1.0,1.1和1.2规范中略有不同,但原则保持不变。

基本上,客户端要求它支持的最高版本,服务器以其支持的最高版本响应客户端版本:

min(max. client supported version, max. server supported version)

只要双方确实支持最终版本,就可以正常工作。

答案 1 :(得分:0)

客户端负责通过发送ClientHello消息来启动SSL握手。如果这不是发送的第一条消息,则服务器会响应错误并关闭套接字。

客户端向服务器通告它支持的密码规范,不需要支持所有这些密码规范。

客户端向服务器发送客户端的SSL版本号,密码设置,特定于会话的数据以及服务器使用SSL与客户端通信所需的其他信息。

客户端还在其hello消息中发送质询令牌,服务器必须使用新协商的密钥对其进行加密,然后再发回加密值。客户端验证解密的令牌与发送的令牌是否相同。如果不是,则拒绝握手。

查看完整的演示here