APT-SECURE(8) APT APT-SECURE(8) NOME apt-secure - Suporte de autenticacao de arquivos para o APT DESCRICAO A partir da versao 0.6, o APT contem codigo que faz verificacao de assinaturas do ficheiro Release para todos os repositorios. Isto assegura que dados como pacotes no arquivo nao podem ser modificados por pessoas que nao tem acesso a chave de assinatura do ficheiro Release. A partir da versao 1.1 o APT requer repositorios para disponibilizar informacao recente de autenticacao para uma utilizacao desimpedida do repositorio. Desde a versao 1.5, as alteracoes na informacao contida no ficheiro Release acerca do repositorio precisam de ser confirmadas antes do APT continuar a aplicar actualizacoes a partir deste repositorio. Note: Todos os front-ends de gestao de pacotes como o apt-get(8), aptitude(8) e synaptic(8) suportam esta funcionalidade de autenticacao, portanto este manual usa o APT para se referir a eles todos apenas para simplificar. REPOSITORIOS NAO ASSINADOS Se um arquivo tem um ficheiro Release nao assinado ou nem sequer tem um ficheiro Release, por predefinicao todas as versoes actuais do APT irao recusar descarregar dados dele em operacoes update e mesmo que seja forcadas a faze-lo, front-ends como o apt-get(8) irao precisar de confirmacao explicita se um pedido de instalacao incluir um pacote que venha de um tal arquivo nao autenticado. Voce pode forcar todos os clientes do APT a elevar apenas avisos ao definir a opcao de configuracao Acquire::AllowInsecureRepositories para true. Tambem se consegue permitir que repositorios individuais possam ser inseguros via sources.list(5) opcao allow-insecure=yes. Note que repositorios inseguros sao fortemente desencorajados e todas as opcoes para forcar o apt a continuar a suporta-os serao eventualmente removidas. Os utilizadores tambem tem a opcao Trusted disponivel para desactivar ate os avisos, mas tenha certeza de intender as implicacoes como esta detalhado em sources.list(5). Um repositorio que anteriormente era autenticado mas que perdeu este estado numa operacao update provoca um erro em todos os clientes do APT independentemente da opcao de permitir ou proibir a utilizacao de repositorios nao seguros. O erro pode ser superado ao definir adicionalmente Acquire::AllowDowngradeToInsecureRepositories para true ou para repositorios individuais com a opcao de sources.list(5) allow-downgrade-to-insecure=yes. REPOSITORIOS ASSINADOS A corrente de confianca desde um arquivo APT ate ao utilizador final e feita em diferentes passos. O apt-secure e o ultimo passo nesta corrente, confiar num arquivo nao quer dizer que os pacotes em que confia nao possam conter codigo malicioso, mas que dizer que voce confia no responsavel do arquivo. E da responsabilidade do responsavel do arquivo assegurar que a integridade do arquivo esta correcta. O apt-secure nao reve as assinaturas ao nivel do pacote. Se voce necessita de ferramentas que o facam deve procurar pelo debsig-verify e debsign (disponibilizados nos pacotes debsig-verify e devscripts respetivamente). A corrente de confianca em Debian comeca (por exemplo) quando o responsavel faz o upload de um novo pacote ou de uma nova versao 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 responsavel de pacotes Debian (disponivel no pacote debian-keyring). As chaves dos responsaveis sao assinadas por outros responsaveis seguindo procedimentos pre-estabelecidos para assegurar a identidade do dono da chave. Existem procedimentos semelhantes em todas as distribuicoes baseadas em Debian. Assim que o pacote submetido e verificado e incluido no arquivo, a assinatura do responsavel e despojada, sao computados sumarios de verificacao do pacote e colocado no ficheiro Packages. Os sumarios de verificacao de todos os ficheiros Packages sao entao computados e colocados no ficheiro Release. O ficheiro Release e entao assinado pela chave de arquivo para este lancamento de Debian, e distribuido juntamente com os pacotes e os ficheiros Packages em mirrors de Debian. As chaves estao no chaveiro do arquivo Debian no pacote debian-archive-keyring. Os utilizadores finais podem verificar a assinatura do ficheiro Release, extrair um sumario de verificacao de um pacote a partir dele e compara-lo com o sumario de verificacao do pacote que descarregaram manualmente - ou confiar no APT que faz isto automaticamente. Note que isto e diferente de verificar assinaturas por cada pacote. E desenhado para prevenir dois ataques possiveis: o Ataques de rede "man in the middle". Sem verificacao de assinatura, um agente malicioso pode introduzir-se ele proprio no processo de descarga de pacotes e disponibilizar software malicioso seja ao controlar um elemento de rede (router, switch, etc.) ou ao redirecionar trafego para um servidor impostor (atraves de ataques de fraude de ARP ou DNS). o Mirror network compromise. Sem verificacao de assinatura, um agente malicioso pode comprometer uma maquina mirror e modificar os ficheiros dele para propagar software malicioso a todos os utilizadores que descarregam pacotes a partir dessa maquina. No entanto, isto nao defende contra um compromisso do proprio 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. ALTERACOES NA INFORMACAO Um ficheiro Release contem, para alem dos sumarios de verificacao para os ficheiros no repositorio, tambem informacao geral acerca do repositorio como a origem, nome de codigo ou numero de versao do lancamento. Este informacao e mostrada em diversos lugares para que o dono do repositorio deve sempre assegurar a exatidao. Mais ainda, mais configuracao do utilizador como apt_preferences(5) podem depender e fazer uso desta informacao. Desde a versao 1.5 que o utilizador tem de confirmar explicitamente as alteracoes para sinalizar que o utilizador esta suficientemente preparado, por exemplo, para o novo lancamento maior da da distribuicao enviada para o repositorio (como por exemplo indicada pelo nome de codigo). CONFIGURACAO DO UTILIZADOR O apt-key e o programa que gere a lista de chaves usada pelo APT para confiar nos repositorios. Pode ser usado para adicionar assim como para listar as chaves confiadas. Limitando quais chave(s) sao capazes de assinar qual arquivo e possivel via Signed-By em sources.list(5). Note que uma instalacao predefinida ja contem todas as chaves para adquirir em seguranca pacotes a partir dos repositorios predefinidos, portanto perder tempo com o apt-key so e necessario se forem adicionados repositorios de terceiros. De modo a adicionar uma chave nova voce precisa primeiro de descarrega-la (voce deve certificar-se que esta a usar um canal de comunicacao de confianca quando a obtem), 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 voce configurou. CONFIGURACAO DO REPOSITORIO Se voce deseja fornecer assinaturas de arquivo a um arquivo sob sua manutencao, voce tem que: o Criar um ficheiro Release de nivel de topo, se este ja nao existir. Voce pode fazer isto ao correr apt-ftparchive release (disponibilizado no apt-utils). o Assina-lo. Voce pode fazer isso ao correr gpg --clearsign -o InRelease Release e gpg -abs -o Release.gpg Release. o Publicar a impressao digital da chave, para que os seus utilizadores irao saber que chave precisam de importar de modo a autenticar os ficheiros no arquivo. E melhor enviar a sua chave no seu proprio pacote chaveiro como Debian faz com debian-archive-keyring para ser capaz de distribuir actualizacoes e transicoes de chave mais tarde automaticamente. o Disponibilize instrucoes em como adicionar o seu arquivo e chave. Se os seus utilizadores nao conseguirem a sua chave seguramente a cadeia de confianca descrita em cima fica comprometida. Como voce pode os utilizadores a adicionar a sua chave depende do seu arquivo e do alcance de audiencia ao ter o sue pacote de ficheiro incluido num outro arquivo que os utilizadores ja tem configurado (como os repositorios predefinidos da distribuicao que usam) para elevar a teia da confianca. Sempre que o conteudo do arquivo mude (sao adicionados novos pacotes ou removidos), o responsavel do arquivo tem que seguir os primeiros dois passos previamente delineados. VEJA TAMBEM apt.conf(5), apt-get(8), sources.list(5), apt-key(8), apt- ftparchive(1), debsign(1), debsig-verify(1), gpg(1) Para mais informacao de fundo voce deve querer reler a Infraestrutura de Seguranca da Debian[1] no capitulo do Manual Debian de Seguranca (disponivel tambem no pacote harden-doc) e o Strong Distribution HOWTO[2] de V. Alex Brennen. BUGS pagina 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). AUTOR APT foi escrito pela equipa do APT . AUTORES DO MANUAL Este manual e baseado no trabalho de Javier Fernandez-Sanguino Pena, Isaac Jones, Colin Walters, Florian Weimer e Michael Vogt. TRADUCAO A traducao Portuguesa foi feita por Americo Monteiro de 2009 a 2012. A traducao foi revista pela equipa de traducoes portuguesas da Debian . Note que este documento traduzido pode conter partes nao traduzidas. Isto e feito propositadamente, para evitar perdas de conteudo quando a traducao esta atrasada relativamente ao conteudo original. AUTORES Jason Gunthorpe Equipa do APT NOTAS 1. Infraestrutura de Seguranca da Debian https://www.debian.org/doc/manuals/securing-debian-howto/ch7 2. Strong Distribution HOWTO http://www.cryptnet.net/fdp/crypto/strong_distro.html 3. pagina de bugs do APT https://bugs.debian.org/src:apt APT 2.9.5 06 Agosto 2016 APT-SECURE(8)