如果我购买带有Windows 8和Secure Boot的电脑,我还能安装Linux吗?


48

我听说过很多关于Microsoft如何在Windows 8中实现UEFI安全启动的方法。显然,它可以防止“未经授权”的启动加载程序在计算机上运行,​​以防止恶意软件。自由软件基金会开展的一项针对安全启动的活动,很多人一直在网上说,这是微软“消除免费操作系统”的“权力攫取”。

如果我预装了安装了Windows 8和安全启动的计算机,我以后是否还可以安装Linux(或其他操作系统)?或者具有安全启动的计算机是否只能与Windows一起使用?

Answers:


70

首先,简单回答你的问题:

  • 如果您有运行Windows RT 的ARM平板电脑(如Surface RT或Asus Vivo RT),那么您将无法禁用安全启动或安装其他操作系统。与许多其他ARM平板电脑一样,这些设备只会运行它们附带的操作系统。

  • 如果您有运行Windows 8 的非ARM计算机(如Surface Pro或任何带有x86-64处理器的无数超极本,台式机和平板电脑),那么您可以完全禁用安全启动,或者您可以安装自己的密钥并签署自己的引导程序。无论哪种方式,您可以安装第三方操作系统,如Linux发行版或FreeBSD或DOS或任何你喜欢的。


现在,详细了解整个安全启动实际上是如何工作的:有很多关于安全启动的错误信息,特别是来自自由软件基金会和类似的组。这使得很难找到有关Secure Boot实际执行操作的信息,因此我将尽力解释。请注意,我没有开发安全启动系统或类似的任何个人经验; 这正是我从网上阅读中学到的。

首先,安全启动不是微软想出的。他们是第一个广泛实施它的人,但他们没有发明它。它是UEFI规范一部分,它基本上是您可能习惯的旧BIOS的新替代品。UEFI基本上是在OS和硬件之间进行通信的软件。UEFI标准由称为“ UEFI论坛 ” 的组织创建,该论坛由计算行业代表组成,包括Microsoft,Apple,Intel,AMD和少数计算机制造商。

第二个最重要的一点是,在计算机上启用安全启动并不意味着计算机永远不能启动任何其他操作系统。事实上,微软自己的Windows硬件认证要求规定,对于非ARM系统,您必须能够同时禁用安全启动并更改密钥(以允许其他操作系统)。稍后会详细介绍。

 

安全启动有什么作用?

从本质上讲,它可以防止恶意软件通过引导顺序攻击您的计算机。通过引导加载程序进入的恶意软件很难检测和停止,因为它可以渗透操作系统的低级功能,使其对防病毒软件不可见。Secure Boot真正做的就是验证引导加载程序来自可靠来源,并且它没有被篡改。可以把它想象成瓶子上的弹出式盖子,上面写着“如果盖子弹出或密封件被篡改,请不要打开”。

原始密封破损时按钮弹出

在最高级别的保护中,您拥有平台密钥(PK)。任何系统上只有一个PK,它由OEM在制造期间安装。该密钥用于保护KEK数据库。KEK数据库包含密钥交换密钥,用于修改其他安全启动数据库。可以有多个KEK。然后是第三级:授权数据库(db)和禁止数据库(dbx)。它们分别包含有关允许或阻止的证书颁发机构,其他加密密钥和UEFI设备映像的信息。为了使引导程序被允许运行,它必须被加密与密钥签署在数据库中,而不是在dbx。

平台密钥> KEK>(允许哈希/不允许哈希)
来自构建Windows 8的映像:使用UEFI保护pre-OS环境

如何在真实的Windows 8认证系统上运行

OEM生成自己的PK,Microsoft提供了一个KEK,OEM需要将其预先加载到KEK数据库中。然后Microsoft签署Windows 8 Bootloader,并使用他们的KEK将此签名放入授权数据库。当UEFI启动计算机时,它会验证PK,验证Microsoft的KEK,然后验证引导加载程序。如果一切看起来都不错,那么操作系统可以启动。

Windows 8中的安全启动:本机UEFI>仅验证OS加载程序> OS启动/ UEFI将仅启动经过验证的OS加载程序/恶意软件无法切换启动加载程序
来自构建Windows 8的映像:使用UEFI保护pre-OS环境

 

Linux等第三方操作系统在哪里?

首先,任何Linux发行版都可以选择生成KEK,并要求OEM默认将其包含在KEK数据库中。然后,他们将像微软一样控制启动过程。正如Fedora的Matthew Garrett解释的那样,问题在于:a)很难让每个PC制造商都包含Fedora的密钥,而b)这对其他Linux发行版是不公平的,因为它们的密钥不包括在内而较小的发行版没有那么多的OEM合作伙伴。

Fedora选择做的事情(以及其他发行版正在效仿)是使用微软的签名服务。此方案需要向Verisign(Microsoft使用的证书颁发机构)支付99美元,并授予开发人员使用Microsoft的KEK签署其引导加载程序的能力。由于Microsoft的KEK已经存在于大多数计算机中,因此这允许他们签署他们的引导加载程序以使用安全启动,而无需自己的KEK。它最终与更多计算机兼容,并且总体成本低于设置自己的密钥签名和分发系统。在上述博客文章中有更多关于它如何工作的细节(使用GRUB,签名的内核模块和其他技术信息),如果你对这类事情感兴趣,我建议你阅读。

假设您不想处理注册Microsoft系统的麻烦,或者不想支付99美元,或者只是对以M开头的大公司抱怨。还有另一种选择仍然使用安全启动并运行Windows以外的操作系统。微软的硬件认证 要求 OEM允许用户进入UEFI“自定义”模式,他们可以手动修改安全启动数据库和PK。系统可以进入UEFI设置模式,用户甚至可以指定自己的PK,并自行签署引导加载程序。

此外,Microsoft自己的认证要求使OEM必须包含一种在非ARM系统上禁用安全启动的方法。您可以关闭安全启动!唯一无法禁用安全启动的系统是运行Windows RT的ARM系统,其功能与iPad类似,无法加载自定义操作系统。虽然我希望能够在ARM设备上更改操作系统,但可以说微软在这里遵循有关平板电脑的行业标准。

 

所以安全启动本身并不邪恶?

因此,您可以希望看到,安全启动不是邪恶的,并且不仅限于与Windows一起使用。FSF和其他人对此感到不安的原因是它确实增加了使用第三方操作系统的额外步骤。Linux发行版可能不喜欢付费使用微软的密钥,但它是让安全启动适用于Linux的最简单,最经济的方法。幸运的是,很容易关闭安全启动,并可能添加不同的密钥,从而避免了与微软打交道的需要。

鉴于越来越先进的恶意软件数量,安全启动似乎是一个合理的想法。它并不意味着是一个接管世界的邪恶阴谋,并且比一些自由软件专家会让你相信的要少得多。

邪恶的UEFI标志

补充阅读:


TL; DR:安全启动可防止恶意软件在启动期间以低,不可检测的级别感染您的系统。任何人都可以创建必要的密钥以使其工作,但很难说服计算机制造商密钥分发给每个人,因此您也可以选择向Verisign支付使用Microsoft的密钥签署您的引导加载程序并使其工作。您还可以在任何非ARM计算机上禁用安全启动。

最后想到,关于FSF针对安全启动的活动:他们的一些担忧(即它使安装免费操作系统变得更加困难)在某种程度上是有效。由于上述原因,这些限制将“阻止任何人启动除Windows之外的任何东西”显然是错误的。针对UEFI /安全启动作为一种技术进行竞选是短视的,误导的,并且无论如何都不太可能有效。更重要的是确保制造商真正遵循微软的要求,允许用户禁用安全启动或更改密钥(如果他们愿意)。


4
>>“首先,安全启动不是微软提出的。它是UEFI规范的一部分,它基本上是你可能习惯的旧BIOS的新版本。... UEFI标准是由一个名为“UEFI论坛”的小组创建的,该小组由包括微软,苹果在内的计算行业代表组成......“所以你的意思是:安全启动不是微软自己提出的
mcalex

@mcalex我想这是一个公平的评估。
nhinkle

2
这是一个非常好的解释。我以为我知道安全启动,但我从这个答案中学到了很多。我很自豪地赞成它。
Harsha K

4
+1 < Ivo Style >也许你应该写一篇关于这个@nhinkle 的博客文章 ; - )</ Ivo Style >
Tamara Wijsman

2
这不是微软在这里让我担心的,而是制造商。当然,ARM设备现在可能仍被视为玩具,但过去几年中各种ARM平台已经走过了漫长的道路,我可以轻松想象有一天人们使用它们而不只是观看YouTube视频......现在,放弃更新或替换操作系统的能力似乎是短视的。也就是说,感谢您写这篇文章 - 它肯定有助于澄清安全启动的内容和问题。
Shog9
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.