如何使用 boost API 检查 TLS 客户端 hello 版本?

问题描述

我正在调试的 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" 检查记录层版本号或客户端 hello 版本号(在下图中突出显示)

enter image description here

根据 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 的工作原理,

  1. 是检查记录层版本还是客户端 hello 版本?
  2. 如果它正在检查记录层版本并决定限制客户端请求,是否不违反 RFC5246?
  3. 如果讨论中的 API 检查记录层版本,是否有任何 boost API 可以检查客户端 hello 版本?

提前致谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)