Fedora 18 可能支持 UEFI Secure Boot
Matthew Garrett 在博客上闡述了最近關(guān)于 Fedora 18 在 UEFI 支持方面的一些動向,表示 Fedora 有可能會采取支付 $99 的方式獲得 M$ 簽名的第一階段引導(dǎo)器,從而允許最終用戶在不關(guān)閉 Secure Boot 的情況下引導(dǎo)。
今年下半年發(fā)布的Win8將要求UEFI中啟用SecureBoot模式,屆時所有帶有的Win8認(rèn)證徽標(biāo)的硬件也將包含一組M$公鑰,不局限于OEM。這將給包括Fedora在內(nèi)的所有 Linux發(fā)行版的安裝帶來不小的麻煩。怎么辦呢?
一個直接的解決方法是和廠商合作在硬件中添加特定Linux發(fā)行版的公鑰。這對于有RedHat支持的Fedora來說并不是件難事,但是這樣子做的話對其他沒有長期硬件合作關(guān)系的發(fā)行版諸如Arch、Gentoo、Mint等是不公平的。同時由于難以讓所有的硬件廠商都包含該公鑰,又會無形的增加消費(fèi)者選購Linux兼容硬件產(chǎn)品時的麻煩。
另一個方法是創(chuàng)建一個通用的Linux公鑰。這意味著需要有一個可靠的組織掌管所有的Linux發(fā)行版密鑰石,并且對簽名請求進(jìn)行必要的審核工作。這花費(fèi)巨大,在短期內(nèi)也是不現(xiàn)實(shí)的。
第三個方案,盡管不理想,但在目前看來是可行的。M$將在它的 SysdevPortal 上提供付費(fèi)的簽名服務(wù)。在支付給Verisign$99并審核通過之后,將使用M$的密鑰進(jìn)行簽名,不限次數(shù),使得其可以在具備M$公鑰的設(shè)備上運(yùn)行。Fedora打算將利用此對一個特制的初始階段引導(dǎo)器進(jìn)行簽名,從而使得最終用戶無需進(jìn)入UEFI做任何更改即可順利引導(dǎo)并安裝Fedora18。
這種便利,除了那$99以外,還有其他代價的。
會被用來簽名的初始階段引導(dǎo)器將設(shè)計(jì)的十分簡單,僅僅用來鏈?zhǔn)揭龑?dǎo)真正的GRBU2引導(dǎo)器,從而避免每次引導(dǎo)器升級的都要找M$機(jī)器簽名的麻煩。不過由于UEFISecureBoot的要求,GRUB2的動態(tài)加載和部分內(nèi)核參數(shù)編輯功能將被禁用。
同樣是由于UEFISecureBoot的要求,所有可能會用到內(nèi)核模塊也需要簽名。對于Fedora分發(fā)的內(nèi)核樹中模塊自然是沒有問題的,但是對于像AMD和NVIDIA之類安裝時動態(tài)編譯內(nèi)核模塊的閉源顯卡驅(qū)動來說則極為麻煩。
需要自己編譯內(nèi)核的用戶,則不得不使用Fedora提供的工具和文檔,生成自己的公鑰并將其添加到UEFI固件中,然后對編譯的內(nèi)核和引導(dǎo)器重新簽名。若希望他人也能使用自定義的內(nèi)核,則不得不像Fedora一樣花費(fèi)$99使用M$的簽名服務(wù)。
另一方面,M$對于在ARM平臺上UEFISecureBoot策略沒有改變,意味著預(yù)裝Win8ARM的設(shè)備將不能關(guān)閉SecureBoot模式,也不能自己添加公鑰。雖然理論上Fedora也可以像X86一樣付費(fèi)獲得ARM版本的M$簽名認(rèn)證,但是這樣一個絲毫不允許內(nèi)核級別自定義的FedoraARM意義甚微,故放棄。
受不了這些限制和麻煩?
沒問題,只要關(guān)閉UEFI的SecureBoot模式一切就和當(dāng)下一樣了,但這將意味著無法啟動Win8系統(tǒng),包括已經(jīng)安裝的,雙啟動成為過去時。
無論有沒有世界末日,M$都會在2012年底逼迫最終用戶在Win8和全功能的Linux系統(tǒng)之間“做一個艱難的決定”。
值得注意的是,F(xiàn)edora的這項(xiàng)方案目前處于討論階段,尚不清楚M$方面對此會有什么樣的反應(yīng)。
名為安全,實(shí)為壟斷
UEFISecureBoot帶來這么多麻煩,那么它到底能起到什么作用呢?
它無法讓您正在運(yùn)行的系統(tǒng)更健壯,也無法抵御病毒對引導(dǎo)器的修改。它唯一能做的就是當(dāng)機(jī)器的引導(dǎo)器已經(jīng)被病毒修改之后,給出提醒并拒絕啟動,避免可能帶來的進(jìn)一步損失。
沒錯,只有這些。沒有辦法恢復(fù)原先的引導(dǎo)器,沒有辦法動態(tài)加載任何殺毒或者數(shù)據(jù)挽救模塊。或許屆時您可以選擇撥打M$或廠商的客服獲得解決方案,或者也可以選擇購買必然會出現(xiàn)的某些經(jīng)過M$認(rèn)證的特制修復(fù)引導(dǎo)盤。介于$99的存在,這些恐怕都不會是免費(fèi)的。
難道這是M$想要的效果?
- 場景:當(dāng)UEFI提示引導(dǎo)器被修改,拒絕引導(dǎo)系統(tǒng)時,機(jī)器停滯在錯誤屏幕上,面對一切嘗試修復(fù)的舉動毫無反應(yīng)……
- 用戶:“我都不知道該用什么表情來面對了……”
- M$:“微笑就可以了。”
文明用語!!!!
或許,是時候考慮加入 FreeSoftware基金會發(fā)起的反對SecureBoot的簽名活動了。
補(bǔ)充說明
根據(jù)M$的規(guī)定,Win8僅能在UEFISecureBoot開啟時引導(dǎo)。已經(jīng)安裝好的Win8系統(tǒng)在關(guān)閉UEFISecureBoot之后也不能引導(dǎo)。
SecureBoot要求所有需要訪問PCI地址的行為都要經(jīng)過簽名,而它的格式限制了一個程序或設(shè)備僅能被具有單一簽名。這對于硬件廠商意味著什么?
- 若是板卡和驅(qū)動所用簽名并未包含在主板的UEFISecureBoot公鑰庫中,用戶將無法使用該板卡。
- 唯一能保證板卡和驅(qū)動被廣泛使用的方法就是像Fedora一樣使用M$的付費(fèi)簽名服務(wù),因?yàn)轭A(yù)期只有M$的公鑰會被包含在絕大多數(shù)主板中。
從目前公布的內(nèi)容來看,并不清楚UEFI中的SB是否是一個可以任意開關(guān)的選項(xiàng):
It shall be possible for a physically present user to use the Custom Mode firmware setup option to modify the contents of the Secure Boot signature databases and the PK. If the user ends up deleting the PK then, upon exiting the Custom Mode firmware setup, the system will be operating in Setup Mode with Secure Boot turned off. The firmware setup shall indicate if Secure Boot is turned on, and if it is operated in Standard or Custom Mode. The firmware setup must provide an option to return from Custom to Standard Mode which restores the factory defaults.
“僅能通過刪除PK的方式關(guān)閉SecureBoot”,“僅能通過恢復(fù)出廠設(shè)置的方式開啟SecureBoot”,這種操作也是符合M$規(guī)范的。過往的經(jīng)驗(yàn)表明廠商傾向于給固件中最精簡的功能,這很可能是他們會選擇的方式。
“破解ROM”拯救世界?醒醒吧,親……
- 是M$限制了Win8不可以在SecureBoot關(guān)閉情況下啟動,不是主板廠商。
- 主板固件的開發(fā)難度可不一般,從 OpenBIOS 的緩慢發(fā)展可見一斑。
小貼士:盡管常?;煊?,實(shí)際上固件和ROM可是兩個完全不同的東西哦~固件負(fù)責(zé)的是最底層的硬件溝通,常見的Android自定義ROM中也僅僅是重用了從廠商官方ROM提取的固件而已。