Como el 99% de los usuarios, instalo Ubuntu desde binarios ya preparados.
¿Cómo puedo verificar que esos binarios son en realidad del código fuente original de Ubuntu?
Sería bueno verificar que NSA / alguien no ha colaborado con Ubuntu o Linode (mi proveedor de VPS) para meterse con los binarios. Si pudiéramos verificar los archivos binarios, tampoco sería probable que lo intentaran en primer lugar, ya que sería fácil llamarlos.
apt-get source
o usarlo para compilar el suyo. Vea esta pregunta: askubuntu.com/questions/28372/…Respuestas:
Puede descargar el código fuente y compilarlo usted mismo. Pero espere, primero debe verificar ese código fuente, porque si Canonical colaboró con la NSA, probablemente hayan ingresado algún código en algún lugar para permitir un keylogger o algo que se pueda activar de forma remota.
Asi que...
Pero espera, ¿puedes confiar en el compilador ?
fuente
Si no estás dispuesto a aceptar "porque Ubuntu lo dice", entonces no puedes.
fuente
Ubuntu ofrece medios convenientes para compilar un paquete en su propia máquina. Sin embargo, no hay forma de verificar que el ejecutable en un paquete binario que descargó se haya obtenido de ese código fuente. El proceso de firma utilizado por Ubuntu reduce el riesgo de que terceros manipulen sustancialmente los paquetes, pero aún debe confiar en que no se ha agregado ningún código dañino antes de la compilación que no se refleja en el código fuente descargable.
La razón es que es tremendamente difícil obtener exactamente los mismos binarios que hay en los paquetes compilados, ya que dependen de la versión precisa del compilador, sus opciones y, probablemente, también hay algunas rutas o variables de entorno compiladas en el binario. Por lo tanto, no podrá obtener exactamente el mismo binario al compilarse, lo que "verificaría" el binario descargado.
En realidad, existe una pequeña comunidad de investigación en torno a este problema: cómo hacer que la compilación sea reproducible.
Dicho esto, una comparación manual de un archivo binario descargado y uno autocompilado puede detectar el código agregado / modificado, por lo que sería riesgoso para alguien que ofrece archivos binarios y el código fuente ocultar algo en los archivos binarios, ya que esto se puede detectar.
Pero también está el problema de confiar en el compilador, como ya se mencionó ...
fuente
Es un problema difícil crear exactamente los mismos binarios en dos máquinas diferentes. El proyecto TOR hace esto como parte regular de su construcción. Hay una descripción de cómo lo hacen. Debian y Fedora parecen tener proyectos que hacen esto posible para estas distribuciones, pero están en las primeras etapas. No parece que se haya realizado ningún trabajo en Ubuntu .
Para reproducir un paquete binario de Ubuntu, necesitaría reproducir el entorno en el que fue creado lo más cerca posible. Para comenzar con eso, primero debe averiguar dónde y cómo se compilaron estos paquetes. No parece que esa información sea fácil de encontrar.
fuente
Comprobando con el MD5 de Ubuntu. Si el MD5 que obtiene de sus archivos coincide con el publicado por Ubuntu, nadie ha alterado los archivos binarios intermedios.
fuente
Ese es un trabajo difícil, creo que confiar aquí es mejor que este trabajo complicado. Pero la pregunta ¿Puedes confiar?
Debido a que el software de código abierto ofrece muchas libertades para que los usuarios cambien el código, no puede confiar en nadie.
Hagamos un escenario para este propósito, quiero comprobar que mi
Ubuntu == source code
, espera ¿Por qué no intentas comparar paquetes con su fuente?Pero para mí, si comparo bien, le daré resultados diferentes menores debido a diferentes marcas de tiempo, entornos, ¡pero eso prueba que no es del código fuente!
fuente