CodeQL 文档

boost::asio TLS 设置错误配置

ID: cpp/boost/tls-settings-misconfiguration
Kind: problem
Security severity: 7.5
Severity: error
Precision: medium
Tags:
   - security
   - external/cwe/cwe-326
Query suites:
   - cpp-security-extended.qls
   - cpp-security-and-quality.qls

点击查看 CodeQL 代码库中的查询

使用来自 boost::asio 库的 TLS 或 SSLv23 协议,但未禁用已弃用的协议可能会使软件暴露于已知漏洞或允许使用弱加密算法。还会标记禁用最低推荐协议的情况。

建议

使用 TLS 或 SSLv23 协议时,请设置 no_tlsv1no_tlsv1_1 选项,但不要设置 no_tlsv1_2。使用 SSLv23 协议时,还要设置 no_sslv3 选项。

示例

在以下示例中,未设置 no_tlsv1_1 选项。不建议使用 TLS 1.1。

void useTLS_bad()
{
	boost::asio::ssl::context ctx(boost::asio::ssl::context::tls);
	ctx.set_options(boost::asio::ssl::context::no_tlsv1); // BAD: missing no_tlsv1_1

	// ...
}

在更正后的示例中,已设置 no_tlsv1no_tlsv1_1 选项,确保使用 TLS 1.2 或更高版本。

void useTLS_good()
{
	boost::asio::ssl::context ctx(boost::asio::ssl::context::tls);
	ctx.set_options(boost::asio::ssl::context::no_tlsv1 | boost::asio::ssl::context::no_tlsv1_1); // GOOD

	// ...
}

参考

  • ©GitHub 公司
  • 条款
  • 隐私