UPDATED (2 de setembro de 2020)

Passou um ano desde que publiquei esta história. Desde então o Ubuntu 20.04 foi lançado e a nova versão mais recente do OpenSSL foi publicada em 6 de agosto de 2020. Basicamente a única coisa que mudei nesta história foi a letra que faz referência à série OpenSSL 1.1.1, ou seja, mudar a letra ‘c’ na versão original para a letra ‘g’ nos comandos da versão atualizada. Enquanto essas alterações são refletidas nos comandos, as figuras que ilustram os resultados desses comandos permanecem inalteradas. Aproveite sua leitura!

Se você usa o protocolo SSL/TLS em sua aplicação, ou está prestes a fazê-lo, a recomendação é manter o OpenSSL atualizado. Isto é especialmente verdadeiro não só devido ao papel que desempenha na emissão de certificados, mas também após as lições aprendidas com Heartbleed.

Ubuntu 20.04.1 (a última actualização 20.04 a partir de Setembro de 2020) vem com “OpenSSL 1.1.1 31 Mar 2020” instalado e Ubuntu 18.04.03 (a última actualização 18.04 a partir de Agosto de 2019) vem com “OpenSSL 1.1.1 11 Set 2018” enviado. Neste momento a última versão do “OpenSSL 1.1.1 série” é “1.1.1g” enviada em 6 de agosto. 2020.

Neste artigo vou orientar o leitor sobre como proceder com esta actualização sem quebrar qualquer interoperabilidade com aplicações existentes que dependem do OpenSSL.

Presumo que o leitor está familiarizado com comandos bash e, claro, a actualização será numa caixa Ubuntu 20.04 ou 18.04. Embora eu não possa ver nenhuma razão para que este procedimento não funcione no Ubuntu 16.04 (se você fizer, por favor me avise), ele não foi testado.

A primeira coisa a fazer é verificar qual versão está instalada:

$ openssl version

No meu caso “OpenSSL 1.1.1 20 Mar 2020” foi o resultado.

Passo 1: Download openssl-1.1.1g daqui e salve-o no diretório ~/Downloads:

$ cd ~/Downloads
$ wget https://www.openssl.org/source/openssl-1.1.1g.tar.gz

Passo 2: Verifique se há corrupção comparando o formulário de soma de verificação SHA256 aqui com a soma de verificação computada do arquivo zip baixado:

$ wget https://www.openssl.org/source/openssl-1.1.1g.tar.gz.sha256
$ echo "$(cat openssl-1.1.1g.tar.gz.sha256) openssl-1.1.1g.tar.gz" | sha256sum --check

Na imagem abaixo os comandos acima estão sublinhados em amarelo e o resultado da soma de verificação (OK neste caso) está sublinhado em verde:

Passo 3: Verifique a assinatura do arquivo zip baixado

Antes de instalar o conteúdo do arquivo zip baixado verificaremos sua assinatura, usando o GnuPG enviado com o Ubuntu (isso pode ser confiável como mencionado no GnuPG).

Na página de download do OpenSSL encontramos as seguintes informações : “As chaves PGP para as assinaturas estão disponíveis na página da OMC. Os membros atuais que assinam as assinaturas incluem Richard Levitte e Matt Caswell”. Seguindo o link na página da OMC, chegamos às chaves públicas dos membros. O próximo passo, portanto, é baixar as chaves necessárias (uma em levitte.txt e a outra em caswell.txt) e importá-las para a base de dados GnuPG. Usando curl:

$ curl 'http://pool.sks-keyservers.net:11371/pks/lookup?op=get&search=0x7953AC1FBC3DC8B3B292393ED5E9E43F7DF9EE8C' > levitte.txt
$ curl 'http://pool.sks-keyservers.net:11371/pks/lookup?op=get&search=0x8657ABB260F056B1E5190839D9C4D26D0E604491' > caswell.txt

Para confiar nestas assinaturas é uma boa prática verificar o certificado do domínio (figura abaixo). Utilizando o separador Segurança do Chrome do Google dentro das ferramentas de desenvolvimento, é possível validar que o emissor ” Let’s Encrypt Authority X3″ (confiado pelo browser) emitiu o certificado para o domínio www.openssl.org, o que significa que este é um certificado de validação de domínio, permitindo a qualquer pessoa confiar nas assinaturas transferidas.

>

As chaves são importadas e depois listadas como abaixo:

$ gpg --import caswell.txt
$ gpg --import levitte.txt
$ gpg --list-keys

A ilustração seguinte contém o resultado dos comandos acima que estão sublinhados em amarelo:

Deixe uma resposta

O seu endereço de email não será publicado.