OpenSSL 3.0 chega com novo módulo FIPS, mudança de licença e muito mais

Vários dias atrás Matt Casewell, membro da equipe de desenvolvimento do projeto OpenSSL, anunciou o lançamento do OpenSSL 3.0 que vem após 3 anos de desenvolvimento, 17 versões alfa, 2 versões beta, mais de 7500 confirmações e contribuições de mais de 350 autores diferentes.

E é esse OpenSSL teve a sorte de ter vários engenheiros em tempo integral que trabalhou no OpenSSL 3.0, financiado de várias maneiras. Algumas empresas assinaram contratos de suporte com a equipe de desenvolvimento OpenSSL, que patrocinou funções específicas, como o módulo FIPS que tinha planos de restaurar sua validação com OpenSSL 3.0, no entanto, encontraram atrasos significativos e, como os testes FIPS 140-2 terminados em setembro 2021, o OpenSSL finalmente decidiu concentrar seus esforços nos padrões FIPS 140-3 também.

Uma característica chave por OpenSSL 3.0 é o novo módulo FIPS. A equipe de desenvolvimento do OpenSSL está testando o módulo e reunindo os documentos necessários para a validação FIPS 140-2. Usar o novo módulo FIPS em projetos de desenvolvimento de aplicativos pode ser tão fácil quanto fazer algumas alterações no arquivo de configuração, embora muitos aplicativos precisem fazer outras alterações. A página do manual do módulo FIPS fornece informações sobre como usar o módulo FIPS em seus aplicativos.

Também deve ser observado que, desde o OpenSSL 3.0, o OpenSSL mudou para a licença Apache 2.0. As antigas licenças "duplas" para OpenSSL e SSLeay ainda se aplicam às versões anteriores (1.1.1 e anteriores). OpenSSL 3.0 é uma versão principal e não é totalmente compatível com versões anteriores. A maioria dos aplicativos que funcionavam com o OpenSSL 1.1.1 continuará a funcionar inalterada e simplesmente precisará ser recompilada (possivelmente com muitos avisos de compilação sobre o uso de APIs desatualizadas).

Com o OpenSSL 3.0, é possível especificar, de forma programática ou por meio de um arquivo de configuração, quais provedores o usuário deseja usar para um determinado aplicativo. O OpenSSL 3.0 é fornecido por padrão com 5 provedores diferentes. Com o tempo, terceiros podem distribuir provedores adicionais que podem ser integrados ao OpenSSL. Todas as implementações de algoritmos disponíveis de fornecedores são acessíveis por meio de APIs de "alto nível" (por exemplo, funções com o prefixo EVP). Ele não pode ser acessado usando APIs de "baixo nível".

Um dos provedores padrão disponíveis é o provedor FIPS, que fornece algoritmos criptográficos validados por FIPS. O provedor FIPS é desabilitado por padrão e deve ser habilitado explicitamente durante a configuração usando a opção enable-fips. Se ativado, o provedor FIPS é criado e instalado junto com outros provedores padrão.

Usar o novo módulo FIPS em aplicativos pode ser tão fácil quanto fazer algumas alterações no arquivo de configuração, embora muitos aplicativos precisem fazer outras alterações. Os aplicativos escritos para usar o módulo OpenSSL 3.0 FIPS não devem usar APIs ou recursos legados que ignoram o módulo FIPS. Isso inclui, em particular:

  • APIs criptográficas de baixo nível (é recomendado usar APIs de alto nível, como EVP);
    motores
  • todas as funções que criam ou modificam métodos personalizados (por exemplo, EVP_MD_meth_new (), EVP_CIPHER_meth_new (), EVP_PKEY_meth_new (), RSA_meth_new (), EC_KEY_METHOD_new ()).

Por outro lado a biblioteca criptográfica OpenSSL (libcrypto) implementa uma ampla gama de algoritmos criptográficos usados ​​em vários padrões da Internet. A funcionalidade inclui criptografia simétrica, criptografia de chave pública, acordo de chave, gerenciamento de certificado, funções de hashing criptográfico, geradores de número pseudoaleatório criptográfico, códigos de autenticação de mensagem (MAC), funções de derivação de chave (KDF) e vários utilitários. Os serviços fornecidos por esta biblioteca são usados ​​para implementar muitos outros produtos e protocolos de terceiros. Aqui está uma visão geral dos principais conceitos da libcrypto abaixo.

Primitivos criptográficos, como o hash SHA256 ou criptografia AES, são chamados de "algoritmos" no OpenSSL. Cada algoritmo pode ter várias implementações disponíveis. Por exemplo, o algoritmo RSA está disponível como uma implementação "padrão" adequada para uso geral e uma implementação "fips" que foi validada em relação aos padrões FIPS para situações em que é importante. Também é possível que um terceiro adicione implementações adicionais, por exemplo, em um módulo de segurança de hardware (HSM).

Finalmente se você está interessado em saber mais sobre isso, você pode conferir os detalhes no link a seguir.


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: AB Internet Networks 2008 SL
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.