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 rpmbuild
já 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_pkey
e mod
a 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_SIG
valores de configuração:
CONFIG_MODULE_SIG=y
CONFIG_MODULE_SIG_ALL=y
CONFIG_MODULE_SIG_SHA512=y
CONFIG_MODULE_SIG_HASH="sha512"