我正在调试的 C++ 代码使用 boost API“boost::asio::ssl::context::no_tlsv1”来限制来自客户端的连接请求(如果它是 TLSv1)。不限制其 TLSv1.2。
即使客户端 Hello TLS 版本是 1.2,也不接受以下数据包的连接请求(wireshark 捕获)我想知道 boost API“boost::asio::ssl::context::no_tlsv1”检查记录层版本号或客户端你好版本号(在下图中突出显示)
根据 RFC5246“希望与旧服务器协商的 TLS 客户端可以发送任何值 {03,XX} 作为记录层版本号”。这意味着记录层版本号可以是任何东西
Boost 文档提到这个 API 禁用 tlsv1,但没有提到 https://www.boost.org/doc/libs/1_58_0/doc/html/boost_asio/reference/ssl__context.html
我正在寻求帮助以了解此 API 的工作原理,
- 是检查记录层版本还是客户端 hello 版本?
- 如果它正在检查记录层版本并决定限制客户端请求,是否不违反 RFC5246?
- 如果讨论中的 API 检查记录层版本,是否有任何 boost API 检查客户端问候版本?
先感谢您。