如何驗證二進位檔案實際上是使用特定版本的 git commit/release 建構的,而不是從修改版本建構的。
對於小型項目,我們可以自己建立它,但對於像 Android 自訂 ROM 這樣的大型項目,如何驗證建置是否確實來自他們聲稱的 git 版本?
編輯:不能指望開源二進位檔案會被簽名,因為它們是免費的。下載是從第三方位置進行的。
答案1
不能指望開源二進位檔案會被簽名,因為它們是免費的。
這裡不矛盾:簽名也是免費的。但我認為這沒有幫助,因為有人可能會惡意地從修改後的來源建置然後簽署二進位檔案。因此,只有當您信任原始建置者並希望確保二進位檔案確實是他們提供的而不是更改的版本時,簽名才有效。
聽起來您正在尋找可重複的構建。為此,該專案必須基於支援可重複建構的技術堆疊和工具鏈。如果不是,那你就不走運了。如果是,您可以自己建立並比較結果。你是對的,這對於大型專案來說可能不切實際。不幸的是,安全性往往是以便利性為代價的。
值得注意的是,最終您仍相信工具鏈不是惡意的。對於您正在建立的硬體也是如此。您必須信任某人,除非您願意自己建立硬體並對整個工具鏈進行逆向工程。