12.08.2024

Descontinuando apt-key e add-apt-repository, o que fazer?

Por que o apt-key está sendo descontinuado?

O processo de instalação segura contém muitas armadilhas, uma das quais é o download de arquivos e recursos com privacidade e autenticação. As distribuições Linux implementaram as utilidades apt-key e add-apt-repository, que automatizam o processo de verificação de pacotes de repositórios com chaves adicionadas. No entanto, surgiu um problema de segurança significativo: não há um mecanismo para atribuir uma chave específica a um repositório. Isso significa que, se a chave de uma empresa for comprometida ou se os funcionários abusarem de sua autoridade, um arquivo malicioso poderá ser assinado. Versões mais recentes das distribuições já integraram uma solução mais segura usando diretamente o GPG, que discutiremos a seguir.

Qual comando substituiu o apt-key?

Em vez dos obsoletos apt-key e apt-add-repository, que mediavam o mecanismo de verificação, apenas a utilidade GPG será utilizada. Ela já estava presente no mecanismo de identificação, integridade e autenticação antes. No entanto, a atualização permitirá eliminar as utilidades intermediárias que representavam uma série de ameaças.

Screenshot №1 — GPG

GPG ou GNU Privacy Guard é um pacote criptográfico que permite criptografar, descriptografar, assinar documentos e mensagens com EDS, armazenar chaves com identificadores em um banco de dados e executar muitas funções de criptossistema. Uma dessas funções é a verificação de assinaturas em pacotes apt. Para uma demonstração mais clara, todos os passos do tutorial podem ser realizados em servidores em nuvem poderosos.

Screenshot №2 — Lista de servidores

Levará algum tempo para implantar a capacidade do servidor. Depois disso, você pode se conectar de qualquer uma das maneiras convenientes. E vamos ao terminal com nosso SO!

Como adicionar chaves e repositório no terminal?

Primeiro, precisamos obter as chaves públicas e um link para o repositório de onde os pacotes serão baixados. Por exemplo, vamos olhar para o banco de dados MongoDB. Vá ao site oficial para encontrar um repositório para a distribuição Debian e fixe os principais componentes:

As utilidades curl e gpg são necessárias para trabalhar com os componentes, se não estiverem disponíveis, instale-as com o comando abaixo:

apt install curl gnupg -y

Ao baixar dados do repositório antes da instalação, o Linux acessa a lista de chaves confiáveis e verifica as assinaturas; se corresponderem, o processo de instalação prossegue. Caso contrário, a utilidade exibe que as assinaturas não correspondem e o pacote é considerado potencialmente não confiável. Para que os arquivos sejam verificados, é necessário baixar a chave pública e adicioná-la à lista de chaves confiáveis.

As chaves podem estar em formato pgp ou asc, portanto, os arquivos recebidos devem ser convertidos para gpg para funcionar corretamente!
curl -fsSL https://www.mongodb.org/static/pgp/server-7.0.asc | sudo\
gpg --dearmor -o /usr/share/keyrings/mongokey.gpg

Screenshot №3 — Baixar chave do site

Após verificar que o arquivo é de fato uma assinatura pública, agora precisamos adicionar um repositório e associá-lo à chave. Para isso, vamos escrever um comando que permitirá fazer alterações no arquivo de repositórios:

echo "deb [ signed-by=/usr/share/keyrings/mongokey.gpg ]\
http://repo.mongodb.org/apt/debian bookworm/mongodb-org/7.0 main"\
>> /etc/apt/sources.list.d/mongodb-org-7.0.list

Vamos dar uma olhada mais detalhada em cada elemento do comando:

Screenshot №4 — Fazer registro com o caminho do repositório

Esta distribuição é para Debian 12, se você precisar de outra, vá ao site oficial e escolha a correta!

Depois de verificar com a utilidade cat para ver se há um registro, podemos atualizar a distribuição e tentar baixar o software:

apt update && apt upgrade && apt install\
mongodb-org -y

Screenshot №5 — Baixar do repositório

Os pacotes foram baixados e instalados com sucesso no sistema! Neste caso, instalamos as chaves com segurança, pois anteriormente nos conectamos via HTTPS a um site que possuía um certificado válido. Isso indica a autenticidade dos dados armazenados e também a soma de verificação anexada à chave certifica sua integridade. Portanto, os pacotes transmitidos são autênticos e não foram modificados!