Os desenvolvedores do projeto OpenBSD anunciaram recentemente o lançamento da edição portátil do pacote. "FreeSSL 3.8.0", versão na qual foram feitas várias alterações e melhorias focadas na estabilidade e compatibilidade.
Para quem não conhece o LibreSSL, saiba que este é uma implementação de código aberto do protocolo TLS desenvolvendo uma bifurcação do OpenSSL destina-se a fornecer um maior nível de segurança. O LibreSSL foi inicialmente desenvolvido como um substituto pretendido para o OpenSSL no OpenBSD e foi portado para outras plataformas assim que uma versão simplificada da biblioteca foi estabilizada.
O projeto LibreSSL se concentra no suporte de alta qualidade para os protocolos SSL/TLS, removendo recursos desnecessários, adicionando recursos de segurança adicionais e limpeza e retrabalho significativos da base de código.
Principais novidades do LibreSSL 3.8.0
LibreSSL versão 3.8.0 é considerada uma versão experimental que desenvolve funções que serão incluídas no OpenBSD 7.4. Ao mesmo tempo, foram formadas versões estáveis do LibreSSL 3.6.3 e 3.7.3, nas quais vários bugs foram corrigidos.
Nesta nova versão do LibreSSL 3.8.0, destaca-se que compatibilidade endian.h aprimorada com macros hto* e *toh, Além de adicionar o suporte para SHA-2 e SHA-3 truncado e o processo interno de limpeza e retrabalho do código SHA começou.
Outra mudança notável são as funções internas reescritas BN_exp() e BN_copy(), bem como a substituição da implementação da função BN_mod_sqrt().
Além disso, destaca-se também que instruções adicionadas montador para arquitetura AMD64 use instruções endbr64 (Cancelar Filial Indireta).
Também se destaca que foi adicionado uma correção para uma alteração mal pensada no OpenSSL 3 que quebrou o suporte para separação de privilégios em libtls, Além disso, o código BoringSSL foi portado para verificar as regras definidas no RFC 5280 e a tradução libcrypto continua usando as interfaces CBB (bytebuilder) e CBS (bytestring).
Por outro lado, destaca-se que o código de verificação da política BoringSSL RFC 5280 foi importado e utilizado
para substituir o antigo timecode exponencial, além de remover o suporte para GF2m:BIGNUM, uma vez que não suporta a extensão binária, removendo a maioria dos símbolos públicos que foram obsoletos no OpenSSL 0.9.8.
Das outras mudanças que se destacam nesta nova versão:
- API pública X9.31 removida (RSA_X931_PADDING ainda está disponível).
- Modo de roubo de texto cifrado removido.
- Suporte removido para SXNET e NETSCAPE_CERT_SEQUENCE, incluindo o
comando openssl(1)nseq. - Suporte a certificado de proxy descartado (RFC 3820).
- POLICY_TREE e suas estruturas e APIs relacionadas foram removidos.
- Verificação de bug corrigida para i2d_ECDSA_SIG() em ossl_ecdsa_sign().
- Detecção corrigida de operações estendidas (XOP) no hardware AMD.
- Tratamento de erro corrigido em tls_check_common_name().
- Adicionada invalidação de ponteiro ausente em SSL_free().
- Corrigido X509err() e X509V3err() e suas versões internas.
- Cobertura de teste significativamente melhorada de BN_mod_sqrt() e GCD.
- Como sempre, uma nova cobertura de teste é adicionada à medida que bugs e subsistemas são corrigidos
eles são limpos.
Por fim, se você tiver interesse em saber mais sobre o assunto, pode consultar os detalhes no link a seguir.
Como instalar a nova versão do LibreSSL?
Para os interessados em poder instalar esta nova versão, devem saber que no momento ela não atingiu a maioria das distribuições Linux, portanto a instalação atualmente disponível é compilou o pacote por conta própria.
Mas não se preocupe, a compilação LibreSSL É muito simples e para isso você só precisa abrir um terminal e execute os seguintes comandos (você deve ter as seguintes dependências automake, autoconf, git, libtool, perl e git).
A primeira coisa é obter o código-fonte, o que você pode fazer com este comando:
clone do git https://github.com/libressl/portable.git
Feito isso, agora vamos preparar a forma de realizar a compilação, para isso entramos na pasta que contém o código fonte do LibreSSL e vamos digitar:
cd portátil ./autogen.sh ./dist.sh
Feito isso, procedemos à compilação com:
./configure make check make install
Ou se preferir faça com o CMake:
mkdir build cd build cmake .. make make test