虚拟机Secure Boot安全启动

本文详细介绍了如何在虚拟机中启用和管理SecureBoot,包括创建和签名PK、KEK、db证书,使用efivarfs更新证书到主板Flash,以及通过图形界面导入证书。此外,还讲解了给EFI文件签名的步骤,确保系统安全启动。

概述

Secure Boot 作为 UEFI 的一个选项,它可以被设置为开启或关闭。 Secure Boot 所需要的公钥证书被保存在计算机的主板的 FLASH 里面,FLASH 里面保存着 PK , KEK, db, dbx 的证书链。下面我们在虚拟机中使能Secure Boot功能,可以在虚拟机中实验,这样比较安全。

工具

以下工具是必不可少的:

openssl
efitools
sbsigntools

在有些系统上 efitools 和 sbsigntools 无法直接获取,请从源码包编译,其中efitools依赖 sbsigntools。

yum install -y perl-File-Slurp.noarch
git clone https://gitee.com/mirrors_kernel_googlesource/efitools.git
git clone https://git.kernel.org/pub/scm/linux/kernel/git/jejb/sbsigntools.git/

在用源代码编译 efitools 时,需要 Perl 的一个模块,名字为 File Slurp,上面的命令安装该 module。

步骤

这里简要介绍 PK,KEK,db,dbx 和 MOK 的概念。

Platform Key (PK) - PK 是用于在硬件平台层和硬件平台拥有者建立起的信任关系 ,规定一个硬件平台只能被一个拥有者所拥有,即 PK 只能存在一个 ,与拥有者相关的公钥被存储在 FLASH 里面的 PK 变量里面,同时,拥有者的私钥可以来对 PK, KEK, db, dbx 进行签名和管理。

Key Exchange Key (KEK) - KEK 是用于在硬件平台和操作系统之间建立信任关系 ,KEK 的公钥可以在主板的 FLASH 存在多个不同项,即 KEK 可以存在多个 ,每一项对应一种可以被启动的操作系统,同样,KEK 的私钥可以来对 db, dbx 进行签名和管理。

Database (db) - db 是用于对 被许可的 EFI 文件予以加载的数据签名库 ,和 KEK 一样, db 的公钥可以存在很多项 。(在 UEFI 平台里面,操作系统加载文件就是一个 EFI 文件)

Database Excluded (dbx) - dbx 是一个 黑名单数据签名库 ,只要谁的 EFI 签名在这,谁就被屏蔽掉, dbx 的公钥也可以存在很多项 。后面不会使用这个。

下面主要是有两种方式将证书更新到 flash 中,一种通过 efivar 方式,另外一种是通过 BIOS 图形界面,前者需要创建EFI list 文件,之后可以通过命令行自动化操作;而后者需要的证书文件较少,但是需要通过图形界面进行操作。

自动化导入证书

建立 PK,KEK,db 密钥对,同时还需要创建EFI list。

建立密钥对

openssl req -new -x509 -newkey rsa:2048 -subj "/CN=Platform Key/" -keyout PK.key -out PK.crt -days 3650 -nodes -sha256

上面的 -subj 的参数可以自己设置,参数 -days 是密钥的有效期,这里设置为 10 年,也可以设置为其他,生成私钥 PK.key,公钥 PK.crt。

同理,KEK 和 db 亦是如此:

openssl req -new -x509 -newkey rsa:2048 -subj "/CN=Key Exchange Key/" -keyout KEK.key -out KEK.crt -days 3650 -nodes -sha256
openssl req -new -x509 -newkey rsa:2048 -subj "/CN=Database/" -keyout db.key -out db.crt -days 3650 -nodes -sha256

建立 EFI List 文件<

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值