A Linux 7.0 kernelben megszűnik az új kernelmodulok SHA-1 alapú aláírásának támogatása

A Linux 7.0 kernelben a fejlesztők megszűntetik az SHA-1 hash algoritmus használatát a modulok aláírásához, mert a hashütközések kockázata miatt már nem tekintik biztonságosnak. Fontos információ, hogy a már korábban SHA-1-gyel aláírt modulok betöltése továbbra is engedélyezett, csak új aláírást nem lehet létrehozni az SHA-1 hash algoritmussal.

A Linux 7.0 kernelben megszűnik az új kernelmodulok SHA-1 alapú aláírásának támogatása

Búcsú az SHA-1 alapú modulaláírástól

A Linux 7.0-rc1 kernelverzióra tervezett változtatást a fejlesztők azzal indokolják, hogy a SHA-1 sérülékenységei miatt reális lehet hashütközés, ami aláírási környezetben már nem vállalható kockázat. A fejlesztők azt is megjegyzik, hogy a nagy disztribúciók már régóta nem használják ezt a hash algoritmust, a mainline kernel pedig a 6.11 verzió óta alapértelmezetten a SHA-512-re állt át, ezért a váltás inkább egy régi örökség elhagyását jelenti, mintsem hirtelen irányváltást. A kompatibilitás kedvéért a betöltés ugyanakkor változatlan marad: a korábban SHA-1-gyel szignózott modulok továbbra is felmehetnek a rendszerre, csak az új modulokat nem lehet majd vele aláírni.

CMS-re vált a sign-file, tisztul a modulaláírás körüli kód

A SHA-1 elhagyása más változtatásokat is maga után vont az aláírási láncban. A scripts/sign-file aláíráskor mostantól csak az OpenSSL CMS API-ját használja, így kikerülhetett a korábbi, PKCS#7-es örökség, amelyet lényegében az SHA-1 algoritmushoz kötődő korlátok tartottak életben. Ezzel együtt egyszerűsödött a kód, és kevesebb speciális kerülőmegoldás maradt a régebbi OpenSSL-verziókhoz.

A modulrész további javításokat is kapott. A workqueue-átalakításokhoz igazodva a kód a system_dfl_wq-ra áll át, a modulkitömörítésnél megszűnik egy kézzel megírt memóriakezelési részlet, mert a standard segédfüggvényt használják, a szekciójelöléseknél pedig egységesebb, karbantarthatóbb annotációk jelennek meg. Emellett rendbe tették a kernel-doc figyelmeztetéseket, gondoskodtak arról, hogy a set_module_sig_enforced függvény csak akkor legyen deklarálva, ha a modulaláírás be van kapcsolva, és javítottak egy 32 bites gépeken előforduló gendwarfksyms nevű fordítási hibát is.

A pull request szerint a csomag már a linux-nextben szerepelt egy jó ideje, tehát elég ideje volt átmenni a szokásos előszűrésen. A levél egy linux-nextben felbukkanó ütközést is megemlít a keys-next ággal: a modsign területén érkező ML-DSA irány és a sign-file CMS-re szűkítése ugyanazt a forrást érinti, ezért összeolvasztásnál kézi feloldás kellett, amit a linux-nextben már elvégeztek. A modulal rendszer karbantartásánál közben marad a féléves fejlesztő váltási menetrend: 2026 első felében a bejelentés szerint Sami Tolvanen kezeli a modulrész pull requestjeit.