Por que não há transporte https para a ferramenta debian apt?

41

Com toda a paranoia que veio com as revelações da NSA e tudo mais, estou me perguntando por que o mecanismo de instalação de pacotes da Debian não suporta HTTPS para o seu transporte, muito menos usá-lo por padrão.

Eu sei que os pacotes debian têm algum tipo de validação de assinatura usando o GPG, mas ainda não acho que usar o transporte HTTPS em vez de HTTP seria muito difícil, considerando o quão crucial é a segurança.

Edit: Eu principalmente quero me proteger de ataques MitM (incluindo apenas sniffing de tráfego), não administradores de espelho debian. Repositórios HTTP colocam toda a configuração do sistema na tabela, se alguém rastrear o meu tráfego em espelhos da Debian.

    
por zaadeh 11.09.2013 / 14:04

5 respostas

45

Existe. Você precisa instalar o pacote apt-transport-https . Então você pode usar linhas como

 deb https://some.server.com/debian stable main

no seu arquivo sources.list . Mas geralmente isso não é necessário, já que todo o conteúdo é público de qualquer maneira e adiciona sobrecarga e latência de criptografia. Como você não confia em uma chave pública de invasores, até mesmo o tráfego HTTP está protegido contra ataques MitM. apt avisará você e não instalará os pacotes quando um invasor injeta pacotes manipulados.

EDIT: Como mencionado nos comentários, é realmente mais seguro usar o repositório TLS . A pesquisa mostra que usar o apt em repositórios não criptografados pode, de fato, representar um risco à segurança, já que o transporte HTTP é vulnerável a ataques de repetição.

    
por 11.09.2013 / 14:11
17

Sua suposição está errada: você pode usar downloads HTTPS. Você só precisa encontrar um espelho que ofereça suporte a ele e coloque seu URL na sua lista de fontes. Você precisará instalar o pacote apt-transport-https .

O Debian não facilita o download de HTTPS, pois há muito pouco benefício. A distribuição de pacotes Debian já inclui um mecanismo para verificar pacotes: todos os pacotes são assinados com o Gpg . Se um man-in-the-middle ativo redireciona seu tráfego para um servidor com pacotes corrompidos, a corrupção será detectada porque as assinaturas GPG não serão válidas. Usar GPG em vez de HTTPS tem a vantagem de proteger contra mais ameaças: não apenas contra o man-in-the-middle ativo na conexão do usuário final, mas também contra um espelho nocivo ou infectado ou outros problemas em qualquer lugar da cadeia de distribuição de pacotes .

O HTTPS oferece uma pequena vantagem de privacidade, pois obscurece os pacotes que você baixa. No entanto, um observador passivo ainda pode detectar tráfego entre seu computador e um servidor de pacotes, para que eles saibam que você está baixando pacotes Debian. Eles também podem ter uma boa ideia de quais pacotes você está baixando do tamanho dos arquivos.

O único local em que o HTTPS ajudaria é a inicialização da confiança, para obter uma imagem de instalação válida e conhecida. O Debian não parece prover isso: existem checksums de mídia de instalação , mas somente em HTTP.

    
por 12.09.2013 / 02:37
9

Recentemente, descobri o problema com o repositório apt da minha empresa. O problema é que, se usarmos o padrão de transporte http, qualquer outra pessoa pode obter o pacote facilmente. Como a empresa está empacotando seu próprio software proprietário e não quer compartilhá-lo com todos, o transporte http se torna um problema. Não é uma tragédia, mas um problema. Há algumas maneiras de limitar o acesso ao pacote - firewall, restringindo o acesso no nível do servidor da Web, usando o ssh como um transporte. Muito fácil de consumir lendo sobre este tópico pode ser encontrado aqui: Restringir o acesso ao seu repositório privado Debian

No nosso caso, decidimos usar autenticação de transporte https + certificado de cliente. Resumidamente, basta:

  1. Prepare certificados, cliente e servidor autoassinados (usando o easy-rsa);
  2. Configure o servidor da web que faz frente ao repositório para aceitar apenas https; No caso do nginx, pode parecer:

    server {
    
      listen 443;
    
      root /path/to/public;
      server_name secure_repo;
    
      ssl on;
      ssl_certificate /etc/nginx/ssl/server.crt;
      ssl_certificate_key /etc/nginx/ssl/server.key;
    
      ssl_session_timeout 5m;
    
      ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
      ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv3:;
    
      ssl_prefer_server_ciphers on;
      ssl_client_certificate /etc/nginx/ssl/ca.crt;
      ssl_verify_client on;
    
      location / {
         autoindex on;
      }
    }
    
  3. 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.

    
por 04.03.2015 / 03:54
6

Observe que devido a vulnerabilidades como

link

... o que contorna a assinatura do InRelease, provavelmente é uma boa ideia configurar o HTTPS de qualquer maneira.

    
por 15.12.2016 / 07:20
3

Para o caso de uso "anonimato", há também apt-transport-tor , que permite colocar URIs como tor+http:// em arquivos sources.list. Isso é muito melhor proteção anonimato do que simplesmente criptografar a conexão ao 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 ter que confiar no sistema de nomes de domínio. Veja onion.debian.org para todos os serviços Debian disponíveis desta forma. O repositório principal do Debian FTP está em vwakviie2ienjx6t.onion

    
por 17.03.2016 / 17:16