TLS/SSL协议格式(一)

 我来答
伊彩缘17
2022-06-21 · TA获得超过4829个赞
知道大有可为答主
回答量:4301
采纳率:100%
帮助的人:204万
展开全部

TLS/SSL协议实际上是分层的,类似IP/TCP协议;

上图为一个 TLS Record Layer 包,可用看到其结构为:

Record类型:

TCP包中除了 TLS Record Layer 外,可以看到前面还有部分内容,这是因为按照网络协议七层规范,层次关系为数据链路层-》网络层-》传输层-》TLS/SSL;
其中数据链路层的结构为目的地址+源地址+类型,对应到图上:

TLS Record Protocol 的ContentType=22时,Body的内容采用 Handshake Protocol ;

Hello request 消息由服务端发送给客户端,通过客户端重新开始SSL握手;

消息体为空;

客户端发送 Client hello 消息开始SSL握手;

Server hello 消息由服务端发送给客户端,作为 Client hello 的响应;如果服务端无法找到匹配的SSL/TLS版本或CipherSuits,会返回 handshake failure alert ;

服务端发送证书到客户端,客户端据此验证服务端身份;一般而言,该消息紧跟着 Server hello 消息;

证书链所占用的字节,用3bytes表示;

该消息一般紧接着 Server certificate 消息;该消息并不是必须的,取决于协商出的key交换算法;如果 Server certificate 并不包含计算premaster的所有参数,则必须发送该消息;
采用如下算法需要发送 Server certificate 消息:

采用如下算法不需要发送 Server certificate 消息:

由于目前使用较多的是ECDHE,本文只介绍该格式:

1byte,目前为常量0x03;

该消息是可选的,如果服务端需要验证客户端身份,可以通过该消息要求客户端提供证书;

哈希和签名算法列表,从TLS1.2开始,之前版本不存在该字段;用2bytes存储算法列表占用的字节数;
每个Algorithm由hash(1byte)+signature(1byte)组成;

Server certificate 相同

该消息由客户端发送到服务端,校验证书

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式