No puede probar que el binario que proporciona realmente coincide con un código fuente dado. No es teóricamente imposible, pero requeriría una cooperación sustancial por parte del compilador. Algunos investigadores están trabajando en ese tema para algunos idiomas que se adaptan mejor a esa tarea que C (en su mayoría ML o derivado de Lisp). En cualquier caso, aún no hay un producto disponible, y no lo estará por algún tiempo, por lo que en la práctica no es una opción.
Sus mejores opciones son entonces:
- Proporcione el código fuente (con la prueba de que es el mismo archivo que el utilizado por el revisor independiente) para que los usuarios puedan hacer la compilación ellos mismos.
- Pida a las personas que realizaron la "revisión independiente" que realicen la compilación y proporcionen el binario resultante.
En cualquier caso, los usuarios tendrán que confiar en alguien : usted, los revisores independientes ... de la misma manera que tienen que confiar en Microsoft, Intel, AMD y todas las demás partes involucradas En el edificio de la computadora. Así que tal vez la pregunta no es la correcta. El propio compilador puede empujar una puerta trasera en un código fuente limpio (hay un ejemplo muy clásico de ese tipo de truco). En lugar de preguntar cómo podría probar que el paso de la compilación no incluyó una puerta trasera, debería preguntar: ¿cómo puedo crear suficiente reputación para que la gente confíe en mí?