读 OpenSSL,最容易被场内声音最大的加密功能带走:后量子算法、Encrypted Client Hello、FIPS 验证,或者某一次发布里碰巧牵动协议面的改动。这些内容有价值,但放在一种基础设施依赖上看,层次太浅。OpenSSL 嵌在操作系统、浏览器、包管理器、语言运行时、设备、数据库和嵌入式硬件里。2026 年更强的信号来自另一层:OpenSSL 已经把维护时钟、迁移边界和支持机构做得更可检查。[1][2][5]

截至 2026 年 7 月 5 日,这条时钟已经很具体。OpenSSL 4.0 位于当前功能线,项目未将其列为 LTS;官方支持到 2027 年 5 月 14 日。OpenSSL 3.5 是当前长期支持分支,支持到 2030 年 4 月 8 日。OpenSSL 3.6 只支持到 2026 年 11 月 1 日,较旧的 3.0 LTS 分支在 2026 年 9 月 7 日结束支持。[1] 这些日期比未经思考地追问“最新版”更重要。它们告诉运维者,自己选择的是迁移车道、稳定车道,还是短期过桥分支。

题图来自 OpenSSL 第一次参加 2024 年 FOSDEM 的现场。项目在那里设立展台,也借这次活动与更广泛的开源社区面对面交流。[9] 这张图合适,因为本文讨论治理,焦点不在密码套件目录。加密库能够长期存活,靠的是技术表面、资金来源、标准工作、发布纪律和用户反馈回路保持连接。

支持时钟现在也是 API 的一部分

OpenSSL 4.0 的价值,恰恰在于它没有把自己包装成所有人的保守答案。2026 年 4 月 14 日的公告把它标为非 LTS,提醒用户查看发布政策,并说明下一次发布会是 2026 年 10 月的 OpenSSL 4.1。[2] 这样一来,这条分支就变成清楚的功能与迁移车道。团队若要 4.0 的新行为,就得到一个定义明确的窗口。团队若需要给操作系统镜像、受监管产品或设备固件选择更慢的基线,3.5 LTS 才是更自然的锚点。[1][2]

这一区分本身就是维护者信号。成熟项目发布代码,也发布预期。OpenSSL 的发布策略现在给每条受支持分支都写出日期,包括 4.0、3.6、3.5 LTS、3.4 和 3.0 LTS。[1] GitHub 发布流说明了这件事在运维层面的意义:2026 年 6 月 9 日,项目在多个受支持分支上交付安全补丁版本,包括 4.0.1、3.6.3、3.5.7、3.4.6 和 3.0.21,它们都携带同一个 high-severity PKCS7 修复。[7] 依赖负责人可以把这读成一项分支管理承诺,而不只是一串标签。

决策规则可以写得很直。若在 2026 年中为广泛企业部署打包应用,OpenSSL 3.5 LTS 是应当排在前面的平实基线。若正在面向 3.x 之后的 API 行为建设,测试已移除功能,或者试验较新的协议表面,4.0 是适合先行试点的车道。若仍因为 3.0 写着 “LTS” 而停留在那里,这个标签若离开旁边的日期就会误导:支持在 2026 年 9 月 7 日结束。[1]

4.0 把旧弃用项结清

4.0 的看点来自这份变更日志对维护债务的公开呈现,篇幅本身倒在其次。公告列出了不兼容或重要变更,例如让 ASN1_STRING 变成 opaque,修改许多 API 签名以加入 const 限定,移除 SSLv3,移除 ENGINE 支持,移除已弃用的自定义 EVP_CIPHEREVP_MDEVP_PKEYEVP_PKEY_ASN1 方法,移除固定 SSL/TLS 版本方法函数,并默认禁用若干较旧的椭圆曲线路径。[2] LWN 的独立发布说明也抓住了同一点:4.0 增加新加密算法,同时带有不兼容变更。[8]

这些移除项关乎应用长期依靠的旧假设,远超过清理清单上的小事。若你的产品仍依赖 ENGINE API、低层自定义加密方法、SSLv3 兼容,或者 4.0 中已经变化的输出格式,这次发布会准确指出迁移工作藏在哪里。有价值的维护者行为,在于 OpenSSL 把破坏性变化放在主版本线上,把它连到支持政策,同时保留一条寿命更长的 3.5 LTS 车道。[1][2]

新功能同样值得看。OpenSSL 4.0 增加 Encrypted Client Hello 支持、cSHAKE、SNMP 与 SRTP KDF 支持、openssl fipsinstall 期间的 deferred FIPS self tests,以及 TLS 1.2 中协商式 FFDHE 密钥交换。[2] 但采用问题的核心仍然是:“哪些应用能够承受已经改变的契约?” 对加密依赖来说,兼容性测试本身属于安全工作,因为失败的迁移经常变成无人回访的 unsupported fork、本地补丁或版本钉死。

Providers 是真正的迁移边界

provider 模型正是 OpenSSL 技术线和治理线相接的地方。项目文档把 providers 描述为算法实现的容器。应用使用高层 API 时,OpenSSL 会选择某个 provider 实现来完成工作。标准集合包括 default provider、legacy provider、FIPS provider、base provider 和 null provider。[3]

这种划分有直接后果。default provider 保存标准内置实现,并且只在特定条件下自动加载。legacy provider 包含较旧或不鼓励继续使用的算法,默认不会加载。base provider 携带非加密支持算法,例如密钥序列化;当使用 FIPS provider 且不加载 default provider 时,它尤其相关。null provider 可以在库上下文中防止 default provider 意外加载。[3]

这已经越过内部架构,成为运维者的策略面。应用若为了向后兼容而需要旧算法,现在就要作出明确的 provider 选择。受监管部署若需要 FIPS 行为,对应的是 provider 与验证选择,不能写成含混的 “compiled with crypto” 复选框。应用开发者若直接面向已弃用的低层方法编写代码,4.0 的移除项与 provider 模型指向同一件事:策略应当沿着高层 API 和 provider 选择传递,算法不该继续被当作私有实现挂钩。[2][3]

这条边界同样是一份测试计划。严肃迁移到 4.0 之前,需要清点 provider 配置、自定义 engines、legacy-provider 假设、FIPS mode 预期,以及所有越过 EVP 触到旧方法表面的代码。一个库有时可以编译成功,却在运行时选错 provider。这样的迁移失败,只会在测试覆盖配置文件、环境路径、发行版打包,以及真实 TLS 或签名负载时暴露出来。

FIPS 属于证书边界,不能降成 configure 标志

OpenSSL 的 FIPS 文档格外重要,因为它把合规从传闻里拉回证据。README 说明 FIPS module 以 OpenSSL provider 形式实现,同时也说明,一个 cryptographic module 只有完成验证流程后才算 FIPS validated;需要 validated module 的用户,必须只从拥有有效 FIPS certificates 的 OpenSSL 版本生成 FIPS provider。文档还说明,FIPS provider 是共享库,例如 Unix 上的 fips.so,只有在 OpenSSL 配置 enable-fips 后才会构建并安装。[4]

这套语言严格,是有原因的。团队不能把“OpenSSL 某个版本家族里有 FIPS”直接等同于“我们部署的二进制正在 validated module boundary 内运行”。validated provider、security policy、构建来源、安装过程和运行时配置全都重要。[4] 到这里,治理变成供应链现实:监管环境中的用户需要可重复的证据,包名带来的安慰感排在后面。

OpenSSL 4.0 让这件事变复杂,但复杂得有益。这个版本为 FIPS 安装增加 deferred FIPS self-test 支持,而 3.5 线仍是长期支持锚点。[1][2] 结果落在一张矩阵里:功能分支与 LTS 分支,validated provider 与非验证用途,发行版包与上游构建,应用 API 使用方式与 provider 策略。OpenSSL 在 2026 年的价值,正在于这些选择已经足够可见,能够被写进文档,而不是藏在一个单体库名后面。

治理按不同群体拆分

组织信号与技术信号同样重要。2024 年 7 月,OpenSSL 宣布新的治理安排,由两个独立、同等地位的组织支持 OpenSSL Mission:Foundation 主要面向非商业社区,Corporation 主要面向商业社区。旧的 OpenSSL Management Committee 被解散,Foundation 与 Corporation 各自选出董事会。同一公告还把 Business Advisory Committees 与 Technical Advisory Committees 描述为社区输入渠道。[5]

这类安排很容易被看成基金会文书,但这里关系到 OpenSSL 面对的不同人群。志愿用户需要信任、透明、代码访问、社区参与和连续性。商业用户需要支持合同、FIPS 服务、安全响应、路线图信心和迁移指导。2024 年 Corporation 年报把这层现实写进数字:2024 年 OpenSSL Library 下载量超过 1500 万次,商业支持总收入为 550 万美元,支持合同续约率为 88%,客户超过 100 家,并且使用覆盖 3.3、3.4 以及计划中的 3.5 工作的 time-based release model。[6]

这些数字无法证明项目完美,却说明它的资金与问责形状,比“关键基础设施靠气氛维护”健康得多。Corporation 报告还说,商业支持为大部分持续开发提供资金,并支持了 Foundation 的非商业活动。[6] 这套治理赌注在于,OpenSSL 可以同时服务商业与非商业社区,同时承认两类群体的激励并不相同。

OpenSSL 现在的位置

实际采用判断比“升级到 4.0”更窄。先看分支契约。若优先事项是获得支持到 2030 年 4 月的基线,特别是那些经不起频繁加密库迁移的产品化软件,应当使用 3.5 LTS。若能够有意识地测试不兼容 API 变更、已移除的 ENGINE 行为、SSLv3 移除、provider 配置和较新的功能表面,可以先行试点 4.0。除非供应商支持安排或平台政策给出明确理由,3.0 应按临近结束的分支处理。[1][2][7]

然后测试 provider 边界。加载你真正打算加载的 providers。把 legacy algorithms 作为明确例外。让 FIPS 部署始终连到 validated provider 及其 security policy。移除那些伪装 unsupported behavior 的本地补丁。审计代码里旧低层 API 与 ENGINE 假设,别让它们拖到紧急迁移阶段才显影。[2][3][4]

积极的治理信号在于,OpenSSL 现在给依赖负责人留下了足够多的公开结构,使他们能够作出这些判断:支持日期、LTS 标签、跨分支安全补丁发布、provider 文档、FIPS 验证规则、彼此独立的 Foundation 与 Corporation、咨询渠道,以及商业支持经济。[1][3][5][6][7] 证伪点会来自漂移:错过发布时钟、LTS 迁移变得含混、provider 行为仍难测试,或者 FIPS 指引追不上真实部署需求。

到目前为止,更有力的读法是:OpenSSL 在 2026 年的健康程度,适合用另一组问题衡量,而不只看某个头条算法。运维者能否选择一条分支,解释一套 provider 策略,记录一个 FIPS 边界,并知道谁对发布列车负责。关键开源加密库对用户的责任,就在这些地方。

来源

  1. OpenSSL Library,“Release Strategy”—— OpenSSL 4.0、3.6、3.5 LTS、3.4、3.3、3.2 和 3.0 LTS 的当前支持窗口。
  2. OpenSSL Library,“OpenSSL 4.0 Final Release - Live”(2026 年 4 月 14 日)—— 4.0 功能版本、移除项、不兼容变更、ECH 与 FIPS-install 更新、支持窗口,以及下一版说明。
  3. OpenSSL GitHub repository,README-PROVIDERS.md—— provider 模型、标准 providers、default/legacy/FIPS/base/null 行为,以及加载机制。
  4. OpenSSL GitHub repository,README-FIPS.md—— FIPS provider 模型、验证边界、validated-source 要求、fips.so,以及 enable-fips 安装指引。
  5. OpenSSL Library,“New Governance Structure and New Projects under the Mission”(2024 年 7 月 24 日)—— Foundation/Corporation 拆分、董事会结构、OMC 解散、咨询委员会与使命扩展。
  6. OpenSSL Corporation,Annual Report 2024—— 治理正式化、支持收入、下载规模、客户续约、发布模型、工程活动与支持经济。
  7. OpenSSL GitHub releases—— 2026 年 6 月横跨 4.0、3.6、3.5、3.4 和 3.0 分支的补丁发布,以及当前发布节奏证据。
  8. LWN.net,“OpenSSL 4.0.0 released”(2026 年 4 月 14 日)—— 独立发布说明,概括新算法与不兼容变更。
  9. OpenSSL Library,“OpenSSL at FOSDEM 24”(2024 年 3 月 28 日)—— 本文题图所用官方真实 FOSDEM 2024 OpenSSL 展台照片的来源页。