OpenSSL 3.0加入新的FIPS模块,并弃用大量API

经过三年开发,OpenSSL 3.0现在终于正式推出,这个版本的更新包括了一个重要的联邦信息处理标准(FIPS)模块并且提供Providers架构,同时弃用不少老旧API,值得注意的是,OpenSSL 3.0将转换使用Apache License 2.0开源授权,但旧版本仍适用OpenSSL和SSLeay双授权。

OpenSSL包含了SSL和TLS协议的开源实例,能够用来保护互联网的通信安全,受目前网络应用程序,像是电子邮件、即时通信或是VPN等采用,主要的操作系统包括Windows、Linux、MacOS和Android也都在使用。

OpenSSL 3.0加入了许多OpenSSL应用程序开发人员,应该要注意的新概念,这些新概念详述在crypto文件中,像是Providers架构,在OpenSSL中的Provider为算法实例的集合,用户要使用一种算法,就必须至少加载一个包含该算法的Provider,除了使用OpenSSL内置的,开发者也可以使用第三方的Provider,当用户未特别指定,则OpenSSL默认使用内置Provider。

OpenSSL 3.0中的一个重要新功能,便是加入新的FIPS模块,FIPS是美国联邦政府制定给政府机构承承包商的公开标准,虽然FIPS中的大部分标准,来自于ANSI、IEEE或ISO等通用标准,但是其中也包含一些美国自行制定的加密标准。

官方提到,他们的实验室正在测试FIPS模块,并且准备通过FIPS 140-2验证,预计将会在明年取得证书。FIPS 140-2是一项美国政府标准,用来定义信息产品中,加密模块的最低安全需求。在OpenSSL 3.0中,官方特别在FIPS模块使用上下功夫,让开发者可以像是修改文件一样,简单地使用新的FIPS模块。

另外,OpenSSL 3.0的向后兼容性也值得注意,官方表示,OpenSSL 3.0是一个主要版本,并不完全向后兼容过去的版本。大多数使用OpenSSL 1.1.1的应用程序,只要重新编译都可以正常运行,但是开发者会看到许多已弃用API的编译警告。

许多应用程序需要更改程序代码,来避免出现弃用警告,而部分应用程序可能需要进行更改,才能编译和正常运行。然而已弃用的API最终会从OpenSSL未来的某个版本删除,因此官方呼吁开发者应该更新应用程序使用替代API。