¿Puede un programa interpretado en ejecución, por ejemplo, en lenguajes como python, javascript, ruby, java o php, probar criptográficamente que es lo mismo que una versión de código fuente publicada de una manera que no pueda ser manipulada?
De otra manera, ¿existe alguna forma de garantizar que los comandos / código ejecutados por dicho programa sean todos y solo los comandos y el código especificados en un repositorio divulgado públicamente?
La motivación para esta pregunta es la siguiente: En una época de hackers altamente sofisticados, así como las presiones de las agencias gubernamentales para "puertas traseras" que les permiten husmear en transacciones e intercambios privados, ¿podemos asegurarnos de que una aplicación no haya sido ninguna de las dos? ha sido hackeado ni se ha agregado una puerta trasera?
Por ejemplo, considere un servidor que ejecuta código python como PyBitMessage (Bitmessage / PyBitmessage en github) para mensajes seguros.
O considere una aplicación nodejs basada en código abierto como lesspass (lesspass / lesspass en github) que se usa para administrar contraseñas y está disponible para usar aquí ( enlace ).
O un programa alternativo para un propósito similar encryptr (SpiderOak / Encryptr on github) con su versión descargable ( enlace ).
¿Hay alguna manera de garantizar que las versiones disponibles en sus sitios para descargar / usar / instalar ejecuten exactamente el mismo código que se presenta en el código fuente abierto?
Incluso si tenemos un 100% de confianza en la integridad de los equipos que están detrás de aplicaciones como estas, ¿cómo podemos estar seguros de que nadie los ha obligado a modificar la versión en ejecución / descargable de su programa para crear una puerta trasera, por ejemplo? ?
Gracias por su ayuda con este importante tema.
Nota: como esta pregunta se refiere a programas interpretados, la conversación sobre construcciones deterministas o reproducibles no pareció aplicarse y pareció valer una nueva pregunta.