Com o kernel do Linux 6.4, está sendo introduzida a capacidade de que o chaveiro da máquina possa, opcionalmente, armazenar apenas chaves impostas pela CA.

Eric Snowberg, da Oracle, tem trabalhado nas restrições do conjunto de chaves de imposição de CA para que possa haver imposição da autoridade de certificação (CA) do conjunto de chaves da máquina. Snowberg explicado na série de patches:

“Antes da introdução do chaveiro da máquina, a maioria das distros simplesmente permitia que todas as chaves contidas no chaveiro da plataforma fossem usadas tanto para a verificação do kernel quanto do módulo. Isso foi feito por um patch fora da árvore. ainda mais e carregou todas essas chaves no chaveiro confiável secundário. Isso também permitiu que o proprietário do sistema adicionasse sua própria chave para uso do IMA.

Cada distro contém documentação semelhante sobre como assinar módulos do kernel e registrar a chave no MOK. O processo é bastante simples. Com a introdução do chaveiro da máquina, o processo permanece basicamente o mesmo, sem a necessidade de patches fora da árvore.

O chaveiro da máquina permitiu que as distros eliminassem os patches fora da árvore para assinatura do módulo do kernel.No entanto, deixa a desejar ao permitir que o usuário final adicione suas próprias chaves para o IMA. Atualmente, o chaveiro da máquina não pode ser usado como outra âncora de confiança para adicionar chaves ao chaveiro ima, pois a imposição de CA não existe no momento. Isso expandiria a lacuna de integridade atual. O Kconfig IMA_KEYRINGS_PERMIT_SIGNED_BY_BUILTIN_OR_SECONDARY indica que as chaves podem ser adicionadas aos chaveiros ima se a chave for validamente assinada por um certificado CA no chaveiro integrado do sistema ou secundário confiável. Atualmente, não há código que imponha o conteúdo de um certificado CA.

Esta série apresenta uma maneira de aplicar a CA com o chaveiro da máquina. Ele apresenta três maneiras diferentes de configurar o chaveiro da máquina. Novas opções do Kconfig são adicionadas para controlar os tipos de chaves que podem ser adicionadas a ele. A opção padrão permite todas as chaves MOK no chaveiro da máquina. Quando CONFIG_INTEGRITY_CA_MACHINE_KEYRING é selecionado, o bit X.509 CA deve ser verdadeiro e o uso da chave deve conter keyCertSign; qualquer outro campo de uso também pode ser definido. Quando
CONFIG_INTEGRITY_CA_MACHINE_KEYRING_MAX também é selecionado, o bit X.509 CA deve ser verdadeiro e o uso da chave deve conter keyCertSign. Com esta opção, o uso de digitalSignature não pode ser definido. Se uma chave não passar na verificação de restrição da CA, em vez de ir para o chaveiro da máquina, ela será adicionada ao chaveiro da plataforma. Com a capacidade de configurar o
chaveiro da máquina com restrições de CA, o código que impedia que o chaveiro da máquina fosse ativado com IMA_KEYRINGS_PERMIT_SIGNED_BY_BUILTIN_OR_SECONDARY foi removido.”

Novamente, conforme declarado, isso é estritamente opt-in com o comportamento padrão permitindo todas as chaves MOK no chaveiro da máquina. pull request foi enviado hoje para o kernel do Linux 6.4 e inclui esta nova funcionalidade.

“O chaveiro.machine, usado para Machine Owner Keys (MOK), adquiriu a capacidade de armazenar apenas CA forçada keys e coloque o restante no chaveiro.platform, separando assim as chaves de assinatura de código das chaves que são usadas para assinar certificados. Isso essencialmente desbloqueia o uso do chaveiro.machine como uma âncora de confiança para o IMA. É um recurso opcional, o que significa que as restrições adicionais não irão bloquear ninguém que não se importe com elas.”

Aprimoramentos do Linux em torno do manuseio da Integrity Measurement Architecture (IMA) continuam sendo uma grande área de interesse para as partes interessadas corporativas.

Categories: IT Info