Assine um módulo após a compilação do kernel

Assine um módulo após a compilação do kernel

Eu construí um kernel em tmpfs e reiniciei.

Agora vejo uma mensagem quando compilo o módulo de terceiros,

NO SIGN [M] XXXX.ko

Como posso assiná-lo? O par de chaves gerado durante rpmbuildjá está perdido, eu acho

Responder1

Surpreendentemente, faltava documentação sobre isso. Encontrei este arquivo,assinatura do módulo.txt, que faz parte da documentação do kernel RHEL6. Neste documento é mostrado como gerar chaves de assinatura, assumindo que você deseja assinar todos os seus módulos como parte de uma compilação do kernel:

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

Também o artigo do Linux Journal intitulado:Módulos de kernel assinadostem alguns bons detalhes e etapas sobre como fazer isso, mas não consegui encontrar as ferramentas de espaço do usuário extract_pkeye moda que elas fazem referência.

Você pode querer dar uma olhadaSite de Greg Kroah, você poderá encontrar algo útil em uma de suas apresentações.

Referências

Responder2

Vá para o diretório fonte do kernel e faça (exemplo):

./scripts/sign-file sha512 ./signing_key.priv ./signing_key.x509 /lib/modules/3.10.1/kernel/drivers/char/my_module.ko

Verifique qual é o algoritmo de resumo que seu kernel está usando abrindo .config e lendo-o nos CONFIG_MODULE_SIGvalores de configuração:

CONFIG_MODULE_SIG=y
CONFIG_MODULE_SIG_ALL=y
CONFIG_MODULE_SIG_SHA512=y
CONFIG_MODULE_SIG_HASH="sha512"

informação relacionada