nhi*_*kle 49 linux uefi windows-8 secure-boot
我听说过很多关于 Microsoft 如何在 Windows 8 中实施 UEFI 安全启动的消息。显然,它可以防止“未经授权”的引导加载程序在计算机上运行,以防止恶意软件。自由软件基金会发起了一场反对安全启动的运动,很多人在网上说这是微软“消除自由操作系统”的“权力攫取”。
如果我有一台预装了 Windows 8 和安全启动的计算机,我以后还能安装 Linux(或其他一些操作系统)吗?还是具有安全启动功能的计算机只能在 Windows 上运行?
nhi*_*kle 71
首先,简单回答你的问题:
如果您有运行 Windows RT的 ARM 平板电脑(如 Surface RT 或 Asus Vivo RT),则您将无法禁用安全启动或安装其他操作系统。与许多其他 ARM 平板电脑一样,这些设备只能运行它们附带的操作系统。
如果您有一台运行 Windows 8的非 ARM 计算机(如 Surface Pro 或任何具有 x86-64 处理器的超极本、台式机和平板电脑),那么您可以完全禁用安全启动,或者您可以安装自己的密钥并签署您自己的引导程序。无论哪种方式,您都可以安装第三方操作系统,例如 Linux 发行版、FreeBSD 或 DOS,或者任何您喜欢的操作系统。
现在,谈谈整个安全启动的实际工作原理:关于安全启动有很多错误信息,尤其是来自自由软件基金会和类似组织的信息。这使得很难找到有关安全启动实际作用的信息,因此我将尽力解释。请注意,我没有开发安全启动系统或类似系统的个人经验;这只是我从在线阅读中学到的。
首先,安全启动不是微软想出的。他们是第一个广泛实施它的人,但并不是他们发明的。它是UEFI 规范的一部分,基本上是您可能习惯的旧 BIOS 的更新替代品。UEFI 基本上是在操作系统和硬件之间进行对话的软件。UEFI 标准由一个名为“ UEFI 论坛”的组织创建,该组织由包括 Microsoft、Apple、Intel、AMD 和少数计算机制造商在内的计算行业代表组成。
第二个最重要的一点是,在计算机上启用安全启动并不意味着计算机永远不能启动任何其他操作系统。事实上,微软自己的 Windows 硬件认证要求规定,对于非 ARM 系统,您必须能够禁用安全启动和更改密钥(以允许其他操作系统)。稍后再谈。
从本质上讲,它可以防止恶意软件通过启动顺序攻击您的计算机。通过引导加载程序进入的恶意软件很难被检测和阻止,因为它可以渗透到操作系统的低级功能,使其对防病毒软件不可见。Secure Boot 真正做的就是验证引导加载程序是否来自受信任的来源,并且它没有被篡改。把它想象成瓶子上的弹出式盖子,上面写着“如果盖子弹出或密封件被篡改,请勿打开”。
在最高级别的保护中,您拥有平台密钥 (PK)。任何系统上只有一个 PK,由 OEM 在制造过程中安装。此密钥用于保护 KEK 数据库。KEK 数据库包含密钥交换密钥,用于修改其他安全启动数据库。可以有多个 KEK。然后是第三级:授权数据库 (db) 和禁止数据库 (dbx)。它们分别包含有关证书颁发机构、其他加密密钥和 UEFI 设备映像以允许或阻止的信息。为了使引导程序被允许运行,它必须与一个密钥来加密签名是在数据库中,而不是在dbx。
来自Building Windows 8 的图像:使用 UEFI 保护预操作系统环境
OEM 生成自己的 PK,Microsoft 提供一个 KEK,OEM 需要将其预加载到 KEK 数据库中。然后,Microsoft 对 Windows 8 引导加载程序进行签名,并使用他们的 KEK 将此签名放入授权数据库中。UEFI 启动计算机时,会验证 PK,验证 Microsoft 的 KEK,然后验证引导加载程序。如果一切正常,则操作系统可以启动。
来自Building Windows 8 的图像:使用 UEFI 保护预操作系统环境
首先,任何 Linux 发行版都可以选择生成 KEK 并要求 OEM 默认将其包含在 KEK 数据库中。然后,他们将像 Microsoft 一样对启动过程拥有尽可能多的控制权。正如Fedora 的 Matthew Garrett所解释的那样,这样做的问题是 a) 很难让每个 PC 制造商都包含 Fedora 的密钥,并且 b) 这对其他 Linux 发行版不公平,因为他们的密钥不会被包含在内和较小的发行版没有那么多的 OEM 合作伙伴关系。
Fedora 选择做的(其他发行版也纷纷效仿)是使用微软的签名服务。这种情况需要向 Verisign(Microsoft 使用的证书颁发机构)支付 99 美元,并授予开发人员使用 Microsoft 的 KEK 对其引导加载程序进行签名的能力。由于 Microsoft 的 KEK 已经在大多数计算机中,这允许他们对引导加载程序进行签名以使用安全引导,而无需他们自己的 KEK。它最终与更多的计算机更兼容,并且与设置自己的密钥签名和分发系统相比,总体成本更低。在前面提到的博客文章中有更多关于它如何工作的细节(使用 GRUB、签名的内核模块和其他技术信息),如果您对这类事情感兴趣,我建议您阅读。
假设你不想处理注册微软系统的麻烦,或者不想支付 99 美元,或者只是对以 M 开头的大公司心存怨恨。 还有另一种选择仍然使用安全启动并运行 Windows 以外的操作系统。微软的硬件认证 要求OEM 允许用户将其系统输入到 UEFI“自定义”模式,在该模式下他们可以手动修改安全启动数据库和 PK。系统可以进入 UEFI 设置模式,用户甚至可以在其中指定自己的 PK,并自己签署引导加载程序。
此外,Microsoft 自己的认证要求强制要求 OEM 包括在非 ARM 系统上禁用安全启动的方法。您可以关闭安全启动!唯一不能禁用安全启动的系统是运行 Windows RT 的 ARM 系统,其功能更类似于 iPad,在 iPad 上不能加载自定义操作系统。虽然我希望可以更改 ARM 设备上的操作系统,但可以公平地说,微软在这里遵循平板电脑的行业标准。
因此,正如您所希望的那样,安全启动并不是邪恶的,并且不仅限于与 Windows 一起使用。FSF 和其他人对此如此不满的原因是,它确实为使用第三方操作系统增加了额外的步骤。Linux 发行版可能不喜欢付费使用 Microsoft 的密钥,但这是让安全启动适用于 Linux 的最简单且最具成本效益的方式。幸运的是,关闭安全启动很容易,并且可以添加不同的密钥,从而避免与微软打交道。
鉴于越来越多的高级恶意软件,安全启动似乎是一个合理的想法。它并不意味着要成为一个接管世界的邪恶阴谋,而且也没有一些自由软件专家让你相信的那么可怕。
TL;DR:安全启动可防止恶意软件在启动期间以无法检测的低级别感染您的系统。任何人都可以创建必要的密钥以使其工作,但很难说服计算机制造商将您的密钥分发给每个人,因此您可以选择向威瑞信付款,以使用 Microsoft 的密钥对您的引导加载程序进行签名并使其工作。您还可以在任何非 ARM 计算机上禁用安全启动。
最后一个想法,关于 FSF 反对安全启动的活动:他们的一些担忧(即它使安装免费操作系统变得更加困难)在一定程度上是有效的。出于上述原因,说这些限制将“阻止任何人启动 Windows 以外的任何东西”显然是错误的。反对 UEFI/Secure Boot 作为一项技术是短视的、误导的,无论如何都不太可能有效。更重要的是确保制造商真正遵循 Microsoft 的要求,让用户禁用安全启动或根据需要更改密钥。
归档时间: |
|
查看次数: |
11429 次 |
最近记录: |