我正在阅读RFC5077,并遇到下图:
ClientHello
(empty SessionTicket extension)-------->
ServerHello
(empty SessionTicket extension)
Certificate*
ServerKeyExchange*
CertificateRequest*
<-------- ServerHelloDone
Certificate*
ClientKeyExchange
CertificateVerify*
[ChangeCipherSpec]
Finished -------->
NewSessionTicket
[ChangeCipherSpec]
<-------- Finished
Application Data <-------> Application Data
我猜Certificate*
这意味着可以有一个或多个Certificate
,并且[ChangeCipherSpec]
意味着它是可选的。但我在本文档或 Internet 中找不到准确的定义。我在哪里可以找到对 RFC 的这些符号的解释?
您的解释将与常见的 (E)BNF 和正则表达式表示法一致,但实际上
RFC5077(和 4507)是对 TLS1.1 的 RFC4346 和 TLS1.0 的 RFC2246 的修改;它也适用于随后发布的 TLS1.2 的 RFC5246。(它不适用于 RFC8446 中的 TLS1.3;1.3 将旧形式的会话恢复和 5077 类型的票证替换为重用会话参数的新临时 PSK 方法,并且它重用 NewTicket 消息代码的数据完全不同于5077.) * 的含义在第 36 页的RFC5246 、第 33 页的RFC4346或第 31 页的RFC2246中的图 1 之后说明。这不是一般其他协议或 RFC 的标准。甚至TLS1.3 的 RFC8446也对其进行了重大更改。