Zwei getrennte Diskussionen haben mir kürzlich die Augen für ein Problem geöffnet, das ich nicht in Betracht gezogen hatte. Wie man die verwendete Open Source-Binärdatei bestätigt, basiert auf dem veröffentlichten Quellcode.
Es gibt eine große Diskussion Thread über Kryptographie-Randombit, basierend auf Zooko Wilcox-O'Hearns, Gründer und CEO von LeastAuthority.com, offener Brief an Phil Zimmermann und Jon Callas, zwei der Auftraggeber hinter Silent Circle, der Firma, die Silent Mail betrieb und das Thema ansprach. Darüber hinaus wurde auch ein heute veröffentlichter Artikel von Dr. Dobbs mit dem Titel Absolut alles in die Versionskontrolle einbeziehen angesprochen.
Das Problem bei dieser Frage ist die Fähigkeit, Open Source-Code neu zu kompilieren und erhalten die gleichen Ergebnisse wie die veröffentlichte Binärdatei. Mit anderen Worten, wenn Sie dieselbe Binärdatei neu erstellen und aus dem Quellcode hashen, ist es unwahrscheinlich, dass sie aufgrund von Unterschieden in den Werkzeugketten und einigen Randomisierungen in den Compilern selbst identisch ist.
In dem Artikel von Dr. Dobbs wird vorgeschlagen, aus Gründen der Reproduzierbarkeit sogar die Werkzeugkette der Versionskontrolle zu unterziehen. Jon Callas weist darauf hin, dass es in vielen Fällen aus verschiedenen Gründen, einschließlich Lizenzbeschränkungen, unmöglich sein kann, die Toolkette neu zu verteilen. Wenn Sie den Code nicht selbst kompilieren, fügen Sie Ihrer Annahme einen Vertrauensschritt hinzu, da die Binärdatei nicht einmal von anderen neu erstellt werden kann mit den gleichen Ergebnissen.
Ich verstehe jetzt, dass dies ein verständlicherweise akzeptiertes Risiko ist. Meine Frage ist, ob es andere Diskussionen oder Hinweise gibt, wie Quellcode Byte für Byte beim Kompilieren reproduzierbar gemacht werden kann, sodass nicht mehr dem Anbieter von Open Source-Binärdateien vertraut werden muss. Wie in der Diskussion von Jon Callas erwähnt, zeigte Ken Thompson „Sie können Code nicht vertrauen, den Sie nicht vollständig selbst erstellt haben.“ Was sind die Sicherheitsaspekte zu diesem Thema?