Encontrei exatamente o mesmo problema que aqui, mas não consigo recuperar usando a solução proposta.
Eu segui a solução recomendada e tudo parece bem, mas ainda assim o módulo não pôde ser carregado.
A chave parece carregada corretamente:
$ sudo mokutil --list-enrolled
[key 1]
[…]
[key 2]
SHA1 Fingerprint: 0f:6f:8e:7a:39:d0:27:33:7d:eb:e0:62:cf:38:b1:af:4c:82:98:c4
Certificate:
[…]
Issuer: CN=modssign
[…]
X509v3 extensions:
X509v3 Subject Key Identifier:
83:83:25:5B:D6:6E:A0:BB:87:44:A9:8C:EA:47:58:DD:07:B9:A6:C7
X509v3 Authority Key Identifier:
keyid:83:83:25:5B:D6:6E:A0:BB:87:44:A9:8C:EA:47:58:DD:07:B9:A6:C7
[…]
E o módulo está assinado com esta chave:
$ sudo modinfo vboxdrv
filename: /lib/modules/3.16.0-77-generic/misc/vboxdrv.ko
version: 5.1.0 r108711 (0x00260000)
license: GPL
description: Oracle VM VirtualBox Support Driver
author: Oracle Corporation
srcversion: 32F3C607C8086AE6187D18B
depends:
vermagic: 3.16.0-77-generic SMP mod_unload modversions
signer: modssign
sig_key: 83:83:25:5B:D6:6E:A0:BB:87:44:A9:8C:EA:47:58:DD:07:B9:A6:C7
sig_hashalgo: sha256
Mas o módulo ainda não conseguiu inserir:
$ sudo modprobe vboxdrv
modprobe: ERROR: could not insert 'vboxdrv': Required key not available
Você tem alguma ideia? Eu pensei que tinha seguido corretamente todas as etapas (incluindo a inscrição da nova chave na inicialização, etc)
Mais informações técnicas:
Agradecemos antecipadamente por suas dicas!
Editar de 2016-08-23:
Acho que o problema se deve ao fato de meu certificado nunca ser carregado pelo kernel na inicialização.
O certificado carregado pelo kernel é 4a94
:
$ sudo dmesg | grep 'Loaded X.509 cert'
[ 1.126207] Loaded X.509 cert 'Magrathea: Glacier signing key: 4a94aff5eff7b539906b3f2a9d0cca00dac4cbb0'
E todos os módulos estão bem carregados porque estão assinados com essa chave específica ( 4a94
):
$ sudo modinfo ip_tables | grep sig_key
sig_key: 4A:94:AF:F5:EF:F7:B5:39:90:6B:3F:2A:9D:0C:CA:00:DA:C4:CB:B0
Mas mesmo que o meu certificado seja mostrado em mokutil --list-enrolled
, parece que não foi carregado durante a inicialização.
Como eu poderia adicionar meu certificado ao kernel na seqüência de inicialização? Eu tenho que reconstruir um novo kernel com o meu certificado?