安全引导在Windows 8和10上是如何工作的,它对Linux意味着什么

现代PC出厂时启用了一项名为“安全引导”的功能。这是UEFI中的一个平台功能,它取代了传统的PC BIOS。如果一家PC制造商想要在其PC上贴上“Windows 10”或“Windows 8”徽标贴纸,微软会要求他们启用安全引导,并遵循一些指导原则。

不幸的是,它还会阻止您安装一些Linux发行版,这可能是一个相当麻烦的问题。

安全引导如何保护您PC的引导过程

安全引导不仅仅是为了让运行Linux变得更加困难而设计的。启用安全引导有真正的安全优势,甚至Linux用户也可以从中受益。

传统BIOS可以启动任何软件。当您启动PC时,它会根据您配置的启动顺序检查硬件设备,并尝试从硬件设备启动。典型的PC通常会找到并引导Windows引导加载程序,然后再引导整个Windows操作系统。如果您使用Linux,BIOS将找到并引导大多数Linux发行版使用的GRUB引导加载程序。

但是,恶意软件(如rootkit)也有可能取代您的引导加载程序。rootkit可以加载您的正常操作系统,没有任何错误迹象,在您的系统上保持完全不可见和不可检测。BIOS不知道恶意软件和受信任的引导加载程序之间的区别-它只是引导它找到的任何东西。

Secure Boot旨在阻止这种情况。Windows8和Windows10 PC出厂时都带有存储在UEFI中的微软证书。UEFI将在启动之前检查引导加载程序,并确保它已由Microsoft签名。如果rootkit或其他恶意软件确实替换了您的引导加载程序或对其进行了篡改,UEFI将不允许其引导。这可以防止恶意软件劫持您的引导进程并对您的操作系统隐藏自身。

Microsoft如何允许Linux发行版使用安全引导进行引导

从理论上讲,此功能只是为了防止恶意软件的攻击而设计的。因此,微软提供了一种方法来帮助Linux发行版启动。这就是为什么一些现代的Linux发行版--如Ubuntu和Fedora--即使启用了安全引导,也能在现代PC上“正常工作”。Linux发行版可以一次性支付99美元的费用来访问Microsoft Sysdev门户,在那里他们可以申请对其引导加载程序进行签名。

Linux发行版通常有一个“填补”签名。填充程序是一个很小的引导加载程序,它只是引导Linux发行版的主GRUB引导加载程序。Microsoft签名的填充程序进行检查,以确保它正在引导由Linux发行版签名的引导加载程序,然后Linux发行版正常引导。

Ubuntu、Fedora、Red Hat Enterprise Linux和openSUSE目前支持安全引导,在现代硬件上无需任何调整即可工作。可能还有其他的,但这些是我们所知道的。一些Linux发行版在哲学上反对申请微软的签名。

如何禁用或控制安全引导

如果这就是Secure Boot所做的全部工作,那么您将无法在您的PC上运行任何非微软认可的操作系统。但您可能可以从PC的UEFI固件控制Secure Boot,就像老式PC中的BIOS一样。

有两种方法可以控制安全引导。最简单的方法是直接使用UEFI固件并将其完全禁用。UEFI固件不会检查以确保您正在运行签名的引导加载程序,并且任何东西都可以引导。您可以启动任何Linux发行版,甚至可以安装不支持安全启动的Windows7。Windows8和Windows10运行良好,您只会失去让Secure Boot保护您的引导过程的安全优势。

您还可以进一步自定义安全引导。您可以控制Secure Boot提供哪些签名证书。您可以自由安装新证书和删除现有证书。例如,一个在其个人电脑上运行Linux的组织可以选择删除微软的证书,而在其位置安装该组织自己的证书。然后,这些PC将仅由该特定组织批准和签名的引导加载程序。

个人也可以这样做-您可以签署您自己的Linux引导加载程序,并确保您的PC只能启动您亲自编译和签名的引导加载程序。这就是Secure Boot提供的那种控制和动力。

微软对个人电脑制造商的要求

如果PC供应商想要在他们的PC上贴上漂亮的“Windows10”或“Windows8”认证标签,微软并不只是要求他们启用安全引导。微软要求个人电脑制造商以特定的方式实施。

对于Windows8个人电脑,制造商必须给你一种关闭安全引导的方法。微软要求个人电脑制造商将安全的Boot Kill开关放在用户手中。

对于Windows 10 PC,这不再是强制性的。PC制造商可以选择启用安全引导,而不是为用户提供关闭它的方法。然而,我们实际上并没有意识到有任何个人电脑制造商这样做。

类似地,虽然PC制造商必须包含微软的主“Microsoft Windows Production PCA”密钥以便Windows可以启动,但他们不必包含“Microsoft Corporation UEFI CA”密钥。仅推荐使用第二个密钥。这是微软用来签署Linux引导加载程序的第二个可选密钥。Ubuntu的文档解释了这一点。

换句话说,并不是所有的PC都必须在打开安全引导的情况下启动签名的Linux发行版。再说一次,在实践中,我们还没有看到任何一台PC可以做到这一点。也许没有一家PC制造商想要生产唯一一款不能安装Linux的笔记本电脑。

至少就目前而言,主流的Windows PC应该允许你禁用安全启动,而且即使你不禁用安全启动,它们也应该启动已经由微软签名的Linux发行版。

无法在Windows RT上禁用安全启动,但Windows RT已死

相关:什么是Windows RT,它与Windows 8有何不同?

以上所有情况都适用于标准英特尔x86硬件上的标准Windows 8和10操作系统。对ARM来说就不一样了。

在Windows RT上-微软Surface RT和Surface 2等设备上附带的适用于ARM硬件的Windows8版本-无法禁用安全引导。今天,安全引导仍然不能在Windows10Mobile硬件上禁用-换句话说,在运行Windows10的手机上。

这是因为微软希望你把基于ARM的Windows RT系统看作是“设备”,而不是个人电脑。正如微软告诉Mozilla的那样,Windows RT“不再是Windows”。

然而,Windows RT现在已经死了。没有适用于ARM硬件的Windows10桌面操作系统版本,因此这不再是您需要担心的问题。但是,如果微软真的带回了Windows RT 10硬件,你很可能无法在它上面禁用安全引导(Secure Boot)。

图片来源:大使Base,约翰·布里斯托(John Bristowe)

相关文章