Novas APIs de criptografia AES chegam ao Linux 7.3 prometendo mais performance e menos código duplicado. Entenda o que muda e o que esperar.
O kernel Linux 7.3, que deve ser lançado ainda em 2026 e possui grandes chances de se tornar a versão LTS (Long Term Support) deste ano, acaba de receber uma mudança significativa em sua infraestrutura de criptografia.
O engenheiro do Google Eric Biggers, conhecido por suas contribuições de performance ao subsistema de criptografia do kernel, integrou um conjunto de novas APIs de biblioteca para os modos de criptografia AES mais utilizados no kernel.
Mas o que isso significa na prática ? Mais performance, menos código repetido e uma base mais sólida para otimizações futuras. Vamos entender todos os detalhes.
O que mudou no Linux 7.3 ?
Novas APIs para os principais modos AES
Foram adicionadas as APIs de biblioteca para praticamente todos os modos de operação AES empregados pelo kernel:
Antes dessa mudança, os desenvolvedores que precisavam usar esses modos AES dentro do kernel precisavam recorrer às APIs crypto_skcipher ou crypto_aead.
Por que as APIs antigas eram problemáticas ?
Eric Biggers explicou no pull request que as APIs existentes são "difíceis de usar e ineficientes".
A falta de suporte adequado em biblioteca para esses modos era considerada a principal lacuna na infraestrutura de criptografia do kernel.
Na prática, isso significava que:
- Desenvolvedores precisavam escrever muito código "cola" (glue code) para integrar os modos AES.
- A performance ficava aquém do potencial, especialmente em arquiteturas com aceleração por hardware (como AES-NI da Intel/AMD).
- Havia duplicação de código entre diferentes subsistemas do kernel.
Produto Afiliado
Por que este é o adaptador que você precisa ?
"Ótimo adaptador, excelente qualidade." – Avaliação de cliente.
Anker Adaptador otg USB-C para USB 3.0 pacote com 2, adaptador usb tipo c -> https://link.amazon/B0jcKV5Qa
Os benefícios diretos das novas APIs
1. Mais performance no horizonte
Embora a mudança imediata seja a adição das APIs em si, o verdadeiro ganho de performance virá nos ciclos seguintes. O plano é migrar o código otimizado por arquitetura (aqueles em arch/*/crypto/aes*) para dentro dessas novas bibliotecas.
Isso eliminará uma grande quantidade de código redundante e permitirá que todos os usuários desses modos AES se beneficiem das otimizações específicas de cada arquitetura (x86, ARM, etc.) sem esforço adicional.
"A maioria dos benefícios — redução de linhas de código, melhorias de performance — virá em ciclos posteriores, quando o código otimizado por arquitetura for migrado para a biblioteca e os usuários das APIs crypto_skcipher e crypto_aead forem atualizados para usar as novas APIs."
— Eric Biggers, Google
2. Redução drástica de código duplicado
O patch series que implementa essas mudanças já mostra o impacto: 937 linhas adicionadas no arquivo crypto/aes.c e dezenas de arquivos em todo o kernel sendo convertidos para usar as novas bibliotecas.
Subsistemas como o fscrypt (criptografia de arquivos), macsec (segurança em redes), SMB (compartilhamento de arquivos), BPF (programas eBPF com a criptografia) e Wi-Fi (mac80211) já estão sendo migrados.
3. APIs mais limpas e documentadas
As novas APIs foram completamente documentadas e seguem um design consistente para todos os modos. Isso facilita a vida dos desenvolvedores de kernel que precisam implementar criptografia em seus subsistemas.
O que vem por aí ?
Migração gradual ao longo de vários ciclos
Eric Biggers enfatizou que não era viável fazer tudo em um único ciclo. Os modos AES são interligados e dependem uns dos outros, especialmente no código otimizado por arquitetura. Por isso, a estratégia é:
- 1. Linux 7.3 — Adicionar as novas APIs de biblioteca e integrá-las à API tradicional de criptografia (com prioridade 110 por enquanto).
- 2. Linux 7.4 em diante — Converter gradualmente os usuários das APIs antigas para as novas e migrar o código otimizado por arquitetura.
Testes e validação
As novas APIs já estão cobertas pelos autotestes da API tradicional de criptografia (crypto_skcipher e crypto_aead), garantindo que funcionam corretamente em sistemas que não possuem código otimizado por arquitetura.
Contexto: AF_ALG e a restrição do acesso userspace
Vale mencionar que o Linux 7.3 também traz mudanças no AF_ALG — a interface que permitia que programas em espaço de usuário chamassem diretamente as APIs de criptografia do kernel.
O AF_ALG foi depreciado no Linux 7.2 e, no 7.3, está sendo ainda mais restringido com um novo sysctl knob chamado af_alg_restrict. O motivo ? Segurança — o AF_ALG provou ser uma "massive attack surface" (superfície de ataque massiva).
Isso significa que as novas APIs AES são voltadas exclusivamente para uso dentro do kernel, enquanto o acesso de usuário à criptografia do kernel está sendo progressivamente desativado por questões de segurança.
Perguntas Frequentes (FAQ)
1. As novas APIs AES vão melhorar a performance do meu sistema imediatamente após atualizar para o Linux 7.3?
Não imediatamente. O Linux 7.3 adiciona as novas APIs de biblioteca, mas os ganhos reais de performance virão nos ciclos seguintes (7.4 em diante), quando o código otimizado por arquitetura for migrado para dentro dessas bibliotecas. A boa notícia é que a fundação já está pronta.
2. Eu, como usuário comum, preciso fazer algo para aproveitar as novas APIs?
Não. Essa é uma mudança interna do kernel, voltada para desenvolvedores e subsistemas do kernel. Usuários finais se beneficiarão automaticamente quando as otimizações forem implementadas em versões futuras. Apenas mantenha seu kernel atualizado.
3. O que acontece com o AF_ALG? Posso continuar usando criptografia do kernel a partir do userspace?
O AF_ALG está sendo restringido no Linux 7.3 com um novo sysctl knob (af_alg_restrict). Ele já foi depreciado no Linux 7.2 por razões de segurança. A recomendação é que aplicações em userspace utilizem bibliotecas criptográficas em espaço de usuário (como OpenSSL, libsodium, etc.) em vez de depender do AF_ALG.
Checklist: Como aproveitar as novas APIs AES no Linux 7.3
Copie e cole este checklist para acompanhar a migração:
Conclusão


Nenhum comentário:
Postar um comentário