Segurança na Atualização do Debian [RESOLVIDO]

1. Segurança na Atualização do Debian [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 03/08/2012 - 15:38h

Olá a todos.

Estava vendo o método de atualização do Debian e vi que ele atualiza por ftp e http.

Como esses métodos não protocolos seguros, gostaria de saber em como se daria a segurança caso a transmissão de dados fosse interceptada e modificada por uma terceira pessoa colocada no meio do caminho interceptando a comunicação.

Desde já agradeço.


  


2. MELHOR RESPOSTA

VM
tn4ehi

(usa Outra)

Enviado em 04/08/2012 - 04:44h

Os pacotes do debian são assinados digitalmente com uma chave gpg criptografada. O sistema só instala os pacotes caso a assinatura passe na validação, além da checagem do md5sum do arquivo. Isso garante que somente os arquivos distribuidos originalmente pelo Debian possam ser instalados.

Basta imaginar que um mantenedor de pacote tem uma chave pública. Ele faz um release do pacote assinado e upa para o incoming do debian e então é feita a verificação da chave para comprovar que se trata realmente do indivíduo esperado. Se o empacotamento estiver correto e a assinatura bater o pacote vai para o repositório unstable e fica lá por um bom tempo. Logo após é enviado para o repositório testing, que significa que o pacote e suas dependências cumpriram com todas as normas e critérios exigidos pelo Debian, até ser finalmente enviado para o repositório estável.

Não existe nenhuma maneira de alterar o conteúdo de um arquivo sem alterar o seu md5sum, e também é improvável que o individuo consiga falsificar uma assinatura gpg de modo a ser reconhecida pelo sistema.



3. Re: Segurança na Atualização do Debian [RESOLVIDO]

Andre (pinduvoz)
pinduvoz

(usa Debian)

Enviado em 04/08/2012 - 05:02h

tn4ehi escreveu:

Os pacotes do debian são assinados digitalmente com uma chave gpg criptografada. O sistema só instala os pacotes caso a assinatura passe na validação, além da checagem do md5sum do arquivo. Isso garante que somente os arquivos distribuidos originalmente pelo Debian possam ser instalados.

Basta imaginar que um mantenedor de pacote tem uma chave pública. Ele faz um release do pacote assinado e upa para o incoming do debian e então é feita a verificação da chave para comprovar que se trata realmente do indivíduo esperado. Se o empacotamento estiver correto e a assinatura bater o pacote vai para o repositório unstable e fica lá por um bom tempo. Logo após é enviado para o repositório testing, que significa que o pacote e suas dependências cumpriram com todas as normas e critérios exigidos pelo Debian, até ser finalmente enviado para o repositório estável.

Não existe nenhuma maneira de alterar o conteúdo de um arquivo sem alterar o seu md5sum, e também é improvável que o individuo consiga falsificar uma assinatura gpg de modo a ser reconhecida pelo sistema.



Sim, é isso mesmo.

Além da chave, o apt checa o download pelo md5sum.

Algumas distros usam hashsums mais completos, como o SHA1.


4. Re: Segurança na Atualização do Debian [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 04/08/2012 - 08:26h

tn4ehi escreveu:

Os pacotes do debian são assinados digitalmente com uma chave gpg criptografada. O sistema só instala os pacotes caso a assinatura passe na validação, além da checagem do md5sum do arquivo. Isso garante que somente os arquivos distribuidos originalmente pelo Debian possam ser instalados.

Basta imaginar que um mantenedor de pacote tem uma chave pública. Ele faz um release do pacote assinado e upa para o incoming do debian e então é feita a verificação da chave para comprovar que se trata realmente do indivíduo esperado. Se o empacotamento estiver correto e a assinatura bater o pacote vai para o repositório unstable e fica lá por um bom tempo. Logo após é enviado para o repositório testing, que significa que o pacote e suas dependências cumpriram com todas as normas e critérios exigidos pelo Debian, até ser finalmente enviado para o repositório estável.

Não existe nenhuma maneira de alterar o conteúdo de um arquivo sem alterar o seu md5sum, e também é improvável que o individuo consiga falsificar uma assinatura gpg de modo a ser reconhecida pelo sistema.



Obrigado pela resposta. Estive revirando um repositório tentando me aprofundar no que você explicou e conforme compreendi e que vi que não precisava perguntar fui eliminando desse texto.

No caso, os arquivos .deb baixados vão para /var/cache/apt/archives, então eu peguei um arquivo com o tipo de programa que funciona prá root. Desempacotei não haviam arquivos que tivessem essa informação.

Então as informações de autenticidade devem vir durante o apt-get update. Um arquivo do repositório possuia chamado Packages.bz2 possuia algo como isso:

Package: apt-build
Priority: optional
Section: devel
Installed-Size: 204
Maintainer: Julien Danjou <acid@debian.org>
Architecture: amd64
Version: 0.12.37
Depends: libc6 (>= 2.7-1), perl, apt (>= 0.5), gcc, g++, dpkg-dev (>= 1.9), libappconfig-perl (>= 1.5), libapt-pkg-perl (>= 0.1.11), debconf | debconf-2.0, devscripts, apt-utils
Recommends: fakeroot, build-essential
Filename: pool/main/a/apt-build/apt-build_0.12.37_amd64.deb
Size: 36670
MD5sum: b9eb5620e35f94c3560183eb1adc42a8
SHA1: 7bffc1a8ba9f78a475d8fd425862b19ecb9434ef
SHA256: e36fb2cec62a678e1875c1cc57fb208c465167e95f51970c6827cd47a621086b
Description: frontend to apt to build, optimize and install packages
This is an apt-get front-end for compiling software optimized
for your architecture by creating a local repository with built packages.
It can manage system upgrades too.
Tag: admin::package-management, devel::debian, devel::packaging, implemented-in::perl, interface::commandline, role::program, scope::utility, suite::debian, works-with::software:package, works
-with::software:source


Esse arquivo tem apenas lista de pacotes. Não há uma identificação dele nele mesmo.

Então a única coisa que ele faz seria conferir se o pacote baixado confere com os checksums informados anteriormente. Conferir dependências etc.

Daí eu procurei por qualquer coisa a ver com criptografia que você falou e encontrei arquivos chamados Release e Release.gpg, idênticos com isto dentro:

Origin: Debian
Label: Debian
Suite: stable
Version: 6.0.5
Codename: squeeze
Date: Sat, 12 May 2012 12:07:58 UTC
Architectures: amd64 armel i386 ia64 kfreebsd-amd64 kfreebsd-i386 mips mipsel powerpc s390 sparc
Components: main contrib non-free
Description: Debian 6.0.5 Released 12 May 2012
MD5Sum:
c80459f860240dcf6afe94b45fa0c35e 18309712 Contents-amd64.gz
4f9d68466e7b79ad2ce3cf422becbc0d 17845048 Contents-armel.gz
5251148d818a783e85fae051ac08f5a9 18516948 Contents-i386.gz
8153c8968afbe4d2d2b99149a9865512 17778772 Contents-ia64.gz
400f3eae553168f03dae39ecfc5ea384 17227870 Contents-kfreebsd-amd64.gz
b1cb466866976e38728043bf5860e2e7 17240714 Contents-kfreebsd-i386.gz
8a030fe2f11458a5bee5f39af1926b99 17805848 Contents-mips.gz
b2373383f45bdc862b214ca35dcb3043 17845218 Contents-mipsel.gz
2ce3cbf9e621f6fd2be9eea94e74bd70 18075393 Contents-powerpc.gz
3a4709db6d483be9ea0235e633d8d9c8 17794076 Contents-s390.gz
9b3afeb851732e4b586b792c3a1b9d20 17927067 Contents-sparc.gz
98cc07a49023188a90588934a970d358 37 Contents-udeb-nf.gz
d991669b82e90a46d17792db478c5fc5 68198 Contents-udeb.gz


Além do md5 ele também tem o sha1 e o sha256 de cada pacote que contém checksum de tudo. Ainda são hashes.

Dentro do diretório individual do pacote existem os binários compilados para todas as arquiteturas, sendo que há um arquivo menor comparado com outros com este conteúdo:

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Format: 1.0
Source: apt-build
Binary: apt-build
Architecture: any
Version: 0.12.37
Maintainer: Julien Danjou <acid@debian.org>
Standards-Version: 3.8.0
Vcs-Browser: http://git.debian.org/?p=apt-build/apt-build.git
Vcs-Git: git://git.debian.org/git/apt-build/apt-build.git
Build-Depends: debhelper (>> 5.0.0), po4a, po-debconf
Checksums-Sha1:
a72ee0f646a0e2147f07f1b26a73ff13135b96ef 44127 apt-build_0.12.37.tar.gz
Checksums-Sha256:
a553152f0c05d7f2dbfbe93760328c984b05d9bb8ee560417eafcfe7d6880479 44127 apt-build_0.12.37.tar.gz
Files:
4f749c8a913855658321637544c3006a 44127 apt-build_0.12.37.tar.gz

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)

iEYEARECAAYFAkjx/yIACgkQpGK1HsL+5c2cdgCeOOjwrcsAbSvKRlLejYAsY5ls
u0AAoMR4VqGiDUjkyyHb0WWAZh4bQNJ2
=w5XC
-----END PGP SIGNATURE-----


Oobservei as informações e há algo que não percebi:

Packages:
MD5sum: b9eb5620e35f94c3560183eb1adc42a8
SHA1: 7bffc1a8ba9f78a475d8fd425862b19ecb9434ef
SHA256: e36fb2cec62a678e1875c1cc57fb208c465167e95f51970c6827cd47a621086b
Description: frontend to apt to build, optimize and install packages


DSC no diretório do arquivo:
Checksums-Sha1: a72ee0f646a0e2147f07f1b26a73ff13135b96ef 44127 apt-build_0.12.37.tar.gz
Checksums-Sha256: a553152f0c05d7f2dbfbe93760328c984b05d9bb8ee560417eafcfe7d6880479 44127 apt-build_0.12.37.tar.gz
Files: 4f749c8a913855658321637544c3006a 44127 apt-build_0.12.37.tar.gz


Pelo que você disse, essa é a chave da autenticação de instalação; os hashes diferem devem ser cada um de alguma outra coisa.

Eu me lembro do funcionamento do PGP (supondo que GPG seja semelhante) e de chave assimétrica.

No caso, a alteração de pacote só seria possível em dois casos:

* interceptando o mantenedor: se ele usa chave assimétrica deve ser bem difícil interceptar a transmissão e ainda enviar um pacote criptografado com a mesma chave.

* interceptando o usuário: se a conexão não for criptografada, tudo pode ser interceptado e mudado. Então qual seria a garantia da garantia da garantia ... ? Há alguma coisa de antes no sistema que casa com a chave. O reconhecimento de assinatura.

Há muitos arquivos a serem baixados, muitos hashes, encontrei a chave, compreendi o funcionamento.

Eu deve ter lido seu texto umas 30 vezes. Está tudo certo com o distribuidor. Eu só não entendi como eu garanto que o sistema não será alterado com interceptação de download.

Creio que só falta saber isso. Obrigado novamente.


5. Re: Segurança na Atualização do Debian [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 04/08/2012 - 08:42h

tn4ehi escreveu:

Os pacotes do debian são assinados digitalmente com uma chave gpg criptografada. O sistema só instala os pacotes caso a assinatura passe na validação, além da checagem do md5sum do arquivo. Isso garante que somente os arquivos distribuidos originalmente pelo Debian possam ser instalados.

Basta imaginar que um mantenedor de pacote tem uma chave pública. Ele faz um release do pacote assinado e upa para o incoming do debian e então é feita a verificação da chave para comprovar que se trata realmente do indivíduo esperado. Se o empacotamento estiver correto e a assinatura bater o pacote vai para o repositório unstable e fica lá por um bom tempo. Logo após é enviado para o repositório testing, que significa que o pacote e suas dependências cumpriram com todas as normas e critérios exigidos pelo Debian, até ser finalmente enviado para o repositório estável.

Não existe nenhuma maneira de alterar o conteúdo de um arquivo sem alterar o seu md5sum, e também é improvável que o individuo consiga falsificar uma assinatura gpg de modo a ser reconhecida pelo sistema.



Muito boa sua explicação sobre o assunto tn4ehi. mas aproveitando o tópico faço uma pergunta, o que a M$ faz então para manter a segurança de suas atualizações ? usa algum tipo de criptografia ?

Desculpe está usando este tópico amigo Listeiro_037 para responder a minha pergunta.


6. Re: Segurança na Atualização do Debian [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 04/08/2012 - 08:54h

Tudo bem. Desde que todo mundo não resolva mudar de assunto e esquecer da minha dúvida :-) apesar de ser estranho isso ocorrer logo com a M$.

Da M$ eu espero qualquer coisa porque não é transparente ao usuário. É invisível mesmo.

Mas do Linux, filosofia aberta, está disponível para qualquer um entender. Não é uma canetada que muda a compatibilidade de uma hora prá outra.

Sendo o repositório acessível por ftp, em tese dá prá fazer um script meia-boca que automatize isso, rascunhão mesmo.

Fica difícil não pensar em MITMA sem criptografia.


7. Re: Segurança na Atualização do Debian [RESOLVIDO]

Andre (pinduvoz)
pinduvoz

(usa Debian)

Enviado em 04/08/2012 - 08:55h

A explicação, na minha opinião, é suficiente, pois sendo os arquivos assinados digitalmente e conferidos por hashsums não tem como alterar interceptando o download.

E quanto às atualizações do windows, também são digitalmente assinadas e conferidas pelo programa de atualização após o download.

Mas... havendo acesso indevido aos repositórios, podem ser mudados os pacotes e os arquivos de controle (hashsums), fazendo com que atualizações se tornem inseguras.

Isso já aconteceu com os repositórios do Fedora, como dá para ver no meu primeiro artigo para o VOL:

http://va.mu/XWsb

Vejam o segundo comentário ao artigo.


8. Re: Segurança na Atualização do Debian [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 04/08/2012 - 09:08h

pinduvoz escreveu:

A explicação é suficiente, pois sendo os arquivos assinados digitalmente e conferidos por hashsums não tem como alterar interceptando o download.

E quanto às atualizações do windows, também são digitalmente assinadas e conferidas pelo programa de atualização após o download.

Mas... havendo acesso indevido aos repositórios, podem ser mudados os pacotes e os arquivos de controle (hashsums), fazendo com que atualizações se tornem inseguras.

Isso já aconteceu com os repositórios do Fedora, como dá para ver no meu primeiro artigo para o VOL:

http://va.mu/XWsb

Vejam o segundo comentário ao artigo.


Obrigado por responder a minha questão pinduvoz !

Mas veja bem a questão, se alguém invadir e alterar os hashssums dos pacotes dos repositórios não terá como falsificar também a assinatura dos pacotes sem ser percebido, pois no minimo as pessoas que vão instalar algum pacote pelo repositório os próprios gerenciadores de pacotes vão verificar a assinatura e vão ver que houve uma alteração, pois os pacotes baixados estarão com uma assinatura diferente, isso já aconteceu comigo e não consegui instalar os pacotes.


9. Re: Segurança na Atualização do Debian [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 04/08/2012 - 09:29h

pinduvoz escreveu:

A explicação, na minha opinião, é suficiente, pois sendo os arquivos assinados digitalmente e conferidos por hashsums não tem como alterar interceptando o download.

E quanto às atualizações do windows, também são digitalmente assinadas e conferidas pelo programa de atualização após o download.

Mas... havendo acesso indevido aos repositórios, podem ser mudados os pacotes e os arquivos de controle (hashsums), fazendo com que atualizações se tornem inseguras.

Isso já aconteceu com os repositórios do Fedora, como dá para ver no meu primeiro artigo para o VOL:

http://va.mu/XWsb

Vejam o segundo comentário ao artigo.


Mas quais hashsums? Os que foram modificados e enviados ou os que o cara que interceptou poderia enviar se também esperasse por essa requisição? Se alguém fizesse tal interceptação, seja lá por que for, seria bem possível essa festa toda.

A menos que a chave servisse para uma verificação de alguma coisa criptografada com a outra chave do par no servidor remoto não haveria certeza do sistema agir corretamente.

Essa parte é que me parece indefinida ainda. Exatamente como é a verificação.


10. Re: Segurança na Atualização do Debian [RESOLVIDO]

Andre (pinduvoz)
pinduvoz

(usa Debian)

Enviado em 04/08/2012 - 09:30h

Lembro que o pessoal do Fedora resolveu criar um novo repositório do zero porque levaria muito tempo para checar todos os pacotes. Isso quer dizer que, ao menos em tese, era possível "driblar" a segurança.

Lembrei também que os repositórios do kernel.org também foram comprometidos e reconstruídos em outro lugar.


11. Re: Segurança na Atualização do Debian [RESOLVIDO]

Andre (pinduvoz)
pinduvoz

(usa Debian)

Enviado em 04/08/2012 - 09:34h

Eu acho que não apenas os pacotes são autenticados. As fontes ou repositórios também devem ser autenticados, garantindo o download de um lugar confiável.

Tem muita gente paranoica desenvolvendo e usando Linux. Por isso que eu mesmo nunca me preocupei muito com a segurança de repositórios e fontes.


12. Re: Segurança na Atualização do Debian [RESOLVIDO]

VM
tn4ehi

(usa Outra)

Enviado em 04/08/2012 - 11:22h

pinduvoz escreveu:

Eu acho que não apenas os pacotes são autenticados. As fontes ou repositórios também devem ser autenticados, garantindo o download de um lugar confiável.

Tem muita gente paranoica desenvolvendo e usando Linux. Por isso que eu mesmo nunca me preocupei muito com a segurança de repositórios e fontes.


Sim, os próprios repositórios são autenticados com gpg, os casos citados anteriormente como o do fedora, são isolados, foram invasões diretas ao servidor, não foi a segurança dos pacotes nem do repositório que foi comprometida e sim do servidor que estava hospedando o conteúdo.





01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts