Foram publicadas várias novas versões de bibliotecas criptográficas:
Lançamento da biblioteca OpenSSL 3.4.0 com implementação dos protocolos SSL/TLS e diversos algoritmos de criptografia. O suporte para o OpenSSL 3.4 será mantido até outubro de 2025. O suporte para as versões anteriores OpenSSL 3.3, 3.2, 3.1 e 3.0 LTS durará até abril de 2026, novembro de 2025, março de 2025 e setembro de 2026, respectivamente. O código do projeto é distribuído sob a licença Apache 2.0. Principais novidades:
- Adicionada a suporte ao conjunto de cifras para TLSv1.3, limitado a funções de verificação da integridade dos dados (RFC 9150) e incluindo os algoritmos TLS_SHA256_SHA256 e TLS_SHA384_SHA384.
- Adicionada a opção de usar uma fonte adicional de entropia baseada em jitter no gerador de números pseudoaleatórios, implementada através da biblioteca jitterentropy. A formação de entropia é realizada medindo as diferenças no tempo de execução de um determinado conjunto de instruções na CPU, dependendo de vários fatores internos e imprevisíveis sem controle físico sobre a CPU.
- Adicionada a suportar certificados de atributos (AC — Attribute Certificate, RFC 5755), que incluem informações sobre direitos de acesso, poderes e atributos do proprietário do certificado, certificando a capacidade de realizar determinadas ações. Por exemplo, um certificado AC pode definir o direito de se conectar a um serviço específico.
- Adicionada suporte a extensões X.509v3 relacionadas a certificados de atributos.
- No provedor FIPS, adicionado suporte à API FIPS 140-3 Indicator, que permite determinar se uma determinada operação foi realizada em um serviço aprovado ou não.
- Na API BIO (Basic Input/Output), melhorada a manipulação de entrada em formato Base64.
- Adicionada a suporte para compilar a ferramenta openssl em modo PIE (Position Independent Executable), permitindo o uso de randômização de espaço de endereçamento (ASLR).
- Adicionada a suporte para algoritmos de assinatura digital combinados extraídos diretamente, como RSA-SHA2-256.
- No PKCS#12, adicionada a suporte para PBMAC 1 (Password-Based Message Authentication Code 1, RFC 9579).
- Na ferramenta openssl, adicionadas as opções '-not_before' e '-not_after' para indicar explicitamente o horário de início e término da validade do certificado.
- Foi possibilitada a utilização de valores pré-calculados ao inicializar algoritmos criptográficos baseados em curvas elípticas P-256.
- As funções TS_VERIFY_CTX_set_* foram declaradas obsoletas, sendo substituídas por funções TS_VERIFY_CTX_set0_* com semântica aprimorada.
- As funções SSL_SESSION_get_time(), SSL_SESSION_set_time() e SSL_CTX_flush_sessions() foram declaradas obsoletas, devendo-se utilizar SSL_SESSION_get_time_ex(), SSL_SESSION_set_time_ex() e SSL_CTX_flush_sessions_ex(), que corrigem o problema de 2038.
- O suporte esperado para o protocolo QIUC no OpenSSL 3.4 servidor foi adiado para a próxima versão.
O lançamento do projeto LibreSSL 4.0.0, um fork do OpenSSL voltado para oferecer um nível mais alto de segurança e suporte de qualidade para protocolos SSL/TLS, com a remoção de funcionalidades desnecessárias, adição de recursos de proteção e uma significativa limpeza e reestruturação da base de código. A mudança no número da versão é significativa devido à utilização da numeração decimal (após 3.9, a versão é 4.0). As mudanças mais notáveis incluem:
- Foi adicionada a suporte inicial para compilar com Emscripten, um compilador de C/C++ para WebAssembly.
- Foi adicionada à equipe 'openssl cms' a opção CRLfile para especificar listas adicionais de certificados revogados (CRL) que serão utilizadas durante a verificação.
- O suporte à plataforma mips32 foi descontinuado.
- O acesso a funções escritas em linguagem de montagem foi descontinuado através da API pública (essas funções agora estão disponíveis apenas por meio de funções de ligação em C). As implementações em montagem de algoritmos obsoletos para arquiteturas antigas foram removidas.
- O código para o cache de validade de certificados foi removido, uma vez que se tornou irrelevante após a otimização de desempenho.
- A implementação das extensões X.509v3 foi aprimorada, unificando os métodos X.509v3 e realizando uma limpeza da API relacionada ao X.509v3.
- A implementação do tipo CRYPTO_EX_DATA foi reescrita completamente.
- Na libcrypto, as funções atoi() e strtol() foram substituídas pela strtonum().
- Foi adicionado o arquivo de cabeçalho crypto_arch.h, que contém o código específico para arquiteturas de hardware.
- Foi reestruturada e otimizada a implementação do algoritmo DES.
- Os arquivos de cabeçalho pem2.h, ssl2.h, ssl23.h e ui_compat.h foram removidos.
- O suporte ao algoritmo de hash Whirlpool foi removido.
- As funções HMAC_Init(), OPENSSL_load_builtin_modules(), X509_REQ_{get,set}_extension_nids(), X509_check_trust() foram removidas.
- Os tipos PEM_USER, PEM_CTX, COMP_CTX, COMP_METHOD, X509_CRL_METHOD, STORE, STORE_METHOD e SSL_AEAD_CTX foram removidos.
- Funções SSL_CTX_set1_cert_store() e SSL_CIPHER_get_handshake_digest() foram adicionadas ao libssl.
Está disponível a versão 3.6.0 da biblioteca criptográfica Botan, utilizada no projeto NeoPG, um fork do GnuPG 2. A biblioteca fornece uma grande coleção de primitivas prontas, utilizadas em protocolos TLS, certificados X.509, cifras AEAD, módulos TPM, PKCS#11, hashing de senhas e criptografia pós-quântica (assinaturas baseadas em hash e negociação de chaves baseadas em McEliece). A biblioteca é escrita em C++ e é fornecida sob a licença BSD. Na nova versão:
- Uma nova biblioteca com algoritmos criptográficos baseados em curvas elípticas foi integrada, cujas operações em curvas padrão são executadas de 2 a 3 vezes mais rápido. Um novo API para trabalho de baixo nível com curvas elípticas também foi proposto.
- Suporte adicionado para os algoritmos de criptografia pós-quântica recentemente padronizados pelo NIST: FIPS 203 ML-KEM (Kyber), FIPS 204 ML-DSA (Dilithium) e FIPS 205 SLH-DSA (SPHINCS+).
- Suporte adicionado para chips TPM2.
- A utilização de computações com tempo de execução constante foi ampliada para proteção contra ataques de canal lateral.
- Geração adicional de entropia adicionada com a biblioteca jitterentropy.
- A eficiência do processamento de dados em formato hexadecimal e codificação base64 foi melhorada.
- Suporte adicionado para as extensões de processador AVX2-VAES e GFNI-AVX2.
- Definição das capacidades do CPU armv7, aarch64 e ppc64 na plataforma OpenBSD foi adicionada.
- Opção de compilação adicionada para desativar todas as inserções inline em assembly.
Lançamento do projeto Rustls 0.23.15, que desenvolve implementações cliente e servidor dos protocolos TLS1.2 e TLS1.3 para projetos em Rust. O Rustls não fornece sua própria implementação de primitivos criptográficos, mas utiliza provedores plugáveis de funções criptográficas (suportados os algoritmos ECDSA, Ed25519, RSA, ChaCha20-Poly1305, AES128-GCM e AES256-GCM). Por padrão, o Rustls usa um provedor criptográfico baseado na biblioteca aws-lc-rs, desenvolvida pela Amazon e baseada no código C++ do AWS-LC, um fork do projeto BoringSSL (mantido pelo Google como um fork do OpenSSL). A biblioteca ring, parcialmente baseada no BoringSSL e combinando código em assembly, C++ e Rust, também pode ser utilizada como provedor criptográfico.
A nova versão se destaca por otimizações significativas de desempenho. Afirma-se que, ao usar os criptoprimitivos da biblioteca aws-lc-rs, o Rustls agora supera as bibliotecas OpenSSL e BoringSSL em testes que medem a largura de banda e a velocidade de negociação/reconexão.

Fonte: opennet.ru
