无效的Linux切换回OpenSSL

2021-02-28 19:40:03

对于大多数用户来说,应该没有明显的变化。如果您安装了Void不再提供的任何软件包,或者您的系统对LibreSSL具有明显的依赖性,那么您当然需要采取措施以确保您的系统在切换后仍能正常运行。

如果您遇到任何问题,请随时与我们联系!您可以在GitHub上打开anissue,或在https://freenode.net上的#voidlinux频道中向我们发送消息。

关于切换到OpenSSL的讨论始于2020年4月12日在void-linux / void-packages#20935上发布的请求注释(RFC),此后,大多数Void维护者都表示支持此举。切换的原因如RFC中所列:

因为大多数软件都以OpenSSL为目标,所以Void将不再需要维护(在某些情况下非常复杂)补丁以支持LibreSSL。 OpenSSL API的复杂性使此类修补变得既繁琐又冒险,并且错误可能导致运行时错误或安全性问题-据我们所知,我们已经避免了这些错误,但这需要大量的努力。

由于上述原因,切换到OpenSSL可以减少在需要类似OpenSSL的库的程序包上花费的时间和精力。这尤其值得注意,因为使用LibreSSL的大多数其他发行版都已删除了该发行版,因此分配工作量的人不多。

Alpine暂时切换为LibreSSL,并于3.9.0版本于2019年1月切换回OpenSSL。

为了进一步了解,LWN在今年年初涵盖了Linux上的LibreSSL主题。这篇文章还涵盖了OpenSSL项目在Heartbleed之后获得的关注和改进,这是Void最初转向LibreSSL的主要原因之一。

举一个期望OpenSSL的软件包引起的额外工作的例子,为了正确地支持LibreSSL,Void对Qt5的版本进行了大量修补,此外,刚刚发布的Qt6也需要投入大量精力进行修补和维护才能使用LibreSSL。这种努力的上游。

同时,由于未经过完全测试,其他软件在使用LibreSSL时可能功能有限或处于边缘状态。一个例子是Python,因为它依赖于SSL库提供的内容,所以它在运行程序可用的密码方面受到限制-他们甚至考虑在将来放弃对LibreSSL的任何支持。另一个例子是OpenVPN,我们收到了有关LibreSSL(void-linux / void-packages#23413)连接问题的错误报告,这要求我们默认情况下将软件包切换为使用Mbed TLS,从而对生成的软件包造成一些限制。切换到OpenSSL后,现在将以最广泛部署和测试的配置提供OpenVPN软件包,因此不太可能再次出现类似的兼容性问题。

不幸的是,此举要求我们删除一些依赖于OpenSSL 1.0.1 API的软件包。尽管LibreSSL保持了与​​该旧版API的兼容性,但现代的OpenSSL放弃了它。

libtls库是OpenSSL未提供的LibreSSL的一个重要功能,它的目的是成为一个难于滥用的接口,以确保默认情况下的Web安全通信和不易滥用。我们附带的某些软件包取决于它,因此已经完成了将其独立版本打包在void-linux / void-packages#28732中的工作。

Void Linux团队感谢OpenBSD社区在libressl-portable上的工作,我们从他们的工作中受益匪浅。 Void继续打包其他出色的OpenBSD软件,包括OpenSSH和signify,这是我们签名实时图像的首选工具。

总之,我们希望切换到OpenSSL可以减轻维护费用,为用户提供相同的可靠体验,并改善部分软件包的功能。期待3月5日之后的某个时间发布更新!