EDK II之Secure Boot简述
密钥对:公钥分发,私钥自留。常见的公钥格式:cer/der,常见的私钥格式:pfx。
BIOS中Secure Boot的原理:把公钥包在code里面,当使用gBS->LoadImage()去加载模块(UEFI Image)的时候会用BIOS里面的公钥去验证Image有没有正确签名,验证通过则Image成功被加载(签名实例:signtoolx64.exe sign -f 私钥.pfx -fd sha256 shell.efi)。
Secure Boot举例:
当我们在BIOS里面把Secure Boot[Enable]之后,会发现我们的U盘shell进不去,这是因为shell环境(bootx64.efi)没有经过签名,如果要使Secure Boot[Enable]之后,也能进U盘shell,需要对bootx64.efi进行签名,同时把签名用的私钥的对应公钥包到BIOS里面。
EDK II里面涉及的变量:
1. xxxDefault是用来存储变量的Default值的,一般来说是在Build BIOS的时候就已经包在最终生成的二进制文件里面。真正在代码里面使用的变量是db/dbx/dbr/dbt/KEK/PK。
2. setup mode时,key还没有load进来,这时就算Secure Boot[Enable]也是不起作用的。
3. 把key load进来之后变成user mode:
4. 我们上面提到的公钥一般存放在db里面(有时候公钥也会以cer文件的形式包到BIOS里面,私钥对应的是pfx文件)。
附:(下面的tool还没认真研究过,先备注一下)
1. 通过openssl创建密钥对:
>>>openssl.exe genrsa -out privkey.pem 2048
>>>openssl.exe rsa -in privkey.pem -pubout -out pubkey.pem
2. 签名实例:signtoolx64.exe sign -f 私钥.pfx -fd sha256 %1 //%1用于从命令行输入文件名
3. Makecert.exe证书生成工具
4. pvk2pfx 用于将包含在spc cer pvkw文件中的公钥和私钥信息复制到个人信息交换(.pfx)文件中:
pvk2pfx -pvk CerTest.pvk -spc CerTest.cer -pfx CerTest.pfx
5. 下图是某个cer文件(OID)
EDK II之Secure Boot简述的更多相关文章
- secure boot(安全启动)下为内核模块签名
上一篇随笔中提到了如何在secure boot下安装Nvidia显卡驱动 >>上一篇随笔 如果不需要安装Nvidia显卡驱动,而且要生成密钥,可以参考>> 这篇文章 这里假设生 ...
- Linux secure boot(安全启动)时添加Nvidia显卡驱动
开启Secure boot情况下,在Fedora 21下安装Nvidia 显卡驱动的方法. Nvidia显卡驱动可以从官网上下载最新版>> 点击进入 下载后添加可执行权限: #chmod ...
- 华硕笔记本之secure boot
在ubuntu下安装cuda的时候,一直装不好,cuda-7.5.run已经装好了,但是编译cuda的例程时失败,提示cuda的库链接不上. 初步判断是secure boot的问题,因为在开启X的情况 ...
- 反Secure Boot垄断:兼谈如何在Windows 8电脑上安装Linux
感谢HQSQ的投递一.自由软件基金会的呼吁上周,2012年将近结束的时候,自由软件基金会(FSF)发出呼吁,要求人们继续支持反Secure Boot垄断,希望签名者能达到5万人(目前是4万).我觉得, ...
- Linux Foundation Secure Boot System Released
As promised, here is the Linux Foundation UEFI secure boot system. This was actually released to us ...
- 小米笔记本怎么关闭secure boot
关闭Secure Boot的步骤: 一.关闭 "快速启动" 功能 1.右键-开始菜单- 电源选项,进入后 点击"选择电源按钮的功能". 2.进入电源选项设置后, ...
- 笔记本 原来win10系统改装win7系统遇到 invaid signature detected.check secure boot policy setup问题
这次操作的笔记本电脑是 华硕R414U 大家如果遇到类似问题的话也可以参考这个方法,但是必须搞清楚电脑的型号,型号不同操作起来有差别的 我这里选择的重装系统的方法是最简单粗暴的硬盘安装方法,怎么硬 ...
- UEFI、BIOS、Secure Boot的关系和知识介绍
从Windows 8操作系统时代开始,安装操作系统的方法也有了很大的改变,Windows 8采用了Secure Boot引导启动的方式,而不是过去Win XP和Win 7的Legacy启动方式,从 ...
- [加密]ESP32 -Secure Boot 安全方案
转自:https://blog.csdn.net/espressif/article/details/79362094 Secure Boot 功能概述 方案概述 Secure Boot 的目的是保证 ...
随机推荐
- Java常用类库 读书笔记 二
1.Date类 常用操作方法: public Date () 构造方法,实例化Date类对象 public Data(long Date) ...
- 宝塔linux面版安装网站环境 自动化
[root@localhost ~]# yum install -y wget && wget -O install.sh http://download.bt.cn/install/ ...
- 火狐浏览器安装firebug和firepath插件方法(离线)
1.下载FF55以内版本安装包,安装后在Firefox 更新选择"不检查更新" 2.火狐浏览器各个版本下载地址:http://ftp.mozilla.org/pub/firefox ...
- Easyui datagrid 数据表格 表格列头右键菜单选择展示列 JS
Easyui ,数据表格加载出来以后,在表格头右键,会有显示筛选的功能: 如图: 然后可以取消勾选,就变成下面这个样子: 功能的实现是通过重写了easyui 的 $.fn.datagrid.defau ...
- go/wiki/MutexOrChannel Golang并发:选channel还是选锁?
https://mp.weixin.qq.com/s/JcED2qgJEj8LaBckVZBhDA https://github.com/golang/go/wiki/MutexOrChannel M ...
- java连接服务器语法
一.连接sql步骤 1.加载数据库驱动类 2.获取数据库连接对象 3.写sql4.创建PreparedStatement对象5.执行查询返回ResultSet结果集对象7.释放资源 public st ...
- mock server 实现get方法的接口(二)
mock server 实现get方法的接口(二) 下面是实现查询品牌的接口demo: 1.当response数据量小的时候,可以直接使用json, mock会自动设置headers为applicat ...
- python 包下载地址
https://www.lfd.uci.edu/~gohlke/pythonlibs/
- win10系统电脑无法识别u盘的解决办法
一些win10系统用户说插入usb设备的时候出现无法识别usb设备的问题,就此问题,接下来是对应的解决方法. win10系统电脑无法识别U盘的应对方法: 右键“计算机”,从弹出的菜单中选择“属性”项: ...
- vue Baidu Map --- vue百度地图插件
vue Baidu Map 官网:https://dafrok.github.io/vue-baidu-map/#/zh/start/installation javascript 官网:http:/ ...