内核编译后对模块进行签名

dai*_*isy 6 linux security kernel centos signature

我已经在 tmpfs 中构建了一个内核,然后我重新启动了。

现在我在编译 3rd 方模块时看到一条消息,

NO SIGN [M] XXXX.ko

我怎样才能得到它的签名?期间生成的密钥对rpmbuild已经丢失了我猜

slm*_*slm 10

这令人惊讶地缺乏文档。我找到了这个文件module-signing.txt,它是 RHEL6 内核文档的一部分。在本文档中,它展示了如何生成签名密钥,假设您希望将所有模块作为内核构建的一部分进行签名:

cat >genkey <<EOF
%pubring kernel.pub
%secring kernel.sec
Key-Type: DSA
Key-Length: 512
Name-Real: A. N. Other
Name-Comment: Kernel Module GPG key
%commit
EOF
make scripts/bin2c
gpg --homedir . --batch --gen-key genkey
gpg --homedir . --export --keyring kernel.pub keyname |
 scripts/bin2c ksign_def_public_key __initdata >crypto/signature/key.h
Run Code Online (Sandbox Code Playgroud)

另外,从Linux杂志的文章,题为:签名内核模块对如何做这件一些好的细节和步骤,但我无法找到用户空间的工具,extract_pkey并且mod它引用。

您可能想浏览一下Greg Kroah 的网站,您可能会在他的一个演示文稿中找到一些有用的信息。

参考