Swift 团队发布两个新的服务器端包
Swift 团队最近发布了两个新的服务器端包,旨在为开发者提供更快、更安全的 X.509 证书实现,包括其底层的 ASN.1 DER 编码/解码机制。
主要观点
- 替换现有实现:这两个新包将逐步替换基于 BoringSSL 的现有 X.509 实现,该实现是用 C 语言编写的,并包含在
swift-nio-ssl包中。新实现使用 Swift,预计将为基于 TLS 的应用程序带来显著的性能提升,同时提高内存安全性。 - Swift Certificate 包:该包支持序列化、反序列化、创建和交互 X.509 证书,使开发者能够创建证书验证器、身份验证机制,并与证书颁发机构进行交互。包中包括默认验证器和多个内置验证策略。
- ASN.1 包:第二个包提供对 ASN.1 的支持,这是使用 X.509 证书的必要条件。它包括常见 ASN.1 货币类型的实现以及 DER 序列化和反序列化。ASN.1 是一种非常灵活但复杂的格式,允许递归引用、默认值和可选值等。
关键信息
- X.509 证书的重要性:服务器端应用程序经常使用 X.509 证书。大多数网络服务器至少会加载一个 TLS 证书来保护其网络连接。更复杂的用例包括使用 ACME 动态配置 TLS 证书和使用 x5c 验证身份。
- ASN.1 的安全性:Swift 团队强调,使用 Swift 实现 ASN.1 解析器的安全性尤为重要,因为 DER 解析器的主要目标是解析不受信任的用户输入。ASN.1 解析中的内存安全漏洞通常会导致高严重性问题。
重要细节
- X.509 的应用:X.509 是公钥基础设施和证书的基础,广泛用于许多互联网协议,如 TLS/SSL。典型用例包括通过证书颁发机构验证参与者身份、签署文件以证明其作者身份等。
- ASN.1 的定义:ASN.1 是一种抽象语言,用于以语言无关的方式定义文件格式和数据结构。ASN.1 接口定义可以自动翻译成多种编程语言,并使用基于一组编码规则(如 BER、DER 等)的二进制格式。
这两个新包的发布标志着 Swift 在服务器端生态系统中的进一步发展,特别是在处理 X.509 证书和 ASN.1 数据时提供了更高的性能和安全性。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。