Secure Boot(安全启动)
Secure Boot(安全启动)的原理基于链式验证,这是一种确保计算机在启动过程中只加载和执行经过认证的软件的机制。这个过程涉及到硬件、固件和操作系统的多个层面。以下是Secure Boot的基本原理:
-
密钥和证书:Secure Boot使用一组密钥和证书来验证启动过程中的软件。这些密钥通常存储在UEFI固件中,包括一个或多个密钥对(公钥和私钥)。
-
签名的启动加载程序:在启动过程中,UEFI固件会检查启动加载程序(如Windows的引导管理器)的数字签名。这个签名必须由受信任的证书颁发机构(CA)签发,以确保启动加载程序未被篡改。
-
链式验证:启动加载程序接着会验证操作系统内核和其他关键驱动程序的签名。这是一个连续的过程,每个组件都会验证下一个组件的签名,直到整个启动链被验证。
-
固件和硬件支持:Secure Boot需要UEFI固件的支持,以及硬件层面的安全特性,如可信平台模块(TPM)和一次性可编程存储器(eFUSE)。
Secure Boot与硬盘的关系主要体现在以下几个方面:
-
启动加载程序的存储:启动加载程序通常存储在硬盘上的特定分区中,Secure Boot在启动时会从这些分区加载并验证它们。
-
操作系统的安装:在安装操作系统时,安装程序会将必要的密钥和证书嵌入到硬盘上的UEFI分区中,以便在启动时进行验证。
-
安全性:Secure Boot通过确保只有经过验证的软件被加载,从而提高了系统的安全性。这包括防止恶意软件在启动过程中加载,这可能涉及到对硬盘上的操作系统和启动文件的保护。
总的来说,Secure Boot是一种多层次的安全机制,它确保了从硬件到操作系统的每个组件都是可信的。硬盘在这个过程中扮演了存储关键启动文件和密钥的角色,但Secure Boot的实施和管理主要发生在UEFI固件层面。
=====================================
在安装操作系统时,生成的密钥通常会存储一份在UEFI固件中。这个过程是Secure Boot机制的一部分,确保了启动过程中的安全性。以下是这个过程的一般步骤:
-
密钥生成:在安装操作系统的过程中,会生成一对密钥,通常包括一个公钥和一个私钥。这些密钥用于对启动文件进行签名和验证。
-
密钥存储:生成的公钥会被嵌入到操作系统的启动文件中,而私钥则被安全地存储在UEFI固件的非易失性存储区域。这个区域通常是只读的,以防止未授权的访问和修改。
-
签名验证:在启动过程中,UEFI固件会使用存储的私钥来验证启动文件(如启动加载程序)的签名。如果签名有效,说明启动文件未被篡改,系统可以继续启动。
-
信任链建立:操作系统的启动文件(如Windows的引导加载程序)会包含一个由操作系统发布者签名的证书。UEFI固件中的密钥会用来验证这个证书,从而建立起一个信任链,确保只有经过验证的软件被加载。
-
安全启动:一旦验证通过,UEFI固件会将控制权交给启动加载程序,启动加载程序接着会验证操作系统内核和其他关键组件的签名,确保整个启动过程的安全性。
这种密钥存储和管理机制是Secure Boot的核心部分,它确保了即使在硬件级别,启动过程也得到了保护。通过这种方式,Secure Boot能够有效地防止恶意软件在系统启动时加载,提高了系统的安全性。
==========================================
当UEFI安全模式下提示"verification failed: (0x1a) security violation"错误时,这通常意味着启动过程中遇到了安全策略的违反。要解决这个问题,可以尝试以下步骤:
- 关闭安全启动模式:您可以尝试临时关闭UEFI的安全启动模式。进入BIOS设置,找到安全启动(Secure Boot)选项并将其关闭,这样可以暂时绕过安全验证以便进行系统维护或安装。完成必要的操作后记得重新开启安全启动以保证系统安全。
- 使用MOK管理:如果您需要保持安全启动开启,可以通过添加一个Machine Owner Key(MOK)来允许特定的软件或驱动程序在安全启动下运行。这通常涉及以下步骤:
- 在启动菜单选择进入MOK management。
- 选择从磁盘注册密钥(enroll key from disk)或注册哈希值(enroll hash from disk)。
- 按照屏幕上的提示找到相应的密钥文件或哈希值,并进行注册。
- 确认并重新启动电脑以应用更改。
此外,如果以上方法都不可行,可能需要检查您的硬件设备是否存在兼容性问题,或者尝试使用其他工具重新制作可启动U盘。
需要注意的是,这些步骤可能因不同的硬件和BIOS版本而有所不同,具体操作时应参考您的设备手册或联系制造商的技术支持获取帮助。
=========================
在UEFI(统一可扩展固件接口)中选择“Reset to setup mode”或类似选项通常是为了重置UEFI设置到出厂默认状态,或者是为了进入一个特殊的配置模式,以便进行更深入的系统设置。这个操作可能会影响UEFI中的各种设置,包括安全启动(Secure Boot)相关的密钥。
根据搜索结果中的信息,进入“Setup mode”通常允许用户从外部修改UEFI固件中的安全启动密钥。这意味着在“Setup mode”下,用户可以导入新的密钥,或者在某些情况下,清除现有的密钥。如果在这个模式下清除了密钥,那么原有的密钥通常无法恢复,因为它们是存储在UEFI固件的非易失性存储区域中的,一旦清除,就无法通过正常的UEFI界面恢复。
然而,这并不意味着操作系统无法启动。安全启动的密钥主要用于验证操作系统和启动加载程序的签名。如果这些密钥被清除,系统可能会回退到一个更宽松的启动模式,允许未签名的软件启动。这可能需要用户在操作系统中重新配置安全启动设置,或者在需要的情况下,重新安装操作系统。
在执行这样的操作之前,建议备份所有重要的数据和系统设置,并且确保了解所做更改的后果。如果你不熟悉这些过程,最好咨询专业人士或查阅详细的技术文档。
相关文章:
Secure Boot(安全启动)
Secure Boot(安全启动)的原理基于链式验证,这是一种确保计算机在启动过程中只加载和执行经过认证的软件的机制。这个过程涉及到硬件、固件和操作系统的多个层面。以下是Secure Boot的基本原理: 密钥和证书:Secure Boot…...
大厂面试经验:如何对加密后的数据进行模糊查询操作
加密后的数据对模糊查询不是很友好,本篇就针对加密数据模糊查询这个问题来展开讲一讲实现的思路。 为了数据安全我们在开发过程中经常会对重要的数据进行加密存储,常见的有:密码、手机号、电话号码、详细地址、银行卡号、信用卡验证码等信息…...
修改docker默认存储位置【高版本的docker】
一、修改docker默认存储位置 1、停服务 systemctl stop docker 2、修改/etc/docker/daemon.json添加新的dcoker路径 如"data-root": "/mnt/hdd1/docker" 3、保存后重启服务:systemctl restart docker 二、其他服务的命令 systemctl disab…...
CleanMyMac X2024免费Mac电脑清理和优化工具
CleanMyMac X是一款专业的 Mac 清理和优化工具,它具备一系列强大的功能,可以帮助用户轻松管理和维护他们的 Mac 电脑。以下是一些关于 CleanMyMac X 的主要功能和特点: 智能清理:CleanMyMac X 能够智能识别并清理 Mac 上的无用文件…...
吴恩达机器学习全课程笔记第四篇
目录 前言 P61-P68 激活函数 Softmax算法 P69-P73 Adam算法 更多类型的层 模型评估 P74-P79 偏差和方差 建立表现基准 学习曲线 偏差和方差与神经网络 前言 这是吴恩达机器学习笔记的第四篇,第三篇笔记请见: 吴恩达机器学习全课程笔记第…...
大数据分析师常用函数
常用函数 当进行大数据分析时,SQL中的函数非常丰富,以下是更详细的展开: 窗口函数 (Window Functions): ROW_NUMBER(): 为结果集中的每一行分配一个唯一的整数,用于排序。RANK(): 为结果集中的每一行分配一个排名,相同值会有相同的排名,但会跳过相同排名数量。DENSE_RAN…...
MySQL 主从读写分离入门——基本原理以及ProxySQL的简单使用
一、读写分离工作原理 读写分离的工作原理:在大型网站业务中,当单台数据库无法满足并发需求时,通过主从同步方式同步数据。设置一台主服务器负责增、删、改,多台从服务器负责查询,从服务器从主服务器同步数据以保持一…...
ROS2从入门到精通:理论与实战
ROS是什么? 随着人工智能技术的飞速发展与进步,机器人的智能化已经成为现代机器人发展的终极目标。机器人发展的速度在不断提升,应用范围也在不断拓展,例如自动驾驶、移动机器人、操作机器人、信息机器人等。机器人系统是很多复杂…...
docker 安装minio 一脚shell脚本
要创建一个用于安装Minio的Docker的Shell脚本,你可以按照以下步骤进行。这个脚本会执行以下操作: 拉取Minio的Docker镜像。创建一个Docker容器并映射端口。设置Minio的访问密钥和秘密密钥。持久化存储数据到本地目录。 以下是一个简单的Shell脚本示例&…...
【数据库】mybatis使用总结
文章目录 1. 批量插入、检索<foreach>2. <if> 判断等于情况3. 模糊查询(pgsql为例)4. 分页5. <resultMap > 中collection 和association 6. no conflict do update 1. 批量插入、检索<foreach> <insert id"insertSystemService" >in…...
VR元宇宙的概念|VR体验店加盟|虚拟现实设备销售
VR元宇宙是一个结合了虚拟现实(Virtual Reality)和增强现实(Augmented Reality)等技术的概念,代表着一个虚拟的多维度世界。它是一个由数字化的空间构成的虚拟环境,可以通过虚拟现实设备进行交互和探索。 元…...
MySQL进阶:全局锁、表级锁、行级锁总结
👨🎓作者简介:一位大四、研0学生,正在努力准备大四暑假的实习 🌌上期文章:MySQL进阶:MySQL事务、并发事务问题及隔离级别 📚订阅专栏:MySQL进阶 希望文章对你们有所帮助…...
Python用函数实现代码复用
归纳编程学习的感悟, 记录奋斗路上的点滴, 希望能帮到一样刻苦的你! 如有不足欢迎指正! 共同学习交流! 🌎欢迎各位→点赞 👍 收藏⭐ 留言📝 生命对某些人来说是美丽的,…...
2024年腾讯云优惠代金券领取入口整理汇总,收藏级笔记
腾讯云优惠代金券领取入口共三个渠道,腾讯云新用户和老用户均可领取8888元代金券,可用于云服务器等产品购买、续费和升级使用,阿腾云atengyun.com整理腾讯云优惠券(代金券)领取入口、代金券查询、优惠券兑换码使用方法…...
nn.Linear() 使用提醒
原本以为它是和nn.Conv2d()一样,就看第二个维度的数值,今天才知道,它是只看最后一个维度的数值!!! 例子1 Descripttion: Result: Author: Philo Date: 2024-02-27 14:33:50 LastEditors: Philo LastEditT…...
python difflib --- 计算差异的辅助工具
此模块提供用于比较序列的类和函数。 例如,它可被用于比较文件,并可产生多种格式的不同文件差异信息,包括 HTML 和上下文以及统一的 diff 数据。 有关比较目录和文件,另请参阅 filecmp 模块。 class difflib.SequenceMatcher 这…...
HTML5浮动
1.标准文档流组成 块级元素(block) 内联元素(inline) 2.display属性 作用:指定HTML标签的显示方式 常用属性 值 说明 block 块级元素的默认值,元素会被显示为块级元素,该元素前后会带有换行…...
Unity 向量计算、欧拉角与四元数转换、输出文本、告警、错误、修改时间、定时器、路径、
using System.Collections; using System.Collections.Generic; using UnityEngine;public class c2 : MonoBehaviour {// 定时器float t1 0;void Start(){// 向量Vector3 v1 new Vector3(0, 0, 2);Vector3 v2 new Vector3(0, 0, 3);// 计算两个向量的夹角Debug.Log(Vector3…...
前端实现浏览器打印
浏览器的print方法直接调用会打印当前页面的所有元素,使用iframe可以实现局部打印所需要的模块。 组件printView,将传入的信息放入iframe中,调用浏览器的打印功能 <template><div class"print"><iframeid"if…...
iOS卡顿原因与优化
iOS卡顿原因与优化 1. 卡顿简介 卡顿: 指用户在使用过程中出现了一段时间的阻塞,使得用户在这一段时间内无法进行操作,屏幕上的内容也没有任何的变化。 卡顿作为App的重要性能指标,不仅影响着用户体验,更关系到用户留…...
Objective-C常用命名规范总结
【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名(Class Name)2.协议名(Protocol Name)3.方法名(Method Name)4.属性名(Property Name)5.局部变量/实例变量(Local / Instance Variables&…...
Ascend NPU上适配Step-Audio模型
1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统,支持多语言对话(如 中文,英文,日语),语音情感(如 开心,悲伤)&#x…...
基于matlab策略迭代和值迭代法的动态规划
经典的基于策略迭代和值迭代法的动态规划matlab代码,实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...
Springboot社区养老保险系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,社区养老保险系统小程序被用户普遍使用,为方…...
关键领域软件测试的突围之路:如何破解安全与效率的平衡难题
在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件,这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下,实现高效测试与快速迭代?这一命题正考验着…...
JVM 内存结构 详解
内存结构 运行时数据区: Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器: 线程私有,程序控制流的指示器,分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 每个线程都有一个程序计数…...
[免费]微信小程序问卷调查系统(SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】
大家好,我是java1234_小锋老师,看到一个不错的微信小程序问卷调查系统(SpringBoot后端Vue管理端)【论文源码SQL脚本】,分享下哈。 项目视频演示 【免费】微信小程序问卷调查系统(SpringBoot后端Vue管理端) Java毕业设计_哔哩哔哩_bilibili 项…...
根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的----NTFS源代码分析--重要
根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的 第一部分: 0: kd> g Breakpoint 9 hit Ntfs!ReadIndexBuffer: f7173886 55 push ebp 0: kd> kc # 00 Ntfs!ReadIndexBuffer 01 Ntfs!FindFirstIndexEntry 02 Ntfs!NtfsUpda…...
tauri项目,如何在rust端读取电脑环境变量
如果想在前端通过调用来获取环境变量的值,可以通过标准的依赖: std::env::var(name).ok() 想在前端通过调用来获取,可以写一个command函数: #[tauri::command] pub fn get_env_var(name: String) -> Result<String, Stri…...
Win系统权限提升篇UAC绕过DLL劫持未引号路径可控服务全检项目
应用场景: 1、常规某个机器被钓鱼后门攻击后,我们需要做更高权限操作或权限维持等。 2、内网域中某个机器被钓鱼后门攻击后,我们需要对后续内网域做安全测试。 #Win10&11-BypassUAC自动提权-MSF&UACME 为了远程执行目标的exe或者b…...
