- O Kernel Linux 7.0-rc1 recebeu uma série de 27 patches que implementam o protocolo de segurança SPDM totalmente em Rust.
- A nova biblioteca permite que o sistema autentique e ateste a integridade de dispositivos de hardware, como NVMe e placas PCIe, antes de habilitá-los.
- O uso de Rust é estratégico para processar especificações complexas de hardware, eliminando riscos de bugs de memória que existem na linguagem C.
- Uma das inovações é o suporte à re-autenticação automática após o sistema retornar do modo de suspensão, garantindo que o hardware não foi trocado fisicamente.
- O projeto está em fase de RFC (v3), com forte tendência de ser integrado como um dos pilares de segurança do Kernel Linux 7.0 em 2026.
Uma coalizão de desenvolvedores liderada por Alistair Francis (Western Digital), Jonathan Cameron (Huawei) e Lukas Wunner (Intel) submeteu uma série massiva de 27 patches para o Kernel Linux 7.0-rc1, introduzindo uma implementação em Rust do protocolo SPDM (Security Protocol and Data Model). O objetivo é elevar a segurança do sistema ao tratar dispositivos de hardware (como placas NVMe e aceleradores PCIe) como entidades potencialmente maliciosas até que sua identidade e integridade sejam comprovadas.
Esta iniciativa é um dos pilares do Kernel Linux 7.0-rc1, que como vimos recentemente no SempreUpdate, marca o início de uma expansão profunda da linguagem Rust para subsistemas críticos do núcleo.
O que isso significa na prática
Tradicionalmente, o Kernel Linux confia no hardware que está conectado fisicamente ao computador. No entanto, com a ascensão de ataques a nível de firmware, essa confiança tornou-se uma vulnerabilidade. O SPDM permite que o kernel realize a autenticação e atestação de dispositivos.
O uso de Rust para essa tarefa é o grande diferencial. Como as especificações do SPDM são extremamente complexas (mais de 250 páginas) e envolvem o processamento de dados binários vindos de fontes não confiáveis (o hardware), um erro de lógica em C poderia abrir as portas para um exploit de memória. O Rust elimina essa categoria de erro por design, garantindo que o “aperto de mão” entre o sistema e o hardware seja matematicamente seguro.
A implementação do SPDM em Rust complementa esforços anteriores de blindagem, como a criptografia de links PCIe introduzida no Kernel 6.19, reforçando a proteção contra ataques físicos e acessos maliciosos à memória RAM.
Detalhes da implementação
A série de patches implementa um “requester” SPDM completo. Entre os destaques técnicos estão:
- Abstração de Dados Não Confiáveis: Introduzida por Benno Lossin, a biblioteca utiliza o tipo
Untrusted<T>, que impede o acesso direto aos dados do hardware até que eles passem por uma validação rigorosa (Validate). - Integração CMA (Component Measurement and Authentication): O kernel agora pode autenticar dispositivos PCIe logo durante a enumeração no boot.
- Recuperação e Resumo: O suporte em Rust garante que, após um estado de suspensão ou reset do barramento, o dispositivo seja re-autenticado antes que os drivers voltem a operar, fechando janelas de ataque de substituição de hardware.
| Funcionalidade | Implementação C (Experimental) | Nova Implementação Rust (7.0-rc1) |
| Segurança de Memória | Manual (Risco de Buffer Overflow) | Nativa (Garantida pelo Rust) |
| Complexidade de Parsing | Difícil manutenção | Estruturas robustas e seguras |
| Interface de Usuário | Limitada | Exposição via Netlink e Sysfs |
O uso de Rust para gerenciar a segurança do hardware não é um caso isolado; essa tendência de modernização também está presente no refinamento do suporte às GPUs Blackwell da NVIDIA, onde o código Rust garante uma inicialização mais limpa e estável.
Curiosidades e bastidores da discussão
A discussão na LKML gerou debates intensos sobre onde deve ocorrer a verificação. Jason Gunthorpe argumentou que o kernel deveria apenas verificar se o dispositivo é o “mesmo” que foi aprovado anteriormente, deixando a verificação pesada de certificados para o espaço de usuário (userspace) via Netlink.
Por outro lado, Lukas Wunner defendeu que a verificação em kernel é vital para casos de retomada de suspensão (resume), onde o espaço de usuário ainda está “congelado”, mas os drivers já precisam acessar o hardware de forma segura. A escolha pelo Rust foi elogiada por transformar um componente crítico e propenso a falhas em um dos pilares de segurança mais robustos do Kernel Linux 7.0-rc1.
Quando isso chega no meu PC?
Embora o Rust não seja mais considerado experimental, esta implementação SPDM ainda está em fase de RFC (Request for Comments) v3, o que significa que passará por refinamentos antes de ser mesclada na árvore estável. Se o ritmo de desenvolvimento for mantido, poderemos ver o suporte completo e ativado por padrão nas distribuições corporativas e de segurança no segundo semestre de 2026, utilizando a base do Kernel Linux 7.0.
