[241020] openSUSE Leap 16.0 开发启动 | LibreSSL 4.0.0 发布

246 阅读6分钟

openSUSE Leap 16.0 开发启动

openSUSE Leap 16.0 已进入 pre-Alpha 开发阶段,并面向公众提供测试版本。

Leap 16.0 是什么?

  • Leap 16.0 是 openSUSE Leap 15.6 的继任版本,预计将于 2025 年秋季正式发布。
  • 它是一个传统的 Linux 发行版,基于最新的 SUSE Linux Enterprise Server 16 (SLES 16) 二进制文件和 openSUSE Factory 开发代码库中的社区软件包构建。
  • Leap 16.0 将提供全新的用户体验,同时保持与之前版本的兼容性,方便用户平滑迁移。

谁适合使用 pre-Alpha 版本?

  • pre-Alpha 版本主要面向早期采用者和希望积极参与开发的贡献者。
  • 建议在虚拟机中安装和测试 pre-Alpha 版本,不建议作为日常使用的系统。
  • 普通用户建议等待 2025 年春季晚些时候发布的 Beta 版本。

来源:
news.opensuse.org/2024/10/07/…

LibreSSL 4.0.0 发布

一、版本概况

  • LibreSSL 4.0.0 是 4.0.x 分支的首个稳定版本,已随 OpenBSD 7.6 发布。
  • 该版本包含大量改进、新功能、兼容性变更和错误修复。

二、主要变化

  • 可移植性改进
    • 新增对 Emscripten 的初始支持。
    • 移除 timegm() 兼容层,使用 OPENSSL_timegm() 替代。
    • mips32 平台不再被积极支持。
    • 修复 Windows 系统日期超过 2038 年的问题。
  • 内部改进
    • 清理 conf 目录,简化逻辑,修复内存泄漏。
    • 简化 X509_check_trust() 内部逻辑,提高可读性。
    • 使用 BoringSSL 的 posix 时间转换 API 替换 gmtime() 和 timegm()。
    • 移除 by_dir 中不必要的 stat 调用。
    • 拆分 TLS 扩展的解析和处理,确保以预定义顺序调用扩展回调。
    • 清理 MD4 和 MD5 实现。
    • 汇编函数不再公开在公共 API 中,全部由 C 函数封装。
    • 移除旧架构上旧密码的汇编实现。
    • 合并大多数多文件密码实现到一两个 C 文件中。
    • 移除证书有效期缓存。
    • 停止在 amd64 和 i386 上从 .init 部分调用 OPENSSL_cpuid_setup()。
    • 重写各种 BN 转换函数。
    • 改进证书请求内部逻辑。
    • 移除未使用的 DSA 方法。
    • 改进 X.509v3 扩展内部逻辑,修复 X509V3_add1_i2d() 和 X509V3_get_d2i() 中的错误和泄漏。
    • 使用 CBB 重写 BN_bn2mpi()。
    • 使大多数错误字符串表成为 const。
    • 移除对 SSLv2 客户端 hello 消息的处理。
    • 改进 openssl(1) speed 应用的信号处理程序。
    • 清理各种 X509v3_* 扩展 API。
    • 统一 X.509v3 扩展方法。
    • 清理 SSL_SESSION 中的密码处理。
    • 从 SSL_METHOD 中移除 get_cipher。
    • 从头开始重写 CRYPTO_EX_DATA。
    • 移除 netcat 中无效的 connect() 调用。
    • 使用 strtonum() 替换 libcrypto 中的 atoi() 和 strtol()。
    • 引入 crypto_arch.h,包含架构相关的代码和定义。
    • OPENSSL_cpu_caps() 现在与架构无关。
    • 重新组织 DES 实现,使用更少的文件,并移除对旧处理器和编译器的优化。
  • 新功能
    • 在 openssl(1) 的 cms 命令中添加 CRLfile 选项,用于指定在验证期间使用的其他 CRL。
  • 文档改进
    • 移除不再存在的 API 文档。
    • 统一对已弃用 ENGINE 参数的描述。
  • 测试和主动安全
    • 将剩余的测试切换到新的证书。
  • 兼容性变更
    • 更改 libtls 中的协议解析。忽略不支持的 TLSv1.1 和 TLSv1.0 协议,不再以令人惊讶的方式启用或禁用 TLSv1.2。
    • 移除危险的 EVP_PKEY*_check(3) 函数族。openssl(1) pkey 和 pkeyparam 命令不再支持 -check 和 -pubcheck 标志。
    • 一步哈希函数(MD4()、MD5()、RIPEMD160()、SHA1()、所有 SHA-2 和 HMAC())不再支持返回静态缓冲区。调用者必须传入大小正确的缓冲区。
    • 移除对 Whirlpool 的支持。仍在使用此功能的应用程序应遵循 OPENSSL_NO_WHIRLPOOL。
    • 移除对 F5 中间盒的解决方法。
    • 移除无用的 pem2.h。
    • 移除 conf_api.h 及其中的公共 API。
    • 移除 ssl2.h、ssl23.h 和 ui_compat.h。
    • 移除许多 conf 和 attribute 函数。一些未使用的类型被移除,其他类型则变为不透明。
    • 移除已弃用的 HMAC_Init() 函数。
    • 移除 OPENSSL_load_builtin_modules()。
    • 移除 X509_REQ_{get,set}_extension_nids()。
    • 移除 X509_check_trust(),X509_VAL 变为不透明。
    • 只能在证书、CRL 和 CSR 上设置指定的版本。
    • 从 pem.h 中移除未使用的 PEM_USER 和 PEM_CTX 类型。
    • 移除 COMP_CTX、COMP_METHOD、X509_CRL_METHOD、STORE、STORE_METHOD 和 SSL_AEAD_CTX 的 typedef。
    • i2d_ASN1_OBJECT() 现在像大多数其他 i2d_* 一样在出错时返回 -1。
    • 从 openssl(1) 中移除 SPKAC 支持。
    • 在 EVP 接口中添加 TLS1-PRF 支持。
    • 移除对 EVP_PKEY 中属性的支持。
    • X509at_* API 不再公开。
    • 在 libssl 中添加 SSL_CTX_set1_cert_store() 和 SSL_CIPHER_get_handshake_digest()。
    • 移除完全损坏的 UI_UTIL 密码 API。
    • OpenSSL pkcs12 命令和 PKCS12_create() 不再支持设置 Microsoft 特定的本地密钥集和加密服务提供程序属性。
  • 错误修复
    • 使 ASN1_TIME_set_string() 和 ASN1_TIME_set_string_X509() 与其文档匹配。它们始终设置符合 RFC 5280 的时间。
    • 改进对受支持组和密钥共享扩展的标准符合性:
      • 不允许重复的密钥共享。
      • 不允许重复的受支持组。
      • 密钥共享必须按客户端偏好顺序发送。
      • 只有当密钥共享与客户端偏好顺序中最优先的受支持组匹配时,才会选择它们。
    • 修复 bnrand() 中的有符号整数溢出。
    • 防止通过 BN_clear_bit() 和 BN_mask_bits() 创建负零。避免 BN_bn2mpi() 中出现一个字节的越界读取。
    • 添加保护措施,以避免将数字线性哈希桶的数量缩减为零,这可能会因访问零大小的分配而导致崩溃。
    • 修复输出缓冲区指向 NULL 的 i2d_ASN1_OBJECT()。
    • 以恒定时间实现 RSA 密钥交换。这是通过使用 RSA_NO_PADDING 解密并在 libssl 中以恒定时间检查填充来完成的。这是可能的,因为基于 RSA 密钥的大小,预主密钥的长度是已知的。
    • 使用 CBS 重写 SSL_select_next_proto(),还修复了在从 ALPN 回调中按预期使用时无法访问的缓冲区越界读取。
    • 避免在 ssl_sigalg_select() 中将虚假错误推送到错误堆栈上。
    • 使致命警报在 QUIC 中致命。

三、总结

LibreSSL 4.0.0 是一个重要的版本,包含大量改进和安全修复。建议所有用户升级到此版本。

来源:
ftp.openbsd.org/pub/OpenBSD…




更多内容请查阅 : blog-241020


关注微信官方公众号 : oh my x

获取开源软件和 x-cmd 最新用法