Foi lançado a biblioteca OpenSSL 3.5.0, com implementação dos protocolos SSL/TLS e vários algoritmos de criptografia. OpenSSL 3.5 é classificado como uma versão com suporte a longo prazo (LTS), cuas atualizações serão lançadas por um período de 5 anos (até abril de 2030). O suporte para as versões anteriores OpenSSL 3.3, 3.2 e 3.0 LTS continuará até abril de 2026, novembro de 2025 e setembro de 2026, respectivamente. O código do projeto é distribuído sob a licença Apache 2.0.
Principais inovações:
- Adicionada a suporte para algoritmos criptográficos resistentes à quebra em computadores quânticos:
- ML-KEM (CRYSTALS-Kyber) — algoritmo de troca de chaves que utiliza métodos de criptografia baseados na solução de problemas de teoria das redes, cujo tempo de solução não difere em computadores comuns e quânticos.
- ML-DSA (CRYSTALS-Dilithium) — algoritmo de formação de assinaturas digitais, que se baseia na teoria das redes.
- SLH-DSA (Sphincs+) — algoritmo de formação de assinaturas digitais que aplica métodos de criptografia baseados em funções hash. SLH-DSA é inferior ao ML-DSA em termos de tamanho das assinaturas e velocidade de operação, mas baseia-se em princípios matemáticos totalmente diferentes, ou seja, continuará sendo eficaz em caso de comprometimento dos algoritmos baseados na teoria das redes.
- Implementado suporte completo para o protocolo QUIC (RFC 9000), que agora está disponível não apenas para aplicativos de cliente, mas também para aplicativos de servidor. QUIC é uma camada sobre o protocolo UDP, que suporta multiplexação de várias conexões e fornece métodos de criptografia equivalentes ao TLS. O protocolo QUIC é utilizado no HTTP/3 e foi criado como uma alternativa à combinação TCP+TLS, resolvendo problemas com longos tempos de instalação e negociação de conexões no TCP, além de eliminando atrasos em caso de perda de pacotes durante a transmissão de dados.
- Adicionada a possibilidade de usar pilhas de terceiros com implementações do protocolo QUIC, incluindo pilhas que suportam o modo 0-RTT (0 Round Trip Time), permitindo iniciar imediatamente a transferência de dados após o envio do pacote de instalação da conexão.
- Adicionada suporte para objetos opacos (opaque) de chaves simétricas (EVP_SKEY), que ocultam os detalhes da implementação da chave.
- Adicionado o parâmetro "no-tls-deprecated-ec" para desativar o suporte a grupos TLS considerados obsoletos na RFC-8422.
- Adicionado o parâmetro «enable-fips-jitter», que habilita o uso de uma fonte de entropia baseada em jitter no provedor FIPS, implementada através da biblioteca jitterentropy. A formação de entropia baseada em jitter é realizada medindo as diferenças no tempo de execução repetido de um determinado conjunto de instruções no CPU, que depende de muitos fatores internos e é imprevisível sem controle físico sobre o CPU.
- No CMP (Certificate Management Protocol) foi adicionada a suportar a geração centralizada de chaves (as chaves pública e privada para o cliente são geradas no lado servidor).
- Adicionada a suportar a oferecimento de vários conjuntos de chaves (keyshares) para uma única conexão TLS.
- Adicionado API para processamento em pipeline, permitindo o processamento simultâneo de vários blocos de dados com o uso de alguns cifradores, como AES-GCM, que suportam cálculos paralelos.
- Nos aplicativos req, cms e smime, o algoritmo de criptografia padrão foi alterado de des-ede3-cbc para aes-256-cbc.
- No conjunto de cifradores padrão para TLS, foram incluídos e escolhidos como prioritários grupos híbridos KEM (Key Encapsulation Mechanism), resistentes a tentativas de quebra por computadores quânticos.
- No conjunto de chaves (keyshares) usado por padrão no TLS, foram adicionados os algoritmos X25519MLKEM768 e X25519.
- As funções BIO_meth_get_*() foram declaradas obsoletas.
Fonte: opennet.ru
