Mbed TLS 2.28.10 版本发布:安全加固与功能优化
Mbed TLS 是一个开源的、易于使用的 SSL/TLS 实现库,专为嵌入式系统设计。它提供了加密、SSL/TLS 协议实现以及 X.509 证书处理等功能,广泛应用于物联网设备、网络通信等场景。作为 ARM 公司维护的项目,Mbed TLS 以其轻量级和模块化设计著称,特别适合资源受限的环境。
版本概述
Mbed TLS 2.28.10 是该 2.28 长期支持(LTS)分支的最终版本,此后将不再提供错误修复或安全更新。建议所有用户尽快升级到受支持的版本。本次更新主要包含安全修复和功能增强,特别是针对 TLS 握手过程中的潜在安全问题进行了加固。
重要安全更新
TLS 客户端主机名验证强化
在 TLS 客户端中,如果未调用 mbedtls_ssl_set_hostname() 函数,且尝试进行基于证书的服务器身份验证时,mbedtls_ssl_handshake() 现在会失败并返回 MBEDTLS_ERR_SSL_CERTIFICATE_VERIFICATION_WITHOUT_HOSTNAME 错误。这一变更源于安全考虑:在不知道预期主机名的情况下验证服务器通常是不安全的。
开发者可以通过两种方式恢复旧行为:
- 调用
mbedtls_ssl_set_hostname()并将主机名参数设为 NULL - 启用新的编译时选项
MBEDTLS_SSL_CLI_ALLOW_WEAK_CERTIFICATE_VERIFICATION_WITHOUT_HOSTNAME
需要注意的是,ssl->hostname 在调用 mbedtls_ssl_set_hostname(ssl, NULL) 后的内容已发生变化,具体细节请参考 mbedtls_ssl_context 结构类型中 hostname 字段的文档说明。
TLS 1.2 握手问题修复
修复了 TLS 1.2 握手过程中的一个重要问题。当计算 Finished 消息时,如果内存分配失败或出现加密硬件故障,可能导致计算错误,从而影响 TLS 握手的安全保证。此问题编号为 CVE-2025-27810。
其他安全改进
- 清零 PSA 操作中使用的临时堆缓冲区
- 修复了
psa_key_derivation_input_integer()在操作中止后未检测错误状态的问题
功能优化与错误修复
网络连接处理改进
在网络组件中,使用 mbedtls_net_close 替代了原始的 close 函数,应用于 mbedtls_net_bind 和 mbedtls_net_connect 中,防止可能的文件描述符双重关闭问题。
平台兼容性增强
- 修复了在 MS-DOS DJGPP 环境下的编译问题
- 修正了 AES-NI 内联汇编的约束条件,该问题可能在某些 GCC 类编译器为通用 x86_64 目标构建 AES 时导致代码错误
- 移除了 Everest Visual Studio 2010 兼容头文件,这些文件可能在不完整实现的情况下遮蔽标准 CRT 头文件
调试输出修复
修正了 MBEDTLS_PRINTF_SIZET 的定义,解决了在启用 SSL 调试功能时,使用 Visual Studio 2013 或 MinGW 构建的 Mbed TLS 副本可能出现的运行时崩溃问题。
升级建议
所有用户都应考虑在适当的开发周期内升级到此版本,以利用其中的安全修复和功能改进。特别需要注意的是,2.28 LTS 分支将不再接收更新,长期使用的项目应规划迁移到受支持的版本。
对于 TLS 客户端实现,开发者应确保正确调用 mbedtls_ssl_set_hostname() 函数,特别是在使用证书认证(而非预共享密钥)的场景下。这一实践对于防止服务器冒充攻击至关重要。
GLM-5智谱 AI 正式发布 GLM-5,旨在应对复杂系统工程和长时域智能体任务。Jinja00
GLM-5-w4a8GLM-5-w4a8基于混合专家架构,专为复杂系统工程与长周期智能体任务设计。支持单/多节点部署,适配Atlas 800T A3,采用w4a8量化技术,结合vLLM推理优化,高效平衡性能与精度,助力智能应用开发Jinja00
jiuwenclawJiuwenClaw 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。Python0204- QQwen3.5-397B-A17BQwen3.5 实现了重大飞跃,整合了多模态学习、架构效率、强化学习规模以及全球可访问性等方面的突破性进展,旨在为开发者和企业赋予前所未有的能力与效率。Jinja00
AtomGit城市坐标计划AtomGit 城市坐标计划开启!让开源有坐标,让城市有星火。致力于与城市合伙人共同构建并长期运营一个健康、活跃的本地开发者生态。01
awesome-zig一个关于 Zig 优秀库及资源的协作列表。Makefile00