首页
/ Azure CLI 项目中关于 cryptography 库安全问题的升级分析

Azure CLI 项目中关于 cryptography 库安全问题的升级分析

2025-06-15 22:24:08作者:昌雅子Ethen

背景介绍

在 Azure CLI 项目中,发现了一个与 cryptography 库相关的安全问题(CVE-2024-12797)。该问题主要影响使用 RFC7250 原始公钥(RPKs)进行服务器认证的客户端场景。

问题技术分析

该安全问题的核心在于:当客户端使用原始公钥(RPKs)进行服务器认证时,即使服务器认证失败,握手过程也可能不会按预期终止。这种情况发生在 SSL_VERIFY_PEER 验证模式被设置的情况下。

影响范围

此问题可能导致以下风险:

  1. 使用原始公钥的 TLS 和 DTLS 连接可能面临中间人攻击风险
  2. 当服务器认证失败时,客户端可能无法正确检测到这一情况

需要注意的是,原始公钥功能在 TLS 客户端和服务器中默认都是禁用的。只有当客户端显式启用服务器端原始公钥使用,并且服务器也配置为发送原始公钥而非 X.509 证书链时,才会出现此问题。

问题触发条件

要触发此问题,需要满足以下条件:

  1. TLS 客户端显式启用了服务器原始公钥功能
  2. 服务器配置为发送原始公钥而非证书链
  3. 客户端设置了 SSL_VERIFY_PEER 验证模式
  4. 客户端依赖握手过程在服务器原始公钥不匹配预期公钥时失败

解决方案

Azure CLI 团队已经通过升级 cryptography 库到 44.0.1 版本来解决此问题。新版本修复了原始公钥验证过程中的问题,确保在服务器认证失败时握手过程能够正确终止。

开发者建议

对于使用类似功能的开发者,建议:

  1. 及时升级 cryptography 库到安全版本
  2. 即使启用了原始公钥功能,也应通过调用 SSL_get_verify_result() 来检查验证结果
  3. 在代码中正确处理验证失败的情况
  4. 定期检查项目依赖库的安全更新

总结

此安全问题的修复体现了 Azure CLI 项目对安全性的高度重视。通过及时升级依赖库,项目维护团队确保了用户在使用 Azure CLI 时的安全性。这也提醒我们,在现代软件开发中,依赖库的安全管理是保障整体系统安全的重要环节。

登录后查看全文
热门项目推荐
相关项目推荐