反Secure Boot垄断:兼谈如何在Windows 8电脑上安装Linux
一、自由軟件基金會的呼吁
上周,2012年將近結(jié)束的時候,自由軟件基金會(FSF)發(fā)出呼吁,要求人們繼續(xù)支持反Secure Boot壟斷,希望簽名者能達到5萬人(目前是4萬)。
我覺得,這個呼吁很重要。如果我們不支持,未來就無法自由地使用硬件、安裝自己想要的軟件。
這絕非危言聳聽。而且,由于這個事件直接與Windows 8操作系統(tǒng)有關(guān),因此意味著一切已經(jīng)迫在眉睫了。
下面,我根據(jù)自己的理解,談?wù)勥@到底怎么回事。如果你是一個Linux愛好者,或者喜歡自己安裝操作系統(tǒng),下面的內(nèi)容與你直接相關(guān)。
二、BIOS和UEFI
所有電腦啟動的時候,都會運行BIOS程序,用于初始化硬件。
自從個人電腦誕生后,就一直如此。過去30年我們都在使用類似上圖的畫面,設(shè)置硬件參數(shù)。不用說,BIOS已經(jīng)變得日益不適用了。
1998年,Intel牽頭,聯(lián)合AMD、AMI、Apple、Dell、HP、IBM、Lenovo、Microsoft和Phoenix等業(yè)界主要廠商,開始制定新一代BIOS。這個項目叫做"統(tǒng)一的可擴展固定接口"(Unified Extensible Firmware Interface),簡稱UEFI。2005年推出1.1版,目前是2.3版。
將來一開機,電腦運行的將不是BIOS,而是UEFI BIOS。等它運行結(jié)束,再載入操作系統(tǒng)。
三、微軟的態(tài)度
UEFI是一個很先進的、面向未來的規(guī)格。但是很長時間內(nèi)無法推廣,原因就是微軟公司不積極。
Windows操作系統(tǒng)是桌面市場的主流系統(tǒng),如果它不推廣UEFI,就沒有硬件廠商會跟進。所以,普通消費者對這個新規(guī)格所知甚少。
意想不到的變化,出現(xiàn)在2011年9月,微軟毫無預(yù)兆地突然宣布,Windows 8將啟用UEFI。
這本來是一件好事。但是,問題是微軟感興趣的不是整個UEFI,而是UEFI的一個子規(guī)格Secure Boot。它要強行部署Secure Boot。
四、Secure Boot
Secure Boot只是UEFI的一個部分。兩者的關(guān)系是局部與整體的關(guān)系。
Secure Boot的目的,是防止惡意軟件侵入。它的做法就是采用密鑰。UEFI規(guī)定,主板出廠的時候,可以內(nèi)置一些可靠的公鑰。然后,任何想要在這塊主板上加載的操作系統(tǒng)或者硬件驅(qū)動程序,都必須通過這些公鑰的認證。也就是說,這些軟件必須用對應(yīng)的私鑰簽署過,否則主板拒絕加載。由于惡意軟件不可能通過認證,因此就沒有辦法感染Boot。
這個設(shè)想是好的。但是,UEFI沒規(guī)定哪些公鑰是可靠的,也沒規(guī)定誰負責(zé)頒發(fā)這些公鑰,都留給硬件廠商自己決定。
現(xiàn)在,微軟就是要求,主板廠商內(nèi)置Windows 8的公鑰。
五、Windows 8
首先明確,在不打開Secure Boot的情況下,Windows 8可以安裝。這與安裝以前版本的Windows沒有差別。
但是,微軟規(guī)定,所有預(yù)裝Windows 8的廠商(即OEM廠商)都必須打開Secure Boot。因此,消費者購買一臺預(yù)裝Windows 8的臺式機或筆記本,想要在上面再安裝其他操作系統(tǒng)(包括以前版本的Windows)是不可能的,除非關(guān)閉Secure Boot,或者其他操作系統(tǒng)能夠通過Windows 8公鑰的認證。
如果選擇關(guān)閉Secure Root,那么預(yù)裝的Windows 8將無法使用,需要重新安裝。
六、實例:微星主板
ITwire的記者Sam Varghese,做了一個實驗,想了解在打開Secure Boot的主板上,如何安裝操作系統(tǒng)。
實驗對象是微星公司Z77A-G41主板。它帶有Secure Boot功能,默認是關(guān)閉的。
第一步,開機后按Delete鍵,進入BIOS,選擇Windows 8 Configuration選項。
第二步,選擇最后一個Secure Boot選項。
第三步,打開(Enabled)Secure Boot功能,然后選擇最后一個Key Management(密鑰管理)選項。
第四步,輸入廠商提供的公鑰,也就是Windows 8的公鑰(目前,任何其他操作系統(tǒng)都沒有這類公鑰。)
第五類,安裝Windows 8之后,在命令行界面輸入confirm-securebootuefi命令,結(jié)果為true,表示secureboot功能打開。
根據(jù)Sam Varghese測試,打開Secure Boot之后,再安裝其他操作系統(tǒng)(包括以前版本的Windows),全部被主板拒絕。
七、對Linux的影響
Secure Boot規(guī)格的本意是,讓操作系統(tǒng)廠商自行選擇公鑰,通過認證。但是實際上,只有微軟公司才有能力,讓主板廠商內(nèi)置它的公鑰,其他公司都不具備這種能力。
因此,如果要在打開Secure Boot的主板上安裝Linux系統(tǒng),這個系統(tǒng)就必須通過Windows 8的認證。
目前,微軟公司把Windows 8的數(shù)字簽名外包給了Verisign。操作系統(tǒng)廠商想要通過認證,就必須花99美元,向Verisign買一張數(shù)字證書,嵌入自家的操作系統(tǒng)。
最新動態(tài)是,Linux的各個發(fā)行版之中,Ubuntu已經(jīng)購買了數(shù)字證書,Fedora和SUSE計劃購買,其他發(fā)行版還沒做出決定。
因此,在預(yù)裝Windows 8的電腦上安裝Linux(或其他操作系統(tǒng))的最佳做法,就是進入BIOS,關(guān)閉Secure Boot。但是,這意味著你花錢買來的Windows 8將無法使用。
八、為什么Windows 8的公鑰不可接受?
目前看上去,Linux購買Windows 8的數(shù)字證書,是眼下唯一可行的相對容易的解決方法。但是,這種做法不可接受。
首先,系統(tǒng)的公鑰被微軟控制,后果難以預(yù)料。如果微軟決定更換和廢除這個公鑰,Linux就要被迫跟進。
其次,Linux的啟動管理器Grub是GPL許可證,該許可證(第三版)明文禁止軟件使用密鑰配合硬件阻止一部分用戶的使用,因此要改用非GPL許可證的啟動管理器。
再次,只有幾個較大的Linux發(fā)行版才有能力購買數(shù)字證書,較小的發(fā)行版和用戶自己定制的版本最終還是需要有自己的公鑰。
九、關(guān)于移動設(shè)備
Secure Boot對移動設(shè)備的影響,比PC還要嚴重。
微軟明確規(guī)定,所有PC主板必須帶有關(guān)閉Secure Boot的選項。這不是因為微軟的善意,而是因為如果不這樣做,它一定會遭到反壟斷起訴。
但是,在移動設(shè)備領(lǐng)域,微軟不占優(yōu)勢,所以它就沒有顧慮,規(guī)定所有安裝Windows的移動設(shè)備的Secure Boot必須打開,而且沒有關(guān)閉選項。
微軟的平板電腦Surface RT就是一個最好的例子。它的Secure Boot是打開的,沒法關(guān)閉,而且微軟用了一個不同于桌面電腦Windows 8操作系統(tǒng)的公鑰,且不提供獲得數(shù)字證書的途徑。因此理論上,用戶不可能在Surface RT上安裝其他操作系統(tǒng)。
還有報道稱,使用Windows Phone 8操作系統(tǒng)的智能手機也將采用這種做法。那么,用戶也就不可能在Windows Phone上安裝其他操作系統(tǒng)了。
十、結(jié)束語
Secure Boot的本來用意是保證系統(tǒng)安全,但現(xiàn)在似乎成了廠商保護市場壟斷、阻礙競爭一種手段。
除了微軟公司,蘋果公司也有這種傾向。在新一代的iPhone和iPad上面安裝其他操作系統(tǒng),似乎是不可能的。
自由軟件基金會呼吁反Secure Boot壟斷,就是基于這種考慮:用戶應(yīng)該擁有硬件和軟件的使用自由,操作系統(tǒng)應(yīng)該是開放的,而不是封閉的。
作為一種規(guī)格,自由軟件基金會并不反對Secure Boot,它只是要求硬件廠商提供便利,使得用戶可以更容易地安裝和管理公鑰,從而使用硬件平臺對所有操作系統(tǒng)(以及設(shè)備驅(qū)動)保持開放。
我認為,這是完全合理的要求,對于保證用戶的自由和業(yè)界的健康生態(tài)極為重要。讓我們一起支持這個行動(簽名和捐助),密切關(guān)注事態(tài)下一步的發(fā)展。
原文鏈接http://www.ruanyifeng.com/blog/2013/01/secure_boot.html
轉(zhuǎn)載于:https://www.cnblogs.com/liuzhenbo/p/10796180.html
總結(jié)
以上是生活随笔為你收集整理的反Secure Boot垄断:兼谈如何在Windows 8电脑上安装Linux的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C/C++字符串使用整理
- 下一篇: linux 其他常用命令