Dos discusiones separadas me han abierto los ojos recientemente a un problema que no había considerado: cómo confirmar que el binario de código abierto que uno usa se basa en el código fuente publicado.
Hay una gran discusión hilo sobre criptografía basada en randombit en Zooko Wilcox-O'Hearn's, fundador y CEO de LeastAuthority.com, carta abierta a Phil Zimmermann y Jon Callas, dos de los directores detrás de Silent Circle, la compañía que dirigía Silent Mail que tocó el tema. Además, un artículo del Dr. Dobbs publicado hoy titulado Poniendo Absolutamente Todo en el Control de Versiones tocado en él también.
El problema que preocupa a esta pregunta es la capacidad de volver a compilar el código de código abierto y obtener los mismos resultados que el binario publicado. En otras palabras, si recrea el mismo binario y lo hash del código fuente, es poco probable que sea idéntico debido a las diferencias en las cadenas de herramientas y algunas aleatorizaciones en los compiladores.
El artículo del Dr. Dobbs sugiere poner incluso la cadena de herramientas bajo el control de versiones por razones de reproducibilidad. Jon Callas señala que en muchos casos puede ser imposible redistribuir la cadena de herramientas por varias razones, incluidas las restricciones de licencia. A menos que esté compilando el código usted mismo, está agregando un paso de confianza a su conjunto de supuestos ya que el binario no puede ser recreado por otros con los mismos resultados.
Ahora entiendo que este es un riesgo comprensible comprensible. Mi pregunta es: ¿existen otras discusiones o indicios relativos a la reproducción de byte a byte de código fuente cuando se compilan, eliminando así la necesidad de confiar en el proveedor de binarios incluso de código abierto? Como se menciona en la discusión de Jon Callas, Ken Thompson mostró "No puedes confiar en el código que no creaste totalmente". ¿Cuáles son los pensamientos de implicaciones de seguridad sobre este tema?