Com toda a paranóia que vem com as revelações da NSA e tudo mais, estou me perguntando por que o mecanismo de instalação do pacote debian não suporta HTTPS para seu transporte, e muito menos usá-lo por padrão.
Eu sei que os pacotes debian têm algum tipo de validação de assinatura usando GPG, mas ainda não acho que usar o transporte HTTPS em vez do HTTP seja muito difícil, considerando o quão crucial isso é em termos de segurança.
Edit: Eu quero principalmente me proteger de ataques do MitM (incluindo apenas sniffing de tráfego), não administradores de espelho do debian. Os repositórios HTTP colocam toda a configuração do sistema em cima da mesa, se alguém bisbilhotar meu tráfego acessando os espelhos do debian.
Respostas:
Há sim. Você precisa instalar o pacote
apt-transport-https
. Então você pode usar linhas comono seu
sources.list
arquivo. Mas geralmente isso não é necessário, pois todo o conteúdo é público e acrescenta sobrecarga e latência de criptografia. Como você não confia na chave pública de um invasor, até o tráfego http está protegido contra ataques do MitM.apt
irá avisá-lo e falhará na instalação dos pacotes quando um invasor injetar pacotes manipulados.EDIT: Como mencionado nos comentários, é realmente mais seguro usar o repositório TLS . Pesquisas mostram que o uso do apt em repositórios não criptografados pode realmente representar um risco à segurança, pois o transporte HTTP é vulnerável a ataques de repetição.
fonte
Sua suposição está errada: você pode usar downloads HTTPS. Você apenas precisa encontrar um espelho que o suporte e colocar seu URL na sua lista de fontes. Você precisará instalar o
apt-transport-https
pacote.O Debian não facilita os downloads HTTPS porque há muito pouco benefício. A distribuição de pacotes Debian já inclui um mecanismo para verificar os pacotes: todos os pacotes são assinados com o Gpg . Se um man-in-the-middle ativo redirecionar seu tráfego para um servidor com pacotes corrompidos, a corrupção será detectada porque as assinaturas GPG não serão válidas. O uso do GPG em vez do HTTPS tem a vantagem de proteger contra mais ameaças: não apenas contra o intermediário ativo na conexão do usuário final, mas também contra um espelho não autorizado ou infectado ou outros problemas em qualquer lugar da cadeia de distribuição de pacotes .
O HTTPS fornece uma pequena vantagem de privacidade, pois oculta os pacotes que você baixa. No entanto, um observador passivo ainda pode detectar o tráfego entre o seu computador e um servidor de pacotes, para que eles saibam que você está baixando pacotes Debian. Eles também podem ter uma boa idéia de quais pacotes você está baixando nos tamanhos de arquivo.
O único local em que o HTTPS ajudaria é o bootstrapping trust, para obter uma imagem de instalação válida e conhecida. O Debian parece não fornecer isso: existem somas de verificação da mídia de instalação , mas apenas por HTTP.
fonte
Recentemente, deparei-me com o repositório apt da minha empresa. O problema era que, se usarmos o transporte http padrão, qualquer outra pessoa poderá obter o pacote facilmente. Como a empresa está empacotando seu próprio software proprietário e não deseja compartilhá-lo com todos, o transporte http se torna um problema. Não é uma tragédia, mas um problema. Existem algumas maneiras de limitar o acesso ao pacote - firewall, restrição de acesso no nível de servidor da web, usando ssh como transporte. Pode ser encontrada aqui uma leitura bastante fácil de consumir: Restrinja o acesso ao seu repositório Debian privado
No nosso caso, decidimos usar o transporte https + autenticação de certificado de cliente. Resumidamente, basta:
Configure o servidor da web que está localizado no repositório para aceitar apenas https; No caso do nginx, pode parecer com:
Coloque o certificado do cliente, a chave do cliente e o certificado ca em / etc / apt / ssl e, no caso do Ubuntu, adicione o arquivo 00https ao /etc/apt/apt.conf.d:
Debug::Acquire::https "true"; Acquire::https::example.com { Verify-Peer "true"; Verify-Host "false"; CaInfo "/etc/apt/ssl/ca.crt"; SslCert "/etc/apt/ssl/client.crt"; SslKey "/etc/apt/ssl/client.key"; };
Lembre-se de que, se você estiver usando um certificado autoassinado, é importante desativar a verificação do host:
Verify-Host "false";
se você não fizer isso, verá um erro:SSL: certificate subject name (blah-blah-blah) does not match target host name 'example.com'
E aqui vamos nós, não há mais acesso não autorizado ao repositório. Então isso é uma coisa bastante útil e poderosa.
fonte
Observe que, devido a vulnerabilidades como
https://bugs.launchpad.net/ubuntu/+source/apt/+bug/1647467
... que contorna a assinatura do InRelease, provavelmente é uma boa ideia configurar o HTTPS de qualquer maneira.
fonte
Para o caso de uso "anonimato", também existe o
apt-transport-tor
que permite que você coloque URIs comotor+http://
nos arquivos sources.list. Essa é uma proteção de anonimato muito melhor do que simplesmente criptografar a conexão com seu espelho.Por exemplo, um observador local ainda saberia que você está atualizando ou instalando software, mesmo com HTTPS, e provavelmente pode fazer algumas suposições decentes sobre qual deles você está fazendo (e possivelmente até quais pacotes, com base no tamanho).
O Debian fornece repositórios APT via Tor "Onion services" para que você possa obter criptografia de ponta a ponta (semelhante ao TLS) sem precisar confiar no sistema de nome de domínio. Veja onion.debian.org para todos os serviços Debian disponíveis desta maneira. O principal repositório Debian FTP está em
vwakviie2ienjx6t.onion
fonte