在 前面的文章 我回憶起微軟要求 TPM 版本 2 模塊能夠使用 Windows 11 的先例。我指的是預裝 Windows 8 的計算機使用 UEFI 而不是 BIOS 來引導加載程序和安全啟動模塊的要求已預先安裝。 現在我要談談,在我看來,Linux 處理問題的錯誤方式。
Linux 和安全啟動
安全啟動要求啟動的每個程序都有一個簽名,以保證其存儲在主板非易失性存儲器數據庫中的真實性。 有兩種方式可以出現在該數據庫中。 是廠商自帶的還是微軟自帶的。
一些 Linux 發行版與 Microsoft 達成的解決方案 這家公司接受了二進制簽名,負責啟動每個發行版的引導加載程序. 這些二進製文件已提供給社區。
隨後,Linux 基金會將推出一個可供所有發行版採用的通用解決方案。
為了尋找更好的解決方案,紅帽開發人員向 Linus Torvalds 提出以下建議:
嗨,萊納斯,
你能包括這個補丁集嗎?
提供一種功能,通過該功能可以將密鑰動態添加到以安全引導模式運行的內核中。 為了允許在這種情況下加載密鑰,我們要求新密鑰由我們已經擁有(並且我們信任)的密鑰簽名,其中我們“已經擁有”的密鑰可以包括嵌入內核中的密鑰, UEFI 數據庫和加密硬件中的那些。
現在“keyctl add”已經可以處理像這樣簽名的 X.509 證書,但是微軟的簽名服務只會對可執行的 EFI PE 二進製文件進行簽名。
我們可以要求用戶重新啟動進入 BIOS,添加密鑰,然後切換回來,但在某些情況下,我們希望能夠在內核運行時執行此操作。
我們想出的解決方法是將包含密鑰的 X.509 證書嵌入到 EFI PE 二進製文件中名為“.keylist”的部分中,然後獲取 Microsoft 簽名的二進製文件
萊納斯詞
Linus 的回應(讓我們記住,在他的精神撤退之前,重新考慮他與他人的關係的態度)如下:
注意:以下文字包含髒話
伙計們,這不是吸公雞比賽。
如果您想使用 PE 二進製文件,請繼續。 如果紅帽想要加深與微軟的關係,那是*你的*問題。 這與我維護的內核無關. 您可以輕鬆擁有一個簽名引擎來解析 PE 二進製文件、驗證簽名並使用您自己的密鑰對生成的密鑰進行簽名。 看在上帝的份上,代碼已經寫好了,就在那個該死的包含請求中。
我為什麼要在乎? 為什麼內核要關心一些愚蠢的“我們只簽署 PE 二進製文件”? 我們支持 X.509,這是簽名標準。
這可以在用戶級別完成。 沒有理由在內核中這樣做。
萊納斯
我的觀點是,Linus 是一次正確的。 實際上 微軟不應該勒索 Linux 基金會和發行版。 確實,用戶可能已經丟失。 但是,後來證明,Windows 8 失敗了,XP 繼續統治了更長時間。
現實是,當微軟面臨一場戰鬥時,它被迫遵守標準. 這發生在她使用 SIlverlight 失敗並被迫採用 HTML 5 Web 標準時,發生在她不得不放棄 Web 渲染引擎開發並將 Edge 建立在 Chromium 上時。
我們也不應該忘記,為了吸引程序員,它必須包括在 Windows 上運行 Linux 的能力。
Linux 發行版比以往任何時候都處於更好的位置,可以為用戶提供繼續使用功能完美的硬件的替代方案。
確切地說,GNU/Linux 世界中的任何人都不應該去微軟或任何公司,我們必須成為計算自由的阻力和倡導者,我們已經受夠了手機的監獄,所以現在我們不得不接受要求只讓一家公司受益。
據我所知,微軟的決定甚至從來沒有讓它自己的生態系統受益,這只是一個營銷問題,相信如果你不能運行 tpm 2,你會改變計算機只是為了能夠運行 w 11,如果有的話微軟最重要的是自我,未來是Linux而不是Windows,對我來說,微軟的決定是讓用戶更接近Linux的最佳選擇
我喜歡 Linux,但缺乏安全啟動支持迫使我只有 Ubuntu 想要更多的架構,太糟糕了,因為想要跟上當前他們正在失去的用戶