TLS警报是什么意思?

问题描述

| 我正在查看Microsoft网络监视器捕获的HTTPS \“ GET \”请求,如果由.NET
HttpWebRequest
执行,它神秘地无法完成。 我发现服务器Hello包含一个类似于以下内容的警报条目: 我有以下问题: 这个警报真的加密了吗?我了解到,如果在密钥交换之后发送警报,警报确实会被加密,但是正如您所看到的,这发生在协商阶段的很早,即Server Hello。 如果未加密,是否格式错误?第一个字节
01
表示警告,但是
70
(\“协议版本\”)是致命错误。当然,
70
只能作为
02 70
的一部分出现吗? 这到底是什么意思? \“协议版本\”表示erm协议版本有问题。但是,客户端Hello包含\“ TLS 1.0 \”作为最大版本,服务器Hello也指定了\“ TLS 1.0 \”。还有什么可能是错的? 如果有人感到勇敢,我可以附加整个捕获内容:) 我用来执行此请求的代码显示在另一个问题中。     

解决方法

这不是加密的警报。握手完成后,可能会出现加密警报,而实际情况并非如此。第一个字节指示警告致命(2),警告(1)的重要性,第二个字节为描述。在您的情况下,十六进制为70,十进制为112,根据RFC 4366,这是无法识别的名称。有关更多信息,请检查RFC 5246中的协议定义。 unrecognized_name表示您在客户端问候中发送的服务器名称与服务器已知的名称不匹配。