
软件介绍
OpenSSL是一个功能丰富的安全开源工具箱,主要包含了SSL协议实现(包括SSLv2、SSLv3和TLSv1)、大量软算法(对称/非对称/摘要)、大数运算、非对称算法密钥生成、ASN.1编解码库、证书请求(PKCS10)编解码等等功能。软件跨平台性能好,支持Windows、Mac等多个平台。
主要变化
主要版本
开发者可以从这里下载 OpenSSL 3.0,并升级你的应用程序使之兼容。OpenSSL 3.0 是一个大版本升级,并不完全向后兼容以前的版本。大多数使用 OpenSSL 1.1.1 的应用程序仍然可以正常工作,只是需要重新编译(可能会有关于使用废弃的 API 的编译警告)。还有一些不能完全兼容的应用可能需要进行修改才能正确编译和使用。
如果应用程序需要利用 OpenSSL 3.0 中的一些新功能(例如 FIPS 模块),也需要对应用进行更改。
许可证变更
在以前的版本中,OpenSSL 是在 OpenSSL 和 SSLeay 下获得许可的。从 OpenSSL 3.0 开始,已经过渡到了 Apache License 2.0。旧的 OpenSSL 和 SSLeay 许可证仍然适用于旧版本(1.1.1 和更早的版本)。
Providers 和 FIPS 支持
OpenSSL 1.1.1 的主要变化之一是引入了 Providers(提供者) 概念。Providers 聚集在一起并提供可用的算法实现。使用 OpenSSL 3.0,可以以编程方式或通过配置文件指定你希望用于任何给定应用程序的 Providers。OpenSSL 3.0 标配 5 个不同的 Providers。随着时间的推移,第三方可能会分发可以接入 OpenSSL 的其他 Providers。通过 Providers 提供的所有算法实现都可以通过“高级” API 访问,无法使用 “低级 API” 访问它们。
目前可用的一个标准 Providers 是 FIPS Providers。这使得 FIPS 验证的加密算法可用。FIPS Providers 默认处于禁用状态,需要在配置时使用enable-fips选项显式启用。如果启用,除了其他标准 Providers 之外,还会构建和安装 FIPS Providers,不需要单独的安装过程。
低级别的 API
OpenSSL 历来提供两套用于调用加密算法的 API:“高级” API(如 EVP API)和 “低级” API。高级别的 API 通常被设计成适用于所有算法类型。而 “低级” API 则是针对特定的算法实现的。长期以来,OpenSSL 开发团队一直不鼓励使用低级别的 API。在 OpenSSL 3.0 中,这一点变得更加明确。所有这些低级别的 API 都已经被废弃了。你仍然可以在你的应用程序中使用它们,但你可能会在编译过程中开始看到弃用警告。废弃的 API 可能会从未来的 OpenSSL 版本中删除,所以强烈建议开发者更新你的代码,以使用高级 API 来代替。
版本管理
OpenSSL 的版本管理已经随着 OpenSSL 3.0 的发布而改变,新的版本管理采用下方这样的格式:
MAJOR.MINOR.PATCH(主版本。次版本。补丁)
对于 OpenSSL 1.1.1 及以下版本,不同的补丁级别是由版本号后面的字母表示的,这一方法将不再使用,而是用版本号中的最后一个数字来表示补丁级别。第二个数字(MINOR)的变化表明可能已经添加了新的功能,但与相同 MAJOR 编号的 OpenSSL 在 API 和 ABI 上是兼容的。如果 MAJOR 数字发生变化,则不保证 API 和 ABI 的兼容性。
软件官网
https://www.openssl.org
软件综述
OpenSSL是一款功能强大的开源密码库,以其安全可靠、易用性好、免费等特点而受到广泛欢迎。OpenSSL提供了各种各样的密码学算法和协议,包括加密、哈希、签名、证书和密钥管理等,可以满足各种安全需求。
OpenSSL主要用于服务器和网络安全,如安全套接字层(SSL)和传输层安全性(TLS)协议。它可以帮助开发者在应用程序中实现安全通信,确保数据的完整性和机密性。OpenSSL也广泛用于创建数字证书,验证应用程序的真实性。
OpenSSL被广泛应用于各种操作系统和平台,包括Linux、Windows、macOS、Android和iOS等。它支持多种编程语言,包括C、C++、Java、Python和Perl等,方便开发者使用。此外,OpenSSL还提供了详细的文档和示例,帮助开发者快速上手并应用到实际项目中。
总体而言,OpenSSL是一款非常优秀的密码库,有着广泛的应用领域和丰富的功能,是非常值得推荐的。