UEFI Secure Boot

一、前言

  在计算机世界,安全是一个永恒的话题。微软的Windows的安全性一直深受诟病,但随着操作系统层面的漏洞逐渐减少,黑客们盯上了BIOS固件。那如何保证从开机到进入操作系统这个过程中的安全呢?下图是Intel CPU的整个UEFI安全启动链条,涉及到了Boot Guard、Secure Boot等技术。
在这里插入图片描述
Microcode验证ACM, ACM验证IBB,IBB验证OBB,而OBB后面就是本文的主题UEFI Secure Boot。
在这里插入图片描述

二、Secure Boot简介

  UEFI Secure Boot是UEFI规范中所定义的一个功能。它保证了只有合法的第三方固件代码才能运行在OEM固件环境中。UEFI Secure Boot认为系统固件也就是BIOS是安全可信的。而任何第三方固件代码是不可信的,包括操作系统供应商(Operating System Vendor,OSV)安装的bootloader和独立的硬件供应商(Independent Hardware Vendor,IHV)提供的外围设备。终端用户可以选择注册和撤销UEFI安全引导映像安全数据库中的条目,作为管理验证策略的一部分。
  UEFI安全引导包括两部分——引导映像的验证和映像安全数据库更新的验证。

下图展示了UEFI Secure Boot验证的流程。
在这里插入图片描述
Key Usage in UEFI Secure Boot
在这里插入图片描述

安全启动相关密钥如下:
在这里插入图片描述
自签名证书:由与证书公钥匹配的私钥签名的证书称为自签名证书。根证书颁发机构(CA)证书属于这种类别的证书。

2.1 Platform Key(PK)

平台密钥PK在平台所有者(OEM)和平台固件之间建立信任关系。平台所有者将密钥的公钥部分PKpub注册到平台固件中。此步骤将平台从设置模式转为用户模式。Microsoft建议平台密钥的类型为EFI_CERT_X509_GUID,公钥算法为RSA,公钥长度为2048位,签名算法为sha256RSA。

2.2 Key Exchange Key(KEK)

密钥交换密钥(KEK)建立了操作系统与平台固件之间的信任关系。每个操作系统(以及可能需要与平台固件通信的每个第三方应用程序)都会在平台固件中注册一个公钥(KEKpub)。

  • db
    EFI _IMAGE_SECURITY_DATABASE db 的内容控制在验证加载的映像时信任哪些映像。 数据库可以包含多个证书、密钥和哈希,以识别允许的映像。
  • dbx
    在检查 db 之前验证映像时,必须检查EFI_IMAGE_SIGNATURE_DATABASE1 dbx 的内容,一旦存在任何匹配项,就必须阻止映像的执行。 数据库可以包含多个证书、密钥和哈希,以识别禁止的映像。 Windows 硬件认证要求规定必须存在一个dbx。

下图展示了使用db/dbx的验证流程
在这里插入图片描述
下图展示了一个引入dbt的验证流。需要基于dbx签名进行额外的检查。
在这里插入图片描述

2.3 Secure Boot Modes

  • Setup Mode
    Setup Mode 即设置模式,在尚未安装 PK 时将处于此模式,此模式允许操作 PK、 KEK、DB 和 DBX,系统所有者可以添加、删除或修改这些值,以控制允许在启动时执行的文件。一旦建立 PK,系统会在下次启动时自动退出设置模式并进入用户模式。

  • User Mode
    User Mode 即用户模式,是指在注册 PK 后生效的 Secure Boot 操作模式,Secure Boot 策略会被强制执行。用户模式是 Secure Boot 的默认模式,通常用于生产环境中。在用户模式下,通常无法修改 Secure Boot 策略。如果需要更改策略,需要进入设置模式或审核模式。

  • Audit Mode
    Audit Mode 即审核模式,其目的是收集有关 Secure Boot 检查结果的调试信息。进入审核模式后,仍然执行签名检查,但不会被禁止未授权的程序启动。管理员可以使用此模式来查看哪些启动过程部分被验证了、验证结果如何、是否存在与启动组件和策略相关的问题。

  • Deployed Mode
    部署模式是最安全的模式。用户模式和审计模式支持未经身份验证就转换到部署模式。但是,要从部署模式转换成任何其他模式,需要使用特定于平台的安全方法,或者删除经过身份验证的PK。

Secure Boot Modes Transition

参考

Understanding_UEFI_Secure_Boot_Chain
UEFI Spec2.10-32_Secure_Boot_and_Driver_Signing
什么是Boot Guard?电脑启动中的信任链条解析-老狼​
UEFI安全启动
安全技术篇 – Secure Boot(上)
安全技术篇 – Secure Boot(下)
Windows 安全启动密钥创建和管理指南
趣话安全启动:迷思与启示

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/723210.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

洞察未来5-10年数字化转型的革命性趋势

“十四五”规划和2035年远景目标纲要提出了加快数字化发展,建设数字中国的目标, 这意味着数字化转型将成为推动生产方式、生活方式和治理方式变革的关键力量。 加快数字化发展 建设数字中国 ⭐ 打造数字经济新优势 ⭐ 加快数字社会建设步伐 ⭐ 提高数字…

软考62-上午题-【面向对象技术】-面向对象的基本概念1

一、封装 1-1、封装的定义 一个对象把属性和行为封装为一个整体。是一种信息隐蔽技术。 封装就是将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法(getter和setter)来实现对隐藏信息的操作和访问。 封…

Docker发布镜像(DockerHub,阿里云)

目录 1、发布到DockerHub上 2、发布到阿里云镜像服务上 小结 1、发布到DockerHub上 1.地址https://hub.docker.com/注册自己的账号 2.确定这个账号可以登录 3.在服务器上提交自己的镜像 [rootwq test]# docker login --helpUsage: docker login [OPTIONS] [SERVER]Log in…

数据存储格式

数据存储格式是指数据在存储介质中表示和组织的方式,以便于读取、写入和管理。 csv(逗号分隔值) CSV(Comma-Separated Values,逗号分隔值)是一种常见的数据存储格式,它以纯文本形式存储表格数…

uniapp实现---类似购物车全选

目录 一、实现思路 二、实现步骤 ①view部分展示 ②JavaScript 内容 ③css中样式展示 三、效果展示 四、小结 注意事项 一、实现思路 点击商家复选框,可选中当前商家下的所有商品。点击全选,选中全部商家的商品 添加单个多选框,在将多选…

在XCode中使用SwiftGen管理你的图片、配色、多语言文件等

SwiftGen是一个工具,可以为您的项目资源(如图像、本地化字符串等)自动生成Swift代码,然后你就可以像使用一个Class类一样访问你的资源了。 而且添加或更新资源后,SwiftGen也会自动更新用于访问资源的Class类。对于管理…

H3C 路由过滤路由引入实验

H3C 路由过滤&路由引入实验 实验拓扑 ​​ 实验需求 按照图示配置 IP 地址,R1,R3,R4 上使用 loopback 口模拟业务网段R1 和 R2 运行 RIPv2,R2,R3 和 R4 运行 OSPF,各自协议内部互通在 RIP 和 OSPF …

computed和methods的区别

computed和methods在Vue.js中都是用于处理数据和逻辑的方法,但它们之间存在一些重要的区别。 缓存机制:computed属性是基于它们的依赖进行缓存的。只有当它的相关依赖发生改变时才会重新计算。这意味着只要计算属性依赖的响应式属性没有发生变化&#x…

Android9-W517-使用NotificationListenerService监听通知

目录 一、前言 二、前提 三、方案 方案一 方案二 方案三 方案四 方案五 方案六 方案七 四、关于NotificationListenerService类头注释 五、结论 一、前言 NotificationListenerService可以让应用监听所有通知,但是无法获得监听通知的权限,如…

HTML标签语义化,前端开发学习计划

正文 HTML中的标签从闭合的角度可以分为闭合标签和空标签。而HTML中大部分标签都是闭合标签&#xff0c;其他少数为空标签&#xff1b; 常见的空标签&#xff1a; <input />、 <img />、 <area />、 <base />、 <link />等 HTML中对标签另一种…

修改一个教材上的网站源码使它能在www服务器子目录上正常运行

修改一个教材上的网站源码&#xff0c;使它能在www服务器子目录上正常运行。 该网站源码是教材《PHPMySQL网站开发项目式教程》上带的网站源码。该源码是用 php html 写的。该源码包含对mysql数据库进行操作的php代码。以前该网站源码只能在www服务器的根目录上正常运行&…

C语言数据结构与算法——深度、广度优先搜索(DFS、BFS)

目录 一、深度优先搜索&#xff08;Depth-First-Search 简称&#xff1a;DFS&#xff09; 无向图的深度优先搜索 有向图的深度优先搜索 二、广度优先搜索&#xff08;Breadth-First-Search 简称&#xff1a;BFS&#xff09; 无向图的广度优先搜索 有向图的广度优先搜索 深…

【工具】PIL图片颜色处理

使用前置函数&#xff0c;用于图片效果显示 from PIL import Image, ImageOps, ImageEnhance import matplotlib.pyplot as pltclass SHOW:def __init__(self):self.idx 0# 创建宽10英寸、高90英寸self.fig plt.figure(figsize(10,90))def add(self, img, title):self.idx …

【JavaEE】_Spring MVC项目之使用对象传参

目录 1. 使用对象传参 2. 后端参数重命名问题 2.1 关于RequestPara注解 本专栏关于Spring MVC项目的单个及多个参数传参一文中&#xff0c;已经介绍过了对于不同个数的参数传参问题&#xff0c;原文链接如下&#xff1a; 【JavaEE】_Spring MVC 项目单个及多个参数传参-CSD…

2024高频前端面试题 Vue2 和 Vue3 篇

* Vue2 和 Vue3的区别&#xff1a; 1&#xff09;双向数据绑定原理的区别 2&#xff09;根节点的不同 Vue2只能一个根节点 Vue3在组件中可以放置多个根节点 3&#xff09;Vue3中采用composition API vue2:采用的选项型API(opsition API) vue3:采用的组合型API(composition A…

分类算法入门:以鸢尾花数据集为例

近两年人工智能技术蓬勃发展&#xff0c;OpenAI连续放出ChatGPT、Sora等“王炸”产品&#xff0c;大模型、AIGC等技术带来了革命性的提升&#xff0c;很多人认为人工智能将引领第四次工业革命。国内各大互联网公司也是重点投资布局&#xff0c;从个人角度来说要尽快跟上时代的潮…

Node.js最准确历史版本下载(以下载Node.js16.17.1版本为例)

先进入官网:Node.js https://nodejs.org/en 括号中LTS代表稳定版本. 嫌其他冗余博客帖子多&#xff0c;找起来费眼睛,可以到/release下载:Node.js,在blog后面加/release https://nodejs.org/en/blog/release/ 点击next翻页,跟上面同样的步骤

echarts柱状图可鼠标左击出现自定义弹框,右击隐藏弹框并阻止默认右击事件

每项x轴数据对应有两条柱图和一条阴影效果是学习其它博客得到的效果&#xff0c;这个是学习的原文链接&#xff1a;echarts两个合并柱体&#xff08;普通柱状图象形柱图&#xff09;共享一个柱体阴影 因为这次情况比较特殊&#xff0c;不仅需要自定义弹框内容&#xff0c;而且…

JAVA中YML:几个用法

项目有一些配置文件&#xff0c;ini、prop类型的配置文件都考虑过后&#xff0c;还是选择yml文件&#xff0c;如上图&#xff1a;xxconfig.yml。 要求&#xff1a; 1、允许实施人员手动配置 2、配置文件要能轻便的转化为一个JAVA对象 3、程序启动后&#xff0c;打印这些配置项&…

DQL语言学习(2024/3/5)one

1.基础查询&#xff1a; select 查询列表 from 表名&#xff1b; 查询列表可以是&#xff1a;①表中的字段、②常量值、③表达式、④函数 ①查询表中的单个字段&#xff0c;多个字段&#xff0c;所有字段 select *from 表名&#xff1b; ③查询表达式: select 100*98; ④…