Due discussioni separate mi hanno recentemente aperto gli occhi su un problema che non avevo considerato - come confermare che il binario di Open Source utilizzato si basa sul codice sorgente pubblicato.
C'è una grande discussione discussione su crittografia-randombit basata su Zooko Wilcox-O'Hearn's, fondatore e CEO di LeastAuthority.com, lettera aperta a Phil Zimmermann e Jon Callas, due dei principali dietro a Silent Circle, la società che gestiva Silent Mail che toccava l'argomento. Inoltre, un articolo del Dr. Dobbs pubblicato oggi intitolato Mettere assolutamente tutto nel controllo di versione toccato anche su di esso.
Il problema di questa domanda è la possibilità di ricompilare il codice Open Source e ottenere gli stessi risultati del binario pubblicato. In altre parole, se si ricrea lo stesso binario e lo si hash dal codice sorgente è improbabile che sia identico a causa delle differenze nelle catene di strumenti e alcune casualizzazioni nei compilatori stessi.
L'articolo del Dr. Dobbs suggerisce di mettere anche la catena di strumenti sotto controllo di versione per motivi di riproducibilità. Jon Callas sottolinea che in molti casi può essere impossibile ridistribuire la catena di strumenti per vari motivi, comprese le restrizioni di licenza. A meno che tu non stia compilando il codice da te stesso, stai aggiungendo un passaggio di fiducia al tuo set assunto in quanto il file binario non può nemmeno essere ricreato da altri con gli stessi risultati.
Ora capisco che si tratta di un rischio comprensibilmente accettato. La mia domanda è: ci sono altre discussioni o indicazioni relative a rendere il codice sorgente byte per byte riproducibile quando compilato, eliminando così la necessità di fidarsi del fornitore di binari anche Open Source? Come menzionato nella discussione di Jon Callas, Ken Thompson ha mostrato "Non puoi fidarti del codice che non ti sei completamente creato da solo." Quali sono le implicazioni sulla sicurezza dei pensieri su questo argomento?