上次对客户端的认证阶段进行了分析,本次继续上次的内容往后进行分析。
先看Client响应的
Change Cipher Spec
和Finished
消息,当服务器在前面发送了Certificate Request
时,客户端往往也要发送自己的证书Certificate以及Certificate Verrify。Change Cipher Spec & Finished From Client
从图中就可以看出,消息格式和之前服务器发送的是一样的,所以不再进行分析。
New Session Ticket
New Session Ticket在服务器收到客户端Finished消息后的任何时间,它都可以发送NewSessionTicket消息。
Type
、Version
、Length
表示类型、版本、长度。Session Ticket Lifttime Hint
,表示Ticket的剩余有效时间,此处为172800秒。Session Ticket Age Add
,生成的随机32位值。ClientHello中的obfuscated_ticket_age
字段需要将Ticket Age添加上Ticket Age Add,并模2^32得到模糊值(即Obfuscated Ticket Age)。Session Ticket Nonce
,每个nonce值在此连接上发送的所有Ticket中都应是唯一的。Session Ticket
,用来标识特定的PSK。Extension
,Ticket的扩展值,当前为NewSessionTicket定义的唯一扩展名为early_data
,表示该票据可用于发送0-RTT数据,包含值Maximum Early Data Size
,表示允许客户端发送的最大0-RTT数据量(以字节为单位),接收超过max_early_data_size字节的0-RTT数据的服务器应该使用unexpected_message
警报终止连接。
网友评论