如果我購買一台裝有 Windows 8 和安全啟動的計算機,我仍然可以安裝 Linux 嗎?

如果我購買一台裝有 Windows 8 和安全啟動的計算機,我仍然可以安裝 Linux 嗎?

我聽說過很多關於 Microsoft 如何在 Windows 8 中實現 UEFI 安全啟動的資訊。自由軟體基金會發起了一場反對安全啟動的運動,許多人在網路上說這是微軟「奪取權力」以「消除自由作業系統」。

如果我得到一台預先安裝了 Windows 8 和安全啟動的計算機,以後我仍然可以安裝 Linux(或其他作業系統)嗎?或者俱有安全啟動功能的電腦只能在 Windows 上運行嗎?

答案1

首先簡單回答一下你的問題:

  • 如果您有 ARM 平板電腦執行 Windows RT(例如 Surface RT 或 Asus Vivo RT),然後您將無法停用安全啟動或安裝其他作業系統。與許多其他 ARM 平板電腦一樣,這些設備將僅有的運行他們附帶的作業系統。

  • 如果您有非 ARM 計算機運行 Windows 8(例如 Surface Pro 或任何具有 x86-64 處理器的無數超級本、桌上型電腦和平板電腦),然後您可以完全停用安全啟動,或者您可以安裝自己的金鑰並簽署自己的引導程式。無論哪種方式,您可以安裝第三方作業系統,例如 Linux 發行版或 FreeBSD 或 DOS 或任何你喜歡的東西。


現在,關於整個安全啟動實際上如何運作的細節:有很多關於安全啟動的錯誤訊息,特別是來自自由軟體基金會和類似團體的資訊。這使得很難找到有關安全啟動實際功能的信息,因此我將盡力解釋。請注意,我個人沒有開發安全啟動系統或類似的經驗;這只是我從網路上閱讀學到的。

首先,安全啟動是不是微軟想出來的東西。他們是第一個廣泛實施它的人,但他們並不是發明它的。它是UEFI 規範的一部分,這基本上是您可能習慣的舊 BIOS 的更新版本。 UEFI 基本上是作業系統和硬體之間進行通訊的軟體。 UEFI 標準是由一個名為“UEFI論壇”,由包括微軟、蘋果、英特爾、AMD 和少數電腦製造商在內的計算行業代表組成。

第二個最重要的一點,在電腦上啟用安全啟動不會不是意味著電腦永遠無法啟動任何其他作業系統。事實上,微軟自己的 Windows 硬體認證要求規定,對於非 ARM 系統,您必須能夠停用安全啟動並更改金鑰(以允許其他作業系統)。不過稍後會詳細介紹。

 

安全啟動有什麼作用?

從本質上講,它可以防止惡意軟體透過啟動順序攻擊您的電腦。透過引導程式進入的惡意軟體可能很難偵測和阻止,因為它可以滲透作業系統的低階功能,使防毒軟體無法察覺。安全啟動真正要做的就是驗證引導程式是否來自可信任來源,並且沒有被竄改。可以將其想像為瓶子上的彈出式瓶蓋,上面寫著「如果蓋子彈出或密封件被篡改,請勿打開」。

原封條破損時按鈕會彈出

在最高等級的保護中,您擁有平台金鑰 (PK)。任何系統上都只有一個 PK,並且由 OEM 在製造過程中安裝。此密鑰用於保護 KEK 資料庫。 KEK 資料庫保存金鑰交換金鑰,用於修改其他安全啟動資料庫。可以有多個 KEK。然後是第三級:授權資料庫(db)和禁止資料庫(dbx)。其中包含有關憑證授權單位、附加加密金鑰以及分別允許或封鎖的 UEFI 裝置映像的資訊。為了允許引導程式運行,必須使用以下密鑰對其進行加密簽名:在資料庫中,並且不是在 dbx 中。

平台金鑰 > KEK >(允許的雜湊值/不允許的雜湊值)
圖片來自建置 Windows 8:使用 UEFI 保護預作業系統環境

這在真實的 Windows 8 認證系統上如何運作

OEM 產生自己的 PK,Microsoft 提供一個 KEK,OEM 需要將其預先載入到 KEK 資料庫中。然後,Microsoft 對 Windows 8 引導程式進行簽名,並使用其 KEK 將此簽名放入授權資料庫中。當UEFI啟動電腦時,它會驗證PK,驗證微軟的KEK,然後驗證開機載入程式。如果一切正常,則作業系統可以啟動。

Windows 8 中的安全啟動:本機 UEFI > 僅經過驗證的作業系統載入程式 > 作業系統啟動 / UEFI 將僅啟動經過驗證的作業系統載入程式 / 惡意軟體無法切換啟動載入程序
圖片來自建置 Windows 8:使用 UEFI 保護預作業系統環境

 

Linux 等第三方作業系統從何而來?

首先,任何 Linux 發行版都可以選擇產生 KEK 並要求 OEM 預設將其包含在 KEK 資料庫中。這樣他們就可以像微軟一樣對啟動過程進行控制。這樣做的問題,如由 Fedora 的 Matthew Garrett 解釋,是 a) 很難讓每個 PC 製造商都包含 Fedora 的密鑰,b) 這對其他 Linux 發行版不公平,因為它們的密鑰不會包含在內,而且較小的發行版沒有那麼多 OEM夥伴關係。

Fedora 選擇做的(其他發行版也正在效仿)是使用 Microsoft 的簽章服務。此方案需要向 Verisign(Microsoft 使用的憑證授權單位)支付 99 美元,並授予開發人員使用 Microsoft 的 KEK 對其引導程式進行簽署的能力。由於 Microsoft 的 KEK 已存在於大多數電腦中,因此他們可以簽署引導程式以使用安全引導,而無需自己的 KEK。它最終與更多的計算機兼容,並且總體成本比建立自己的密鑰簽名和分發系統要低。在前面提到的部落格文章中,有一些關於它如何運作的更多細節(使用 GRUB、簽署的核心模組和其他技術資訊),如果您對此類事情感興趣,我建議您閱讀該文章。

假設您不想處理註冊微軟系統的麻煩,或者不想支付 99 美元,或者只是對以 M 開頭的大公司懷恨在心。微軟硬體認證 需要OEM 允許使用者將系統進入 UEFI「自訂」模式,在該模式下他們可以手動修改安全啟動資料庫和 PK。系統可以進入 UEFI 設定模式,使用者甚至可以指定自己的 PK,並自行簽署引導程式。

此外,Microsoft 自己的認證要求強制 OEM 提供在非 ARM 系統上停用安全啟動的方法。您可以關閉安全啟動!唯一無法停用安全啟動的系統是運行 Windows RT 的 ARM 系統,其功能與 iPad 更相似,無法載入自訂作業系統。儘管我希望能夠更改 ARM 裝置上的作業系統,但可以公平地說,微軟正在遵循有關平板電腦的行業標準。

 

那麼安全啟動本質上不是邪惡的嗎?

因此,正如您希望看到的那樣,安全啟動並不是邪惡的,並且不僅限於與 Windows 一起使用。 FSF 和其他機構對此感到如此不安的原因是它確實為使用第三方作業系統增加了額外的步驟。 Linux 發行版可能不喜歡付費使用 Microsoft 金鑰,但這是讓 Linux 安全啟動工作的最簡單且最具成本效益的方法。幸運的是,關閉安全啟動很容易,並且可以添加不同的金鑰,從而無需與 Microsoft 打交道。

鑑於先進惡意軟體的數量不斷增加,安全啟動似乎是一個合理的想法。這並不是一個想要統治世界的邪惡陰謀,也沒有一些自由軟體專家讓你相信的那麼可怕。

邪惡的 UEFI 標誌

補充閱讀:


長話短說:安全啟動可防止惡意軟體在啟動過程中以無法偵測到的低水平感染您的系統。任何人都可以創建必要的密鑰來使其工作,但很難說服電腦製造商分發你的金鑰對每個人來說,因此您也可以選擇向 Verisign 付費,以使用 Microsoft 的金鑰來簽署您的引導程式並使其正常運作。您也可以停用安全啟動任何非 ARM 計算機。

最後一個想法,關於 FSF 反對安全啟動的運動:他們的一些擔憂(即這使得它更難安裝免費作業系統)有效到某一點。然而,由於上述原因,說這些限制將「阻止任何人啟動 Windows 以外的任何東西」顯然是錯誤的。反對 UEFI/安全啟動作為技術的運動是短視的、誤導的,而且不太可能有效。更重要的是確保製造商真正遵循微軟的要求,允許用戶停用安全啟動或更改金鑰(如果他們願意)。

相關內容