Como 99% dos usuários, eu instalo o Ubuntu a partir de binários prontos.
Como posso verificar se esses binários são de fato do código fonte original do Ubuntu?
Seria bom verificar se a NSA / alguém não colaborou com o Ubuntu ou o Linode (meu provedor de VPS) para mexer nos binários. Se pudéssemos verificar os binários, seria improvável que eles tentassem isso em primeiro lugar, pois seria fácil chamá-los.
apt-get source
ou usá-lo para compilar seu próprio código. Veja esta pergunta: askubuntu.com/questions/28372/…Respostas:
Você pode baixar o código fonte e compilá-lo você mesmo. Mas espere - primeiro você deve verificar esse código fonte, porque se a Canonical colaborou com a NSA, provavelmente eles inseriram algum código em algum lugar para permitir um keylogger ou algo que possa ser ativado remotamente.
Tão...
Mas espere - você pode confiar no compilador ?
fonte
Se você não está disposto a aceitar "porque o Ubuntu diz isso", não pode.
fonte
O Ubuntu oferece meios convenientes para compilar um pacote em sua própria máquina. No entanto, não há como verificar se o executável em um pacote binário que você baixou foi obtido a partir desse código-fonte. O processo de assinatura usado pelo Ubuntu reduz substancialmente o risco de adulteração dos pacotes por terceiros, mas você ainda precisa confiar que nenhum código nocivo foi adicionado antes da compilação que não se reflete no código fonte para download.
A razão é que é tremendamente difícil obter exatamente os mesmos binários que existem nos pacotes compilados, pois eles dependem da versão precisa do compilador, de suas opções e provavelmente também existem alguns caminhos ou variáveis de ambiente compiladas no binário. Portanto, você não será capaz de obter exatamente o mesmo binário ao se compilar, o que "verificaria" o binário baixado.
Na verdade, existe uma pequena comunidade de pesquisa em torno precisamente desse problema - como tornar a compilação reproduzível.
Dito isto, uma comparação manual de um binário baixado e um auto-compilado pode detectar código adicionado / modificado, portanto, seria arriscado para alguém que oferece binários e o código-fonte ocultar algo nos binários, pois isso pode ser detectado.
Mas também há o problema de confiar no compilador, como já mencionado ...
fonte
É um problema difícil criar exatamente os mesmos binários em duas máquinas diferentes. O projeto TOR faz isso como parte regular de sua construção. Há uma descrição de como eles fazem isso. O Debian e o Fedora parecem ter projetos que tornam isso possível para essas distribuições, mas eles estão nos estágios iniciais. Parece que não há nenhum trabalho feito no Ubuntu .
Para reproduzir um pacote binário do Ubuntu, você precisaria reproduzir o ambiente em que foi criado o mais próximo possível. Para começar, primeiro você precisa descobrir onde e como esses pacotes foram compilados. Não parece que essa informação seja fácil de encontrar.
fonte
Verificando com o MD5 do Ubuntu. Se o MD5 que você obtiver dos seus arquivos corresponder ao publicado pelo Ubuntu, ninguém alterou os binários entre eles.
fonte
Esse é um trabalho difícil, acho que a confiança aqui é melhor do que esse trabalho complicado. Mas a pergunta você pode confiar?
Como o software de código aberto oferece muitas liberdades para os usuários alterarem o código, você não pode confiar em ninguém.
Vamos criar um cenário para esse fim, quero verificar se o meu
Ubuntu == source code
, espera Por que você não tenta comparar pacotes com a fonte deles?Mas para mim, comparando bem, dou pequenos resultados diferentes devido a diferentes timestamps, ambientes, mas isso prova que não é do código-fonte!
fonte