`
ihyperwin
  • 浏览: 434454 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

万恶的UEFI Secure Boot

 
阅读更多
转载自LinuxToy:
Matthew Garrett 在博客上阐述了最近关于 Fedora 18 在 UEFI 支持方面的一些动向,表示 Fedora 有可能会采取支付 $99 的方式获得 M$ 签名的第一阶段引导器,从而允许最终用户在不关闭 Secure Boot 的情况下引导。

今年下半年发布的 Win8 将要求 UEFI 中启用 Secure Boot 模式,届时所有带有的 Win8 认证徽标的硬件也将包含一组 M$ 公钥,不局限于 OEM。这将给包括 Fedora 在内的所有 Linux 发行版的安装带来不小的麻烦。怎么办呢?

一个直接的解决方法是和厂商合作在硬件中添加特定 Linux 发行版的公钥。这对于有 Red Hat 支持的 Fedora 来说并不是件难事,但是这样子做的话对其他没有长期硬件合作关系的发行版诸如 Arch、Gentoo、Mint 等是不公平的。同时由于难以让所有的硬件厂商都包含该公钥,又会无形的增加消费者选购 Linux 兼容硬件产品时的麻烦。

另一个方法是创建一个通用的 Linux 公钥。这意味着需要有一个可靠的组织掌管所有的 Linux 发行版密钥石,并且对签名请求进行必要的审核工作。这花费巨大,在短期内也是不现实的。

第三个方案,尽管不理想,但在目前看来是可行的。M$ 将在它的 Sysdev Portal 上提供付费的签名服务。在支付给 Verisign $99 并审核通过之后,将使用 M$ 的密钥进行签名,不限次数,使得其可以在具备 M$ 公钥的设备上运行。Fedora 打算将利用此对一个特制的初始阶段引导器进行签名,从而使得最终用户无需进入 UEFI 做任何更改即可顺利引导并安装 Fedora 18。

这种便利,除了那 $99 以外,还有其他代价的。

会被用来签名的初始阶段引导器将设计的十分简单,仅仅用来链式引导真正的 GRBU2 引导器,从而避免每次引导器升级的都要找 M$ 机器签名的麻烦。不过由于 UEFI Secure Boot 的要求,GRUB2 的动态加载和部分内核参数编辑功能将被禁用。

同样是由于 UEFI Secure Boot 的要求,所有可能会用到内核模块也需要签名。对于 Fedora 分发的内核树中模块自然是没有问题的,但是对于像 AMD 和 NVIDIA 之类安装时动态编译内核模块的闭源显卡驱动来说则极为麻烦。

需要自己编译内核的用户,则不得不使用 Fedora 提供的工具和文档,生成自己的公钥并将其添加到 UEFI 固件中,然后对编译的内核和引导器重新签名。若希望他人也能使用自定义的内核,则不得不像 Fedora 一样花费 $99 使用 M$ 的签名服务。

另一方面,M$ 对于在 ARM 平台上 UEFI Secure Boot 策略没有改变,意味着预装 Win8 ARM 的设备将不能关闭 Secure Boot 模式,也不能自己添加公钥。虽然理论上 Fedora 也可以像 X86 一样付费获得 ARM 版本的 M$ 签名认证,但是这样一个丝毫不允许内核级别自定义的 Fedora ARM 意义甚微,故放弃。

受不了这些限制和麻烦?

没问题,只要关闭 UEFI 的 Secure Boot 模式一切就和当下一样了,但这将意味着无法启动 Win8 系统,包括已经安装的,双启动成为过去时。

无论有没有世界末日,M$ 都会在 2012 年底逼迫最终用户在 Win8 和全功能的 Linux 系统之间“做一个艰难的决定”。

值得注意的是,Fedora 的这项方案目前处于讨论阶段,尚不清楚 M$ 方面对此会有什么样的反应。

名为安全,实为垄断

UEFI Secure Boot 带来这么多麻烦,那么它到底能起到什么作用呢?

它无法让您正在运行的系统更健壮,也无法抵御病毒对引导器的修改。它唯一能做的就是当机器的引导器已经被病毒修改之后,给出提醒并拒绝启动,避免可能带来的进一步损失。

没错,只有这些。没有办法恢复原先的引导器,没有办法动态加载任何杀毒或者数据挽救模块。或许届时您可以选择拨打 M$ 或厂商的客服获得解决方案,或者也可以选择购买必然会出现的某些经过 M$ 认证的特制修复引导盘。介于 $99 的存在,这些恐怕都不会是免费的。

难道这是 M$ 想要的效果?

场景:当 UEFI 提示引导器被修改,拒绝引导系统时,机器停滞在错误屏幕上,面对一切尝试修复的举动毫无反应……
用户:“我都不知道该用什么表情来面对了……”
M$:“微笑就可以了。”

文明用语!!!!

或许,是时候考虑加入 Free Software 基金会发起的反对 Secure Boot 的签名活动了。

补充说明

根据 M$ 的规定,Win8 仅能在 UEFI Secure Boot 开启时引导。已经安装好的 Win8 系统在关闭 UEFI Secure Boot 之后也不能引导。

Secure Boot 要求所有需要访问 PCI 地址的行为都要经过签名,而它的格式限制了一个程序或设备仅能被具有单一签名。这对于硬件厂商意味着什么?

若是板卡和驱动所用签名并未包含在主板的 UEFI Secure Boot 公钥库中,用户将无法使用该板卡。
唯一能保证板卡和驱动被广泛使用的方法就是像 Fedora 一样使用 M$ 的付费签名服务,因为预期只有 M$ 的公钥会被包含在绝大多数主板中。

从目前公布的内容来看,并不清楚 UEFI 中的 SB 是否是一个可以任意开关的选项:

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 的方式关闭 Secure Boot”,“仅能通过恢复出厂设置的方式开启 Secure Boot”,这种操作也是符合 M$ 规范的。过往的经验表明厂商倾向于给固件中最精简的功能,这很可能是他们会选择的方式。

“破解 ROM ”拯救世界?醒醒吧,亲……

是 M$ 限制了 Win8 不可以在 Secure Boot 关闭情况下启动,不是主板厂商。
主板固件的开发难度可不一般,从 OpenBIOS 的缓慢发展可见一斑。

小贴士:尽管常常混用,实际上固件和 ROM 可是两个完全不同的东西哦~固件负责的是最底层的硬件沟通,常见的 Android 自定义 ROM 中也仅仅是重用了从厂商官方 ROM 提取的固件而已。
分享到:
评论

相关推荐

    提取Secure Boot Key.rar

    标题中的“提取Secure Boot Key.rar”表明这是一个关于获取UEFI Secure Boot安全密钥的工具包。Secure Boot是UEFI(统一可扩展固件接口)的一部分,它是一种安全机制,用于防止恶意软件在操作系统启动过程中感染系统...

    UEFI安全规范共26页

    UEFI Secure Boot Customization是指在UEFI固件中实现Secure Boot机制的自定义配置。该机制可以防止恶意软件和未经授权的操作系统在计算机启动时加载,从而保护计算机的安全。 在UEFI Secure Boot Customization中...

    详解SecureBoot和Winows8及UEFI启动的关系.pdf

    Secure Boot是Windows 8引入的一项安全特性,与UEFI(统一可扩展固件接口)启动技术紧密相关。要理解这两者之间的关系,首先需要了解UEFI和BIOS这两种不同的计算机启动方式,以及它们与操作系统安装和引导过程的关系...

    secureboot_R32.4.2_aarch64_nvidia_tegra_secureboot_secureboot_

    【标题】"secureboot_R32.4.2_aarch64_nvidia_tegra_secureboot_secureboot_" 提供的是NVIDIA Tegra平台上的安全启动(Secure Boot)相关资源,版本号为R32.4.2,适用于aarch64架构。安全启动是现代嵌入式设备和...

    UEFI、GPT、UEFI_boot_以及UEFI_boot_WIN7&8的安装.docx

    3. **更好的安全特性**:UEFI 提供了 Secure Boot(安全启动)等功能,可以在操作系统加载之前验证系统固件和操作系统,防止恶意软件的加载。 #### 二、GPT 分区表概述 **GPT**(GUID Partition Table,全局唯一...

    Windows8.1 SecureBoot没有正确配置补丁.docx

    SecureBoot是UEFI(统一可扩展固件接口)的一部分,它要求操作系统必须通过预设的公钥认证才能启动,防止未经授权的程序在启动时运行。当“Windows 8.1 SecureBoot没有正确配置”出现时,通常是因为SecureBoot功能未...

    UEFI Boot Flow系列

    **UEFI Boot Flow系列** UEFI(统一可扩展固件接口)是计算机系统中的一个标准启动协议,它取代了传统的BIOS(基本输入输出系统),提供了更高效、更安全的启动流程。UEFI Boot Flow系列将深入探讨UEFI启动过程中的...

    uefi boot.efi文件

    "uefi boot.efi文件"是UEFI引导过程中的一个重要组成部分。 UEFI引导流程通常包括以下步骤: 1. **预启动环境**:当计算机加电或重启时,UEFI固件首先执行,提供一个图形化的预启动环境,即UEFI Shell或称为UEFI...

    Win8.1提示-SecureBoot未正确设置的解决方法.docx

    Secure Boot是UEFI(统一可扩展固件接口)的一项安全功能,旨在防止恶意软件在操作系统启动过程中注入系统。以下是对该问题的详细解答: 首先,解决这个问题需要进入BIOS(基本输入输出系统)进行设置调整。BIOS有...

    从Win8升级Win8.1后桌面右下角提示SecureBoot未正确配置.docx

    Secure Boot是UEFI(统一可扩展固件接口)安全启动功能,它旨在防止恶意软件在操作系统启动过程中加载。此功能在Windows 8及更高版本中被广泛采用,以增强系统的安全性。 问题出现的原因可能有以下几点: 1. 在升级...

    secure-boot-image-authentication-11.30.16

    Secure Boot and Image Authentication Technical Overview Secure Boot是一种boot sequence,确保每个软件镜像在执行前都经过身份验证,以防止未经授权或修改的代码的运行。我们的信任链是根据这个定义建立的,...

    TPM2.0_secure_boot.zip

    Secure Boot是TPM2.0的一项重要应用,旨在确保设备在开机时只加载已验证的固件和操作系统,从而防止恶意软件在启动过程中注入系统。 实现Secure Boot的过程通常涉及以下几个关键步骤: 1. **固件初始化**:系统...

    BIOS-UEFI安全培训.7z

    Module 2 Bootkits and UEFI Secure Boot Module 3 Hands-On Platform Hardware and Firmware Module 4 System Firmware Attack Vectors Module 5 Hands-On EFI Environment Module 6 Mitigations Module 7 ...

    在Windows 8 PC上安装Linux的四种方法.docx

    在Windows 8 PC上安装Linux可能遇到的主要挑战是与UEFI(统一可扩展固件接口)和Secure Boot(安全启动)的兼容性问题。UEFI是BIOS的现代替代品,而Secure Boot是一项旨在防止恶意软件在系统启动时加载的技术。在...

    在Windows8 PC上安装Linux的四种方法.pdf

    在Windows 8 PC上安装Linux的操作系统可能会遇到一些挑战,主要由于Windows 8引入了UEFI(统一可扩展固件接口)以及Secure Boot安全启动功能。Secure Boot旨在防止恶意软件在系统启动时注入,但同时也增加了在非微软...

    grub2_uefi

    - **兼容性**:GRUB2支持UEFI Secure Boot,但需要相应的证书和签名才能在启用该功能的系统上运行。 - **签名管理**:可能需要创建自己的证书或获取开源社区的证书来签署GRUB2,以通过Secure Boot检查。 5. **...

    ThinkPad_E435笔记本原装Win8系统如何U盘改Win7系统

    总的来说,将ThinkPad E435的原装Win8系统改用U盘安装Win7系统涉及的关键点包括:禁用UEFI Secure Boot,切换到Legacy Boot模式,转换硬盘分区表为MBR格式,以及在PE系统中进行分区和安装操作。遵循这些步骤,你就能...

    UEFI_Boot:UEFI驱动引导启动多系统(类rEFInd,三叶草)

    UEFI Boot:UEFI驱动引导启动多系统是一种高级的启动方式,主要应用于现代计算机系统,以替代传统的BIOS启动机制。UEFI(统一可扩展固件接口)是一种开放标准,旨在提供更高效、安全和用户友好的启动过程。在UEFI...

    sbupdate:在Arch Linux上为UEFI安全启动生成并签名内核映像

    将您的自定义密钥放在/etc/efi-keys 配置/etc/sbupdate.conf (请参阅“ ) 运行sudo sbupdate首次生成图像对于每个已安装的Arch内核,默认情况下将在/boot/EFI/Arch/<NAME>-signed.efi生成一个签名的UEFI映像。...

Global site tag (gtag.js) - Google Analytics