上周,2012年将近结束的时候,自由软件基金会(FSF)发出呼吁,要求人们继续支持反SecureBoot垄断,希望签名者能达到5万人(目前是4万)。
我觉得,这个呼吁很重要。如果我们不支持,未来就无法自由地使用硬件、安装自己想要的软件。
这绝非危言耸听。而且,由于这个事件直接与Windows8操作系统有关,因此意味着一切已经迫在眉睫了。
下面,我根据自己的理解,谈谈这到底怎么回事。如果你是一个Linux爱好者,或者喜欢自己安装操作系统,下面的内容与你直接相关。
二、BIOS和UEFI
所有电脑启动的时候,都会运行BIOS程序,用于初始化硬件。
自从个人电脑诞生后,就一直如此。过去30年我们都在使用类似上图的画面,设置硬件参数。不用说,BIOS已经变得日益不适用了。
1998年,Intel牵头,联合AMD、AMI、Apple、Dell、HP、IBM、Lenovo、Microsoft和Phoenix等业界主要厂商,开始制定新一代BIOS。这个项目叫做"统一的可扩展固定接口"(UnifiedExtensibleFirmwareInterface),简称UEFI。2005年推出1.1版,目前是2.3版。
将来一开机,电脑运行的将不是BIOS,而是UEFIBIOS。等它运行结束,再载入操作系统。
三、微软的态度
UEFI是一个很先进的、面向未来的规格。但是很长时间内无法推广,原因就是微软公司不积极。
Windows操作系统是桌面市场的主流系统,如果它不推广UEFI,就没有硬件厂商会跟进。所以,普通消费者对这个新规格所知甚少。
意想不到的变化,出现在2011年9月,微软毫无预兆地突然宣布,Windows8将启用UEFI。
这本来是一件好事。但是,问题是微软感兴趣的不是整个UEFI,而是UEFI的一个子规格SecureBoot。它要强行部署SecureBoot。
四、SecureBoot
SecureBoot只是UEFI的一个部分。两者的关系是局部与整体的关系。
SecureBoot的目的,是防止恶意软件侵入。它的做法就是采用密钥。UEFI规定,主板出厂的时候,可以内置一些可靠的公钥。然后,任何想要在这块主板上加载的操作系统或者硬件驱动程序,都必须通过这些公钥的认证。也就是说,这些软件必须用对应的私钥签署过,否则主板拒绝加载。由于恶意软件不可能通过认证,因此就没有办法感染Boot。
这个设想是好的。但是,UEFI没规定哪些公钥是可靠的,也没规定谁负责颁发这些公钥,都留给硬件厂商自己决定。
现在,微软就是要求,主板厂商内置Windows8的公钥。
五、Windows8
首先明确,在不打开SecureBoot的情况下,Windows8可以安装。这与安装以前版本的Windows没有差别。
但是,微软规定,所有预装Windows8的厂商(即OEM厂商)都必须打开SecureBoot。因此,消费者购买一台预装Windows8的台式机或笔记本,想要在上面再安装其他操作系统(包括以前版本的Windows)是不可能的,除非关闭SecureBoot,或者其他操作系统能够通过Windows8公钥的认证。
如果选择关闭SecureRoot,那么预装的Windows8将无法使用,需要重新安装。