Principais conclusões
- A conformidade com a norma FIPS depende de todo o ambiente do sistema operacional, e não apenas da instalação de uma biblioteca criptográfica.
- Os “contêineres FIPS” não estão em conformidade, a menos que o kernel do host esteja sendo executado no modo FIPS validado.
- Módulos de criptografia adicionados posteriormente costumam gerar instabilidade e complexidade em comparação com a criptografia nativa do sistema operacional.
Alcançar a conformidade com a norma FIPS em ambientes Linux costuma ser mais complicado do que parece. Muitas organizações dependem de módulos criptográficos de terceiros ou imagens de contêiner que alegam oferecer suporte à norma FIPS, mas essas configurações podem, na verdade, não atender aos requisitos do programa de validação FIPS 140-3 ou oferecer verdadeira conformidade com a norma FIPS 140-3.
A diferença entre implementações nativas do FIPS e criptografia adicional pode significar a diferença entre ser aprovado em uma auditoria de conformidade — ou ser reprovado.
Módulos criptográficos nativos FIPS x módulos criptográficos plug-and-play
Recentemente, conversamos com um cliente que utiliza o CentOS 7 e precisava de criptografia validada para atender a vários clientes do governo federal e cumprir os rigorosos requisitos de criptografia do FedRAMP. Como o CentOS em si não era validado pela FIPS, eles recorreram a provedores terceirizados de OpenSSL e Java FIPS.
Desde então, eles migraram para o AlmaLinux 9 ESU da TuxCare, validado pela FIPS (um ambiente Linux validado pela FIPS) e ficaram muito satisfeitos ao descobrir que — devido à forma como a criptografia é configurada em todo o sistema, desde o kernel — não precisavam mais adquirir software adicional para atender aos requisitos da norma FIPS 140-3, já que o sistema operacional cuida disso por eles. Mudar para o ESU, que custa apenas US$ 159 por ano, em vez de um software que pode custar de US$ 100 por mês a US$ 25.000 por ano, é uma decisão óbvia!
Eles também observaram que seu banco de dados MySQL funciona de maneira mais confiável devido a essa integração estreita e ao fato de estar vinculado a bibliotecas do sistema, como o OpenSSL, em vez de software acoplado que não foi projetado especificamente para o sistema operacional. Na verdade, eles já haviam enfrentado falhas no servidor ao tentar operar no modo FIPS. A mudança para o ESU tornou possível sua implantação no FedRAMP.
Vários clientes nos relataram que o uso de softwares integrados ao sistema operacional AlmaLinux, em vez de versões derivadas de terceiros, proporcionou melhor desempenho e facilitou a migração de sistemas operacionais mais antigos.
Os certificados FIPS do AlmaLinux 9 ESU da TuxCare baseiam-se no padrão FIPS 140-3, e não no padrão anterior 140-2, utilizado pela maioria desses softwares complementares. Com os certificados FIPS 140-2 sendo transferidos para a lista histórica, eles estão cada vez menos aceitos em novas aquisições federais. Com a solução da TuxCare, isso deixa de ser um problema — sua infraestrutura está preparada para o futuro com criptografia validada pela norma FIPS 140-3.
A mitologia dos contêineres
Também conversamos com pessoas a quem foram vendidas “imagens de contêineres FIPS” – frequentemente comercializadas como contêineres FIPS – que nem sequer estão sendo executados em um Ambiente Operacional (OE) testado por um Laboratório de Testes Criptográficos e de Segurança (CSTL) credenciado e, portanto, não constam em nenhum certificado FIPS nem foram aprovados pelo NIST – eles não são válidos e podem nem mesmo funcionar.
Como os contêineres herdam o kernel do sistema operacional do host, eles devem ser executados em um host com um kernel validado pela FIPS que esteja operando no modo FIPS. Esse ambiente expõe o arquivo /proc/sys/crypto/fips_{enabled,name,version} que as bibliotecas e os aplicativos utilizam para detectar e aplicar o modo FIPS. Se o sistema operacional do host não estiver operando no modo FIPS, seus contêineres também não estarão.
Isso é particularmente importante no caso de contêineres que executam VPNs, como IPSEC ou OpenVPN, pois esses protocolos utilizam a API criptográfica do kernel; portanto, se você estiver usando um kernel de host incorreto, sua VPN não estará em conformidade e não terá permissão para se conectar às redes do Departamento de Defesa (DoD).
Executar o OpenSSL 3.1.2 em um contêiner em um host Ubuntu 24.04 (com o FIPS ativado ou não) não é um ambiente válido — você não será aprovado em uma auditoria do FedRAMP e não poderá vender sua solução aos governos dos Estados Unidos ou do Canadá.
Como o AlmaLinux aplica a conformidade com a norma FIPS em todo o sistema
Como o kernel e várias bibliotecas e componentes do sistema (GnuTLS, Libgcrypt, NSS, NSPR, OpenSSL, libkcapi, nettle….) do AlmaLinux 9 ESU foram validados pela FIPS, o sistema operacional oferece o ambiente validado, em vez de um software específico. Essa é uma das vantagens de utilizar uma distribuição Linux validada pela FIPS, em que o ambiente criptográfico está integrado ao próprio sistema operacional.
Por exemplo, o CentOS Linux nunca foi validado pela FIPS; por isso, as pessoas recorriam a tentar alcançar alguma forma de “conformidade” com a FIPS por meio do uso de módulos adicionais e de configurações complexas e ajustes de software que, em geral, acabavam apenas tornando o sistema instável.
Com as políticas de criptografia em todo o sistema do AlmaLinux, a criptografia é configurada centralmente em um único local. Isso evita a necessidade de configurar serviços ou aplicativos individualmente. É tão fácil quanto instalar usando o fips=1 ou executar o comando fips-mode-setup –enable. Com um kernel com suporte a FIPS, você pode ter o OpenSSH, o Kerberos, o bind9 e outros programas configurados automaticamente de maneira aprovada. Para mais informações, consulte os arquivos em /usr/share/crypto-policies/FIPS/.
A prova está no pudim
Como parte dos testes internos dos nossos módulos FIPS (um requisito para que pudéssemos incluir o Rocky Linux 9.6 como um sistema operacional aprovado pelo fornecedor em nossos certificados FIPS), que tradicionalmente são escritos em C, decidimos testar também alguns dos produtos “Endless Lifecycle Support for Runtimes” da TuxCare em nossos módulos FIPS. Criamos vários scripts em linguagens interpretadas que comprovariam que o sistema operacional e sua criptografia centralizada permitiam que tal software fosse executado de maneira aprovada pelo FIPS, restringindo os algoritmos e protocolos disponíveis para os aplicativos àqueles aprovados pelo programa do NIST, em grande parte sem a necessidade de modificar os próprios programas.
Para avaliar o desempenho de aplicativos reais nesse ambiente e garantir a conformidade com a norma FIPS 140-3, testamos vários ambientes de execução comuns utilizados em implantações corporativas, detalhados a seguir. Além disso, podemos fornecer scripts de teste e suporte técnico aos clientes, mediante solicitação.
.NET
Constatamos que, em alguns casos, o módulo System.Security.Cryptography integrado ao .NET não garante totalmente a conformidade com a norma FIPS 140-3 em máquinas Linux; por isso, recomendamos passar a utilizar o OpenSSL de forma nativa.
Java
O OpenJDK possui diversos provedores de criptografia, cada um com suas próprias deficiências no que diz respeito à conformidade com a norma FIPS. Recomendamos o SunPKCS11-NSS-FIPS em distribuições do Enterprise Linux, mas, mesmo assim, é preciso verificar quais indicadores FIPS o NSS utiliza, em vez de simplesmente bloquear e retornar um erro.
Python
O módulo de criptografia do Python utiliza chamadas nativas à biblioteca OpenSSL, por isso funciona imediatamente, sem necessidade de configuração.
PHP
O PHP também utiliza o OpenSSL, mas apresenta algumas peculiaridades com as quais é preciso lidar — por exemplo, ele lista mais curvas elípticas como compatíveis do que o OpenSSL retorna no modo FIPS, principalmente porque “compatível” significa que o PHP as reconhece, e não que seja permitido utilizá-las. Em geral, você deve especificar os algoritmos de criptografia e os funções de hash que deseja usar e que sabe que estão em conformidade com a norma FIPS.
Node.js
O pacote crypto do Node.js volta a se vincular ao OpenSSL do sistema e faz chamadas à biblioteca como EVP_PKEY_keygen() , por isso funciona muito bem.
Considerações finais
A conformidade com a FIPS não se resume apenas à instalação de uma biblioteca criptográfica. Ela depende de todo o ambiente operacional — desde o kernel até as bibliotecas de tempo de execução das quais seus aplicativos dependem.
A validação FIPS nativa, no nível do sistema, elimina a complexidade e a instabilidade que costumam acompanhar a criptografia adicionada posteriormente.
Se o seu ambiente depende da certificação FIPS para contratos governamentais ou estruturas de conformidade como o FedRAMP, a abordagem mais segura é começar com um sistema operacional Linux validado pela FIPS que ofereça criptografia validada desde a base e seja compatível com a requisitos de conformidade com a .
Para obter mais informações sobre o FIPS e as Atualizações de Segurança Estendidas, consulte nosso FIPS para AlmaLinux .






