一套叉子

主要观点:curl 可使用 11 种不同的 TLS 库构建,其中 6 种是 OpenSSL 或其分支。介绍了 SSLeay、OpenSSL、LibreSSL、BoringSSL、AmiSSL、QuicTLS 和 AWS-LC 等 TLS 库的起源、特点及与 curl 的适配情况。
关键信息

  • 1998 年 spring 用 SSLeay 实现 curl 的首个 HTTPS 支持,后 SSLeay 被弃,OpenSSL 从其灰烬中创建并被 curl 支持。
  • LibreSSL 因 Heartbleed 事件创建,在 QUIC 等方面表现不佳。
  • BoringSSL 由 Google 在 Heartbleed 期间创建,在新 TLS 发明方面领先。
  • AmiSSL 是为 AmigaOS 构建的 OpenSSL 分支。
  • QuicTLS 因 OpenSSL 拒绝提供 QUIC API 而创建。
  • AWS-LC 是由 Amazon 维护的 BoringSSL 分支,性能表现出色。
    重要细节
  • OpenSSL API 大且文档稀疏,使用中常有问题,自 3 版本后被批评性能下降。
  • LibreSSL 构建有本地补丁,在 QUIC 等方面落后。
  • BoringSSL 清理了原型和变量类型,引领 QUIC API 推动。
  • AWS-LC 频繁发布,性能优于 OpenSSL,API 与 BoringSSL 不同。
  • 各分支有各自特点和版本变化,curl 用相同源代码并在 CI 中验证构建,需关注分支逐渐分离的情况。未来难以预测,需等待观察。
阅读 14
0 条评论