Linux 7.0 内核正式移除了对使用 SHA-1 算法为内核模块签名的支持,原因是该算法已被广泛认为不够安全。不过,已经用 SHA-1 签过名的旧模块仍然可以正常加载。

这项改动作为模块子系统更新的一部分,现已合并进 Linux 7.0 分支,标志着内核在加强供应链安全和签名机制方面又往前走了一步。

其实早在几个月前,社区就已讨论并提交了相关补丁,计划彻底弃用 SHA-1 模块签名。当时,SHA-1 在主线内核中已被标记为“弃用”,其哈希碰撞风险也在安全领域得到充分验证。主流 Linux 发行版早已转向更安全的哈希算法,而从内核 6.11 版本开始,默认的模块签名算法也已切换为 SHA-512。

维护者在合并说明中简洁地解释了这次调整:SHA-1 存在可被利用的碰撞漏洞,目前没有任何主流发行版还在用它签模块;而且自 v6.11 起,内核默认就用 SHA-512 了。因此,继续支持 SHA-1 已无必要。

值得注意的是,虽然以后不能再用 SHA-1 给新模块签名,但系统仍允许加载过去已签名的 SHA-1 模块——这在安全升级和向后兼容之间留出了缓冲空间。

此次模块相关的变更顺利合入 Linux 7.0,未遇到明显阻力。它与近期调度器、图形驱动、IO 子系统等方面的改进一道,共同体现了 Linux 7.0 在性能与安全两个方向上的同步推进。