主要观点:作者好奇数据库中使用的 TLS 库选择受 OpenSSL 安全漏洞影响的程度,于是检查了一些开源数据库的代码。
关键信息:
- 可视化结果:OpenSSL 仍是最常见的选择,部分数据库直接使用 OpenSSL,LibreSSL 未被广泛采用,一些语言有自己的 TLS 实现。
- 思考:作者了解到 Java 和 Go 有自己的 TLS 实现,netty 偏爱 OpenSSL 有原因,ScyllaDB 选择 GnuTLS 是因为对 OpenSSL 代码质量的担忧。
- 建议:优先使用 RPC/网络/事件循环提供的 TLS 实现或语言的原生 TLS 实现,否则使用 libtls(可切换到 libretls),必须直接使用 OpenSSL 时使用 BoringSSL。
- 表格结果:列举了多个数据库使用的 TLS 提供程序,包括 MySQL 的 OpenSSL、PostgreSQL 的 OpenSSL 等。
重要细节:详细说明了每个数据库使用的 TLS 库及其来源,如 MySQL 通过 ssl.cmake 和 rpm spec 使用 OpenSSL 等。还提到了一些其他的 TLS 实现库及其适用场景,如 BearSSL 适合嵌入式平台等。
See discussion of this page on Reddit, HN, and lobsters. 表示可在 Reddit、HN 和 lobsters 上查看关于此页面的讨论。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。