Menu Close

4.8. 使用私钥签名内核模块

如果启用了 UEFI 安全引导机制,用户可以通过加载签名的内核模块来获取对其系统的增强安全优势。下面的部分描述了如何使用私钥为内核模块签名。

先决条件

步骤

  • 使用参数执行 sign-file 工具,如下例所示:

    # /usr/src/kernels/$(uname -r)/scripts/sign-file sha256 my_signing_key.priv my_signing_key_pub.der my_module.ko

    sign-file 计算并直接将签名附加到内核模块文件中的 ELF 镜像中。modinfo 实用程序可用于显示有关内核模块签名的信息(如果存在)。

    注意

    附加的签名不包含在 ELF 镜像部分,不是 ELF 镜像的一个正式部分。因此,readelf 等实用程序将无法在内核模块中显示签名。

    您的内核模块现在可以被加载。请注意,您签名的内核模块也可以在禁用 UEFI 安全引导的系统或非 UEFI 系统中加载。这意味着您不需要同时提供内核模块的签名和未签名版本。

    重要

    在 RHEL 9 中,密钥对的有效性日期很重要。这个密钥没有过期,但必须在其签名密钥的有效周期内对内核模块进行签名。sign-file 实用程序不会提醒您这样做。例如,一个只在 2021 年有效的密钥可用于验证在 2021 年使用该密钥签名的内核模块。但是,用户无法使用该密钥在 2022 年签发内核模块。