Cómo verificar que un binario se creó realmente utilizando una versión particular de git commit/release y no a partir de una versión modificada.
Para proyectos pequeños, podemos construirlo nosotros mismos, pero para proyectos grandes, como ROM personalizadas de Android, ¿cómo verificar que la compilación sea realmente de una versión de git que afirman ser?
Editar: No se puede esperar que los archivos binarios de código abierto estén firmados, ya que son gratuitos. Las descargas se realizan desde una ubicación de terceros.
Respuesta1
No se puede esperar que los archivos binarios de código abierto estén firmados, ya que son gratuitos.
No hay ninguna contradicción en esto: firmar también es gratis. Sin embargo, no creo que esto ayude, porque alguien podría compilar maliciosamente a partir de fuentes modificadas y luego firmar el binario. Por lo tanto, firmar solo funciona si confía en el creador original y desea asegurarse de que el binario sea realmente lo que le proporcionaron y no una versión alterada.
Parece que estás buscandoconstrucciones reproducibles. Para que esto funcione, el proyecto debe basarse en una pila tecnológica y una cadena de herramientas que admitan compilaciones reproducibles. Si no es así, entonces no tienes suerte. Si es así, puede crearlo usted mismo y comparar los resultados. Tienes razón en que esto puede no ser práctico para proyectos grandes. Lamentablemente, la seguridad muchas veces tiene como coste la comodidad.
Vale la pena señalar que, en última instancia, también estás confiando en que ella cadena de herramientas no es maliciosa. Lo mismo ocurre con el hardware sobre el que estás construyendo. Tendrá que confiar en alguien, a menos que esté dispuesto a construir el hardware usted mismo y aplicar ingeniería inversa a toda la cadena de herramientas.