签名的内核模块不被接受

签名的内核模块不被接受

我使用 MOK 签署了一个内核模块:

$ sudo kmodsign sha512 \
  /var/lib/shim-signed/mok/MOK.priv \
  /var/lib/shim-signed/mok/MOK.der \
  ./ipu6-drivers/0.0.0/5.19.0-23-generic/x86_64/module/intel-ipu6.ko

并且 modinfo 报告它已签名:

...
name:           intel_ipu6
vermagic:       5.19.0-23-generic SMP preempt mod_unload modversions 
sig_id:         PKCS#7
signer:         ubuntu Secure Boot Module Signature key
sig_key:        63:07:BC:9E:44:51:90:19:4E:DF:D6:E3:22:C9:6A:04:A0:BC:D3:C6
sig_hashalgo:   sha512
signature:      3B:29:E9:60:C5:DB:F8:A1:03:5A:2B:54:D1:8A:90:19:BB:0A:0A:46:
...

但是当我尝试使用 modprobe 加载模块时,我得到:

Loading of unsigned module is rejected

在我的内核日志中。

为什么内核和 modinfo 对所签名的模块有不同的看法?

该密钥也会显示在mokutil --list-enrolled输出中。

答案1

这是因为我的内核模块位于两个不同的位置:

/var/lib/dkms/ipu6-drivers/0.0.0/5.19.0-23-generic/x86_64/module/intel-ipu6.ko
/lib/modules/5.19.0-23-generic/updates/dkms/intel-ipu6.ko

...而我只对其中一个进行了签名,而这个签名并不是 modprobe 找到的那个。

相关内容