LibreSSL 4.1.0 版本发布:安全性与性能的全面提升

LibreSSL 4.1.0 版本发布:安全性与性能的全面提升

portable LibreSSL Portable itself. This includes the build scaffold and compatibility layer that builds portable LibreSSL from the OpenBSD source code. Pull requests or patches sent to tech@openbsd.org are welcome. portable 项目地址: https://gitcode.com/gh_mirrors/po/portable

LibreSSL 是一个开源的加密协议库,它是 OpenSSL 的一个分支,专注于提供更安全、更现代的加密实现。作为 TLS/SSL 协议的重要实现之一,LibreSSL 被广泛应用于各种操作系统和应用程序中,特别是在 OpenBSD 项目中作为默认的加密库。

跨平台支持与构建改进

最新发布的 LibreSSL 4.1.0 版本在跨平台支持方面取得了显著进展。开发团队新增了对龙芯架构(loongarch64)的实验性支持,修复了 mips32 架构的编译问题并重新启用了相关 CI 测试。对于 FreeBSD 用户,修复了 CMake 构建系统的问题,同时修正了 cmake --install 命令中 --prefix 选项的行为。针对 Windows 平台的 MinGW 环境,修复了由于缺少 sh(1) 导致的测试问题。

加密算法内部实现优化

在加密算法实现方面,4.1.0 版本进行了多项重要改进:

  1. 椭圆曲线加密(ECC)优化:彻底重写了 EC ASN.1 相关代码,修正了 EC 密钥和参数的 DER 编码实现。优化了 EC_POINT_{oct2point,point2oct}() 的内部实现,改进了设置 EC 点压缩坐标的代码。EC_GROUP 和 EC_POINT 中的 BIGNUM 现在采用堆分配方式,提高了内存管理效率。

  2. SHA 算法加速:针对 amd64 架构,开发了全新的 SHA-1、SHA-256 和 SHA-512 汇编实现,这些实现能够自动检测并利用 SHA-NI 指令集(如果可用),取代了之前由 Perl 生成的旧版汇编代码。对于 aarch64 架构,新增了利用 ARM 加密扩展(CE)的 SHA-256 和 SHA-512 汇编实现。

  3. 其他加密算法改进:简化并重写了 MD5 的 amd64 实现,使其更易读且高效。改进了 SM4 算法的实现,使其与其他对称加密算法更加一致。重写了 BN_bn2binpad() 及其小端版本,优化了大数处理性能。

兼容性调整与 API 变更

4.1.0 版本引入了一些重要的 API 变更和兼容性调整:

  1. 椭圆曲线相关变更:移除了 EC_METHOD 相关的公共 API,包括 EC_GROUP_new()、EC_GFp_mont_method() 等函数。现在只接受编码内置曲线的椭圆曲线参数。移除了对小于 224 位字段的所有椭圆曲线的支持,包括所有 WTLS 曲线和 P-192。

  2. 内存管理接口变更:CRYPTO_set_mem_functions() 现在与 OpenSSL 1.1 保持一致,同时移除了 CRYPTO_set_mem_ex_functions()。

  3. 命令行工具调整:移除了 openssl 命令中 dh、dhparam 等子命令的 -C 选项,该选项原本用于生成"C代码"。

  4. 新增功能:libtls 新增了 tls_peer_cert_common_name() API,方便开发者获取对等证书的通用名而不必检查 PEM 数据。

安全修复与内存管理

该版本修复了多个安全问题:

  1. 修复了 eckey_compute_pubkey() 中的内存泄漏问题。
  2. 恢复了 RSA-PSS 密钥在 EVP_PKEY_CTX_ctrl_str() 接口中对盐长度特殊值(-1, -2, -3)的支持。
  3. 修复了遗留代码中的多个内存泄漏问题。
  4. 改进了 X509_VERIFY_PARAM 内部实现,避免了公共 API 中的越界读取问题。

文档与测试改进

文档方面,完成了剩余未记录的公共 EVP API 文档化工作,并对现有文档进行了重组以提高清晰度和准确性。测试方面,显著提升了椭圆曲线代码的回归测试覆盖率,确保实现的正确性和稳定性。

总结

LibreSSL 4.1.0 是一个重要的版本更新,它在性能优化、安全加固和代码现代化方面取得了显著进展。通过引入新的汇编优化实现、简化内部数据结构、移除不安全的遗留功能,LibreSSL 继续朝着提供更安全、更高效的加密库目标迈进。对于开发者而言,需要注意一些 API 变更,特别是与椭圆曲线加密相关的接口调整。这些改进使得 LibreSSL 在现代加密应用场景中更具竞争力,为开发者提供了更可靠的加密基础设施。

portable LibreSSL Portable itself. This includes the build scaffold and compatibility layer that builds portable LibreSSL from the OpenBSD source code. Pull requests or patches sent to tech@openbsd.org are welcome. portable 项目地址: https://gitcode.com/gh_mirrors/po/portable

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

董妃予Kacey

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值