Respostas:
O conteúdo dos espelhos é assinado usando chaves PGP, direta ou indiretamente. Começando na "raiz" de uma distribuição Debian:
Release
, assinado com uma assinatura desanexada Release.gpg
, contém os hashes (MD5, SHA1, SHA256) de todos os índices de pacote e hashes do instalador ( InRelease
agora combina os dois);binary-amd64
) contêm os hashes (MD5 e SHA256) dos pacotes.Os hashes e assinaturas são verificados por ferramentas como o apt-get
uso de chaves PGP armazenadas no sistema (gerenciadas por apt-key
). Enquanto o sistema receptor estiver correto, por padrão, nenhum pacote poderá ser instalado a partir dos arquivos da Debian se não tiver sido assinado (indiretamente) pela chave PGP do arquivo. Qualquer intruso nos espelhos não seria capaz de substituir os binários se eles também não tivessem o controle da chave PGP relevante.
Isso significa que comprometer o arquivo não é suficiente para realmente comprometer os sistemas do usuário final; você também precisará comprometer uma chave PGP na qual esses sistemas já confiam. (Um corolário disso é que adicionar uma chave a um sistema Debian não é algo que deve ser encarado de ânimo leve.) Isso aborda sua primeira pergunta até certo ponto, uma vez que a segurança do arquivo não importa tanto. No entanto, os sistemas críticos (onde a assinatura acontece) são rigorosamente monitorados e supervisionados, e poucas pessoas têm acesso a eles.
Garantir que os pacotes sejam "de fato os mantenedores pensam que são" é um pouco mais envolvido. Este é o caminho percorrido por um pacote:
Se o mantenedor carrega binários junto com a fonte do pacote, esses são os arquivos que acabam sendo veiculados (por enquanto). Como o carregamento de binários agora é opcional, é cada vez mais comum ignorá-los e, eventualmente, os binários enviados serão descartados. (Esse sempre foi o caso no Ubuntu.) Se os outros binários correspondem às expectativas do mantenedor depende da rede buildd; então os acúmulos também são sistemas críticos, sob supervisão rigorosa e com pouco acesso humano. Como todos os artefatos são assinados, sempre é possível verificar a integridade dos arquivos: primeiro contra a chave do mantenedor, depois contra as chaves dos buildds e, finalmente, contra a chave do arquivo morto.
Conforme apontado pelo plugwash , as assinaturas originais não estão disponíveis nos espelhos e qualquer DD pode fazer upload de um binário ausente. As assinaturas originais podem ser recuperadas dos arquivos debian-devel-changes .
Em resumo , embora o sistema atual não seja perfeito, ele fornece rastreabilidade para todos os arquivos que você pode baixar dos espelhos. Existem vários esforços para melhorar a situação: construções reproduzíveis (que permitirão a verificação independente da correspondência dos binários com a fonte publicada), eliminando os binários fornecidos pelo mantenedor ...
apt-get
verifica os pacotes usando essas chaves pré-incorporadas locais, porque confia nelas?
debian-archive-keyring
pacote. apt-get
verifica Release
arquivos usando essas chaves e pacotes usando os hashes contidos nos arquivos Release
e Packages
.