APT-SECURE(8) | APT | APT-SECURE(8) |
apt-secure - Suporte de autenticação de arquivos para o APT
A partir da versão 0.6, o APT contém código que faz verificação de assinaturas do ficheiro Release para todos os repositórios. Isto assegura que dados como pacotes no arquivo não podem ser modificados por pessoas que não têm acesso à chave de assinatura do ficheiro Release. A partir da versão 1.1 o APT requer repositórios para disponibilizar informação recente de autenticação para uma utilização desimpedida do repositório. Desde a versão 1.5, as alterações na informação contida no ficheiro Release acerca do repositório precisam de ser confirmadas antes do APT continuar a aplicar actualizações a partir deste repositório.
Note: Todos os front-ends de gestão de pacotes como o apt-get(8), aptitude(8) e synaptic(8) suportam esta funcionalidade de autenticação, portanto este manual usa o APT para se referir a eles todos apenas para simplificar.
Se um arquivo tem um ficheiro Release não assinado ou nem sequer tem um ficheiro Release, por predefinição todas as versões actuais do APT irão recusar descarregar dados dele em operações update e mesmo que seja forçadas a fazê-lo, front-ends como o apt-get(8) irão precisar de confirmação explícita se um pedido de instalação incluir um pacote que venha de um tal arquivo não autenticado.
Você pode forçar todos os clientes do APT a elevar apenas avisos ao definir a opção de configuração Acquire::AllowInsecureRepositories para true. Também se consegue permitir que repositórios individuais possam ser inseguros via sources.list(5) opção allow-insecure=yes. Note que repositórios inseguros são fortemente desencorajados e todas as opções para forçar o apt a continuar a suporta-os serão eventualmente removidas. Os utilizadores também têm a opção Trusted disponível para desactivar até os avisos, mas tenha certeza de intender as implicações como está detalhado em sources.list(5).
Um repositório que anteriormente era autenticado mas que perdeu este estado numa operação update provoca um erro em todos os clientes do APT independentemente da opção de permitir ou proibir a utilização de repositórios não seguros. O erro pode ser superado ao definir adicionalmente Acquire::AllowDowngradeToInsecureRepositories para true ou para repositórios individuais com a opção de sources.list(5) allow-downgrade-to-insecure=yes.
A corrente de confiança desde um arquivo APT até ao utilizador final é feita em diferentes passos. O apt-secure é o último passo nesta corrente, confiar num arquivo não quer dizer que os pacotes em que confia não possam conter código malicioso, mas que dizer que você confia no responsável do arquivo. É da responsabilidade do responsável do arquivo assegurar que a integridade do arquivo está correcta.
O apt-secure não revê as assinaturas ao nível do pacote. Se você necessita de ferramentas que o façam deve procurar pelo debsig-verify e debsign (disponibilizados nos pacotes debsig-verify e devscripts respetivamente).
A corrente de confiança em Debian começa (por exemplo) quando o responsável faz o upload de um novo pacote ou de uma nova versão de um pacote para o arquivo Debian. De modo a se tornar efectivo, este upload precisa de ser assinado por uma chave contida em um dos chaveiros de responsável de pacotes Debian (disponível no pacote debian-keyring). As chaves dos responsáveis são assinadas por outros responsáveis seguindo procedimentos pré-estabelecidos para assegurar a identidade do dono da chave. Existem procedimentos semelhantes em todas as distribuições baseadas em Debian.
Assim que o pacote submetido é verificado e incluído no arquivo, a assinatura do responsável é despojada, são computados sumários de verificação do pacote e colocado no ficheiro Packages. Os sumários de verificação de todos os ficheiros Packages são então computados e colocados no ficheiro Release. O ficheiro Release é então assinado pela chave de arquivo para este lançamento de Debian, e distribuído juntamente com os pacotes e os ficheiros Packages em mirrors de Debian. As chaves estão no chaveiro do arquivo Debian no pacote debian-archive-keyring.
Os utilizadores finais podem verificar a assinatura do ficheiro Release, extrair um sumario de verificação de um pacote a partir dele e compara-lo com o sumário de verificação do pacote que descarregaram manualmente - ou confiar no APT que faz isto automaticamente.
Note que isto é diferente de verificar assinaturas por cada pacote. É desenhado para prevenir dois ataques possíveis:
No entanto, isto não defende contra um compromisso do próprio servidor mestre (o qual assina os pacotes) ou contra um compromisso da chave usada para assinar os ficheiros Release. Em qualquer caso, este mecanismo pode complementar uma assinatura por-pacote.
Um ficheiro Release contém, para além dos sumários de verificação para os ficheiros no repositório, também informação geral acerca do repositório como a origem, nome de código ou número de versão do lançamento.
Este informação é mostrada em diversos lugares para que o dono do repositório deve sempre assegurar a exatidão. Mais ainda, mais configuração do utilizador como apt_preferences(5) podem depender e fazer uso desta informação. Desde a versão 1.5 que o utilizador tem de confirmar explicitamente as alterações para sinalizar que o utilizador está suficientemente preparado, por exemplo, para o novo lançamento maior da da distribuição enviada para o repositório (como por exemplo indicada pelo nome de código).
O apt-key é o programa que gere a lista de chaves usada pelo APT para confiar nos repositórios. Pode ser usado para adicionar assim como para listar as chaves confiadas. Limitando quais chave(s) são capazes de assinar qual arquivo é possível via Signed-By em sources.list(5).
Note que uma instalação predefinida já contém todas as chaves para adquirir em segurança pacotes a partir dos repositórios predefinidos, portanto perder tempo com o apt-key só é necessário se forem adicionados repositórios de terceiros.
De modo a adicionar uma chave nova você precisa primeiro de descarrega-la (você deve certificar-se que está a usar um canal de comunicação de confiança quando a obtém), adiciona-la com apt-key e depois correr apt-get update para que o apt possa descarregar e verificar os ficheiros InRelease ou Release.gpg dos arquivos que você configurou.
Se você deseja fornecer assinaturas de arquivo a um arquivo sob sua manutenção, você tem que:
Sempre que o conteúdo do arquivo mude (são adicionados novos pacotes ou removidos), o responsável do arquivo tem que seguir os primeiros dois passos previamente delineados.
apt.conf(5), apt-get(8), sources.list(5), apt-key(8), apt-ftparchive(1), debsign(1), debsig-verify(1), gpg(1)
Para mais informação de fundo você deve querer reler a Infraestrutura de Segurança da Debian[1] no capítulo do Manual Debian de Segurança (disponível também no pacote harden-doc) e o Strong Distribution HOWTO[2] de V. Alex Brennen.
página de bugs do APT[3]. Se deseja reportar um bug no APT, por favor veja /usr/share/doc/debian/bug-reporting.txt ou o comando reportbug(1).
APT foi escrito pela equipa do APT <apt@packages.debian.org>.
Este manual é baseado no trabalho de Javier Fernández-Sanguino Peña, Isaac Jones, Colin Walters, Florian Weimer e Michael Vogt.
A tradução Portuguesa foi feita por Américo Monteiro <a_monteiro@netcabo.pt> de 2009 a 2012. A tradução foi revista pela equipa de traduções portuguesas da Debian <traduz@debianpt.org>.
Note que este documento traduzido pode conter partes não traduzidas. Isto é feito propositadamente, para evitar perdas de conteúdo quando a tradução está atrasada relativamente ao conteúdo original.
Jason Gunthorpe
Equipa do APT
06 Agosto 2016 | APT 2.6.1 |