紅帽和谷歌推出了 Sigstore,一項用於加密代碼驗證的服務

紅帽和谷歌與普渡大學一起創立了 Sigstore 項目,旨在創建工具和服務,用於使用數位簽名驗證軟體並維護公共日誌以確認真實性(透明日誌)。 該項目將在非營利組織 Linux 基金會的贊助下開發。

建議的項目將提高軟體分發管道的安全性,並防止旨在替換軟體組件和依賴項(供應鏈)的攻擊。 開源軟體的關鍵安全問題之一是難以驗證程式來源和驗證建置流程。 例如,大多數項目使用雜湊來驗證版本的完整性,但身份驗證所需的資訊通常儲存在未受保護的系統和共用程式碼儲存庫中,因此攻擊者可以破壞驗證所需的檔案並引入惡意更改而不引起懷疑。

由於管理金鑰、分發公鑰和撤銷受損金鑰的困難,只有一小部分項目在分發版本時使用數位簽章。 為了使驗證有意義,還需要組織可靠且安全的流程來分發公鑰和校驗和。 即使有了數位簽名,許多用戶也會忽略驗證,因為他們需要花時間研究驗證過程並了解哪個金鑰值得信賴。

Sigstore 被譽為相當於 Let's Encrypt for code,提供數位簽章程式碼的憑證和用於自動驗證的工具。 借助 Sigstore,開發人員可以對與應用程式相關的工件進行數位簽名,例如發布檔案、容器映像、清單和可執行檔。 Sigstore 的一個特點是用於簽署的資料反映在防篡改的公共日誌中,可用於驗證和稽核。

Sigstore 使用短期臨時金鑰,而不是永久金鑰,這些金鑰是根據OpenID Connect 提供者確認的憑證產生的(在產生數位簽章金鑰時,開發人員透過連結到電子郵件的OpenID 提供者來識別自己的身份)。 金鑰的真實性是使用公共集中日誌進行驗證的,這使得可以驗證簽名的作者是否正是他所聲稱的人,而簽名是由負責過去發布的同一參與者形成的。

Sigstore 既提供了您可以使用的現成服務,也提供了一組允許您在自己的裝置上部署類似服務的工具。 該服務對所有開發者和軟體供應商免費,並部署在一個中立的平台——Linux 基金會。 該服務的所有元件都是開源的,用 Go 編寫,並在 Apache 2.0 許可證下分發。

在開發的組件中,我們可以注意到:

  • Rekor 是一種日誌實現,用於儲存反映項目資訊的數位簽章元資料。 為了確保完整性並防止事後資料損壞,使用了樹狀結構“Merkle Tree”,其中每個分支透過聯合(樹狀)雜湊來驗證所有底層分支和節點。 有了最終的雜湊值,使用者可以驗證整個操作歷史記錄的正確性,以及資料庫過去狀態的正確性(資料庫新狀態的根驗證雜湊值是根據過去的狀態計算的) )。 為了驗證和新增記錄,提供了 Restful API 以及 cli 介面。
  • Fulcio (SigStore WebPKI) 是一個用於建立憑證授權單位 (Root-CA) 的系統,該系統根據透過 OpenID Connect 驗證的電子郵件頒發短期憑證。 憑證的生命週期為20分鐘,在此期間開發者必須有時間產生數位簽章(如果憑證隨後落入攻擊者手中,則憑證已過期)。
  • Сosign(容器簽名)是一個工具包,用於為容器產生簽名、驗證簽名並將簽名的容器放置在與 OCI(開放容器倡議)相容的儲存庫中。

來源: opennet.ru

添加評論