Linux 探索認證開發者及其代碼的新方法——以下是其運作方式
Linux 核心維護者提出了更不痛苦的開發者識別流程。看看它如何讓 Linux 代碼比以往更安全。
Linux-Terminal.com 的主要收穫
- Linux 核心正在朝著一種更好的方式來識別開發者及其程式碼發展。
- 其他開源專案也可以使用這種新方法。
- 它還沒有被推出,但我預計在明年的這個時候會部署完成。
加州納帕——用歌曲開發者皮特·湯申德的不朽名言來說,『那麼,你是誰?(你是誰?誰,誰,誰,誰?)我真的很想知道!』 Linux 核心維護者也有同樣的疑問:誰是他們的程式設計師,核心社群又如何確保他們提交的程式碼真的是自己的呢?
數十年來,Linux 核心開發者使用 Pretty Good Privacy (PGP) 來識別開發者及其釋出產物。Git 的 PGP 整合使得簽名標籤能夠驗證程式碼庫的完整性,簽名提交則防止駭客冒充合法開發者。
在2011年,駭客成功入侵了主要的 Linux 開發網站 kernel.org。之後,為了確保這種事情不再發生,核心的 PGP 信任網絡在2011年核心高峰會期間的一個面對面密鑰簽署會議中被明確地“引導建立”。
最近,xz 工具被一名惡意開發者入侵,差點導致惡意軟體感染 Linux。
一個痛苦的過程
如今,想要擁有 kernel.org 帳號的核心維護者,必須找到已經在 PGP 信任網絡中的人,與他們面對面見面,出示政府發行的身份證件,並讓對方簽署自己的金鑰。這個過程就像一場人工、全球性的尋寶遊戲。Linux 核心維護者 Greg Kroah-Hartman 在 Linux 基金會會員高峰會上形容這個過程「操作和管理起來都很麻煩」。之所以如此,是因為這個過程是由人工腳本追蹤的,金鑰會逐漸過期,且公開的「誰住在哪裡」地圖會帶來隱私和社交工程風險。
因此,核心維護者正在努力用一個去中心化、保護隱私的身份層來取代這個脆弱的 PGP 密鑰簽名信任網,這個身份層可以為開發者和他們簽名的代碼提供擔保。
他們的新方法,我稱之為 Linux ID,本週由 Linux 基金會去中心化信任領袖 Daniela Barbosa 和 Hart Montgomery,以及合作夥伴、開放標準數位信任公司 Affinidi 的執行長 Glenn Gore 一同提出。Linux ID 的目的是為核心社群提供一種更靈活的方式來證明人們的身份,以及誰不是該身份,而無需依賴脆弱的金鑰簽署會議或臨時視頻通話。
Linux ID 的核心是一套建立在現代數位身份標準上的加密「人身證明」,而非傳統的 PGP 金鑰簽署。系統不是單一的整體信任網,而是發行和交換人身憑證與可驗證憑證,用來聲明例如「此人是真實個體」、「此人受僱於 X 公司」,或者「這位 Linux 維護者曾見過此人並確認他是核心維護者」等資訊。
與發行者無關且可組合
這些憑證可以透過多種方式進行認證:在可行的情況下,政府發行的數位身份證;類似簽證申請中心的第三方身份驗證機構;雇主;或者由 Linux 基金會本身作為發行者。
蒙哥馬利強調,這個模型是刻意設計為不依賴特定發行者且可組合的:如果兩個開發者對不同的發行者有信任,他們仍然可以找到重疊的信任路徑,而且獨立發行者越多,整個系統就變得越強大。
從技術上講,Linux ID 是建立在去中心化標識符(DIDs)之上的。這是一種 W3C 風格的機制,用於創建全球唯一的 ID 並將公鑰和服務端點附加到其上。開發者可以創建 DIDs,可能使用當今 PGP 世界中現有的基於 Curve25519 的密鑰,並通過安全通道(例如基於 HTTPS 的 “did:web” 端點)發布 DID 文檔,以公開他們的公鑰基礎設施以及可以發送加密消息的地方。
此外,該項目使用去中心化的消息傳遞架構,可以是 REST、DIDComm 或其他跨信任協議。這使參與者能夠建立關係並交換憑證,而無需透露他們的實際位置或網絡拓撲。每個關係使用自己隨機的臨時 DID,使運行消息基礎設施的觀察者更難推斷誰在與誰交談,或者繪製核心的社交圖譜。
在一次實時演示中,Gore 演示了新開發者如何在沒有先前憑證的情況下生成身份、加入 Linux 基金會社群,然後使用點對點 DIDs 與另一位參與者建立關係。一旦該關係建立,雙方便可以交換更豐富、可驗證的關係憑證(VRCs),記錄例如關係開始的時間、所反映的信任程度以及憑證應保持有效的時長等資訊。
對於核心維護者而言,這個想法是這些憑證可以支撐簽署代碼背後的身份:維護者不必僅依賴數年前在會議上簽署的 PGP 金鑰,而可以檢查一組最新的憑證,證明他們所看到的金鑰屬於 Linux 基金會、其雇主或其他受信任發行者認可的同一個人。這些憑證可以被輸入到透明度日誌和其他審計系統中。
蒙哥馬利等人小心地說,Linux ID 不會神奇地防止另一個類似 xz 的供應鏈攻擊,但他們認為它確實實質性地提高了成本。攻擊者不再只是需要單一的 PGP 金鑰和少數幾個簽名,而是需要從可以撤銷憑證的發行者以及其自身聲譽也在風險中的社群成員那裡,累積並維護多個短期有效的憑證,同時他們的活動會被流式記錄到公開或半公開的透明度日誌中。
它是一個技術堆疊,而不是固定的政策
系統的設計也促使使用較短期限的證明:發行者被鼓勵發行有效期為幾天或幾週的憑證,而不是幾年,並依賴信任登記冊,即便發行者和持有人不再直接聯繫,也能標記已撤銷的憑證。流動憑證與登記冊支持的撤銷相結合,使社群在發現貢獻者並非其聲稱的身份,或真實開發者的設備或密鑰遭到破壞時,有更多手段可以應對。
會議中反覆強調的一個主題是,Linux ID 是一個技術棧,而不是固定政策。從核心內核到其他 Linux 基金會項目的不同社群,都將能夠選擇他們信任的發行者、對不同角色所需的證明程度,以及 AI 代理是否可以在授權憑證下執行自動化任務,如持續整合或補丁測試。
同樣的機制讓維護者可以為人類貢獻者擔保,也可以以加密方式將有限的權限委派給 AI 代理或服務,使用獨立的憑證和信任環境,如果出現問題可以獨立撤銷。來自哈佛應用社交媒體實驗室的研究人員和其他人已經在實驗兼容的應用程式,將人類和 AI 參與者混合在同樣具有憑證感知的對話中,這暗示了 Linux ID 可能如何與未來的開發工具相互交集。
Linux 身份尚未部署。Kroah-Hartman 表示這項工作仍處於探索和原型階段。計畫是在未來一年將討論帶到 Linux Plumbers 和 Kernel Summit。在短期內,kernel.org 可以將現有的 PGP 信任網導入新系統以便於遷移,同時維護者可以在與現行 PGP 為基礎的流程並行的情況下開始測試這些工具。
Barbosa 和其他人將這項工作框架化為 Linux 基金會推動去中心化信任基礎設施的更廣泛努力的一部分。換句話說,這項技術不僅僅是為內核開發者而設。它適用於任何面臨快速惡化的身份和真實性危機的開源社群或 AI 驅動的生態系統。
一旦部署,未來的開發者和程式碼將不僅由簽署的標籤支援,還有一個豐富的、可加密驗證的故事,說明誰站在其背後。這意味著 Linux 程式碼將比以往更加安全。
