6.6. Verificando Autenticidade do Pacote
Segurança é muito importante para os administradores da Falcot Corp. E desta forma, eles precisam ter certeza que estão instalando pacotes que vem do Debian, sem interceptações no caminho. Um cracker de computador pode tentar adicionar código malicioso num pacote que de outra forma seria legítimo. Tal pacote, se instalado, poderia fazer qualquer coisa que o cracker o tivesse projetado para fazer, incluindo por exemplo revelar senhas e informações confidenciais. Para evitar este risco, o Debian fornece um selo de qualidade a prova de interceptações para garantir - no momento da instalação - que um pacote realmente vem de um mantenedor oficial e não foi modificado por um terceiro.
O selo funciona com uma cadeia de hashes criptográficos e uma assinatura e é explicado em detalhes em apt-secure(8). Começando no Debian 10 Buster, o arquivo assinado é o arquivo InRelease
, fornecido pelos espelhos Debian. Existe também um arquivo legado chamado Release
. Ambos contém uma lista de arquivos Packages
(incluindo suas formas compactadas, Packages.gz
e Packages.xz
, e as versões incrementais), junto com suas hashes SHA256 que garantem que os arquivos não foram interceptados. Estes arquivos Packages
contém uma lista de pacotes Debian disponíveis no espelho, junto com seus hashes, que garantem, por sua vez, que os conteúdos dos próprios pacotes também não foram alterados. A diferença entre o InRelease
e o Release
é que o primeiro é criptograficamente assinado em linha, enquanto que o último fornece assinatura desanexada na forma do arquivo Release.gpg
.
O APT precisa de um conjunto de chaves públicas GnuPG confiáveis que são usadas para verificar assinaturas no arquivo InRelease
e no Release.gpg
disponíveis nos espelhos. Ele obtém eles de arquivos no /etc/apt/trusted.gpg.d/
e do chaveiro /etc/apt/trusted.gpg
(gerenciado pelo comando apt-key
). As chaves oficiais do Debian são fornecidas e mantidas atualizadas pelo pacote debian-archive-keyring que coloca elas em /etc/apt/trusted.gpg.d
):
#
ls /etc/apt/trusted.gpg.d/
debian-archive-bullseye-automatic.gpg
debian-archive-bullseye-security-automatic.gpg
debian-archive-bullseye-stable.gpg
debian-archive-buster-automatic.gpg
debian-archive-buster-security-automatic.gpg
debian-archive-buster-stable.gpg
debian-archive-stretch-automatic.gpg
debian-archive-stretch-security-automatic.gpg
debian-archive-stretch-stable.gpg
Uma vez que as chaves apropriadas estiverem no chaveiro, o APT vai verificar as assinaturas antes de operações arriscadas, e as interfaces vão exibir um aviso se tiverem que instalar um pacote cuja autenticidade não puder ser verificada.
Recorde que os pacotes binários geralmente não estão assinados. A integridade de um pacote só se pode confirmar comprovando sua soma de verificação contra uma fonte de verificação de confiança (e possivelmente assinada).