如何在启动操作系统之前进行一些安全验证?

2024-02-03

我有一个可启动闪存盘,其中包含定制的 Ubunto,我想将闪存盘传递给未知的人,但它存在一些安全问题。我想确保未知的人无法更改闪存盘内容。因此,我想计算闪存内容的哈希值并在每次启动时验证它,并在验证失败或哈希不匹配时防止启动操作系统。

为此,我应该进行bootloader编程,我正在寻找UEFI编程,但我找到了一些文档和视频,而且我也不知道是否选择UEFI或BIOS。

因此,如果您能帮助我并提供全面的解决方案或针对我的问题提出任何其他解决方案(引导加载程序编程除外),我将不胜感激。


我认为你走错路了。恕我直言,最简单的方法是使用 UEFI 的安全启动机制。为此,您只需对内核和需要保护的模块进行签名即可。

如何签署安全启动的内容。 https://ubuntu.com/blog/how-to-sign-things-for-secure-boot

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在启动操作系统之前进行一些安全验证? 的相关文章

  • 使用 DOS 或 BIOS 显示字符

    翻翻拉尔夫 布朗的中断列表 我发现有很多不同的方法可以将文本字符输出到屏幕上 ROM BIOS API 提供以下功能 AH 09h 在光标位置写入字符和属性 AH 0Ah 仅在光标位置写入字符 AH 0Eh 电传打字机输出 AH 13h 写
  • AH=2 的 BIOS INT 13H 每次只能读取 72 个扇区。为什么?

    我正在使用 Bochs 2 4 5 编写引导扇区代码 我使用 INT 13H 从软盘读取扇区 但我发现如果读取的扇区数 gt 72 INT13就会失败 返回码为AH 1 下面是代码 这是INT13 返回码为AH 1 为什么INT 13H不能
  • 我可以使用 EFI 在本地文件系统上写入吗

    我正在开发这个项目 以便在操作系统通过 EFI 应用程序启动后立即将文件写入本地文件系统 我需要知道是否可能 如果是的话 请指导我一点 谢谢 好吧 我会好好提醒你的 首先枚举系统中的所有 FS 协议 EFI BOOT SERVICES bs
  • “times 510-($-$$) db 0”不起作用

    我正在学习引导扇区 我从以下位置下载了 nasm installer x64 exeNASM网站 我的操作系统是win7 64位 当我运行以下代码时 它无法正常工作 mov ah 0x0e mov al the secret int 0x1
  • 组装 - 在 bochs 中运行引导加载程序时出现问题

    我目前正在尝试在 bochs 中编译并运行一个简单的引导加载程序 目前 这是我的 bootloader asm 文件 BITS 16 ORG 0x7C00 Where the code gets mapped top jmp top Loo
  • Atmel SAM3X8E 双组切换用于启动不同的行为

    我目前正在使用 Arduino Due 板 该板嵌入了 Atmel SAM3X8E 处理器 我使用 Atmel Studio 版本 7 0 1645 和提供的 Atmel 软件框架 版本 3 28 1 对其进行编程 在 SAM 上运行的程序
  • 程序集 32 位打印显示在 qemu 上运行的代码,无法在真实硬件上运行

    我已经用 x86 汇编语言编写了一小段在裸硬件上运行的代码 此时 它已启用受保护的 32 位模式 然而 我遇到了与屏幕打印有关的问题 我读到 要在不中断的情况下执行此操作 可以将字符加载到特殊的内存区域 即 RAM 地址 0xb8000 知
  • 加载引导加载程序的第二阶段和/或将控制权转移给它时出现问题

    我的主引导记录代码 bit16 16bit by default org 0x7c00 jmp short start nop bsOEM db OS423 v 0 1 OEM String start cls mov ah 06h Fun
  • 如何设置定时器

    有什么办法可以将计时器设置为 60 秒xor ah ah Enter Again xor ah ah I should put 60 seconds here int 16h The user should press S before 6
  • 启动时自动运行 EFI 应用程序

    I can 构建并手动执行 http sourceforge net apps mediawiki tianocore index php title Getting Started Writing Simple ApplicationUE
  • 未选择链接器文件

    我正在使用链接器文件处理应用程序中的问题 发生的事情是在资源管理器选项卡中 链接器文件似乎没有被 选择 我必须提到我也有一个引导加载程序 我收到错误 944 地址 1FC02FF8h 处的数据冲突 我认为这与该错误有关 有人能帮我吗 非常感
  • NASM 模块将十六进制转换为字符串并打印出来。已组装但未按预期工作

    我正在尝试编写一个简单的汇编代码以将十六进制值输出到屏幕上 有两个文件print screen asm它正在与其他模块一起工作 我认为问题出在我尝试将十六进制转换为字符串时的逻辑中 我的代码是 org 0x7c00 xor dx dx xo
  • UEFI引导加载程序

    我正在考虑开发一个简单的 首先 UEFI 引导加载程序来加载 ELF 映像 并且想知道是否有人有一个很好的切入点 可以进入任何现有项目 或者我可以用来开始使用的示例 另外 我想知道是否有人有让虚拟机运行 EFI 应用程序的经验 我已经设置了
  • 不使用预定义函数在汇编中打印字符串

    我必须在汇编中定义一个函数 该函数允许我循环遍历声明的字节字符串并使用 BIOS 中断打印它们 我处于 16 位实模式 这是一个根据教科书编写一个小引导加载程序的练习 但看起来这只是一个草稿 并且缺少一些东西 我得到了以下代码 org 0x
  • 从 efi 应用程序发送 TCP 或 UDP 数据包

    我想开发一个在 EFI shell 中从startup nsh 自动执行的应用程序 此应用程序应将原始字节发送到 IP 地址并接收一些返回的字节 我到处寻找在我的代码中实现简单网络协议的解释和示例 但一无所获 有人可以解释并显示使用 gnu
  • NASM:磁盘读取超时

    尝试从磁盘 从同一文件 读取数据 将另外 2 个 512 字节扇区加载到内存中 磁盘读取功能如下 read DH sectors to ES BX from drive DL disk read push dx push bx Tried
  • ARM 系统上的 Bootrom 与引导加载程序有什么区别

    我主要来自 x86 系统背景 其中 BIOS 固件 负责从 PowerON 加载引导加载程序 如 GRUB 进而加载操作系统 我现在一直在阅读 ARM 系统上的等效启动顺序 网上似乎有文章提到了两个术语 bootrom 和 bootload
  • 使用 int 13h 读取的扇区数量多于磁道上的扇区数量

    顺序是什么int 13h with ah 02h会读19部门起始于 C H S 0 0 1 提供了 2 个磁头 每磁道 18 个扇区 每面 80 个磁道的 软盘 磁盘几何结构 或者 更一般地说 当它到达磁道 0 的末尾 磁头 0 时会发生什
  • 如何获取 RAM 大小、引导加载程序

    我想问如何在引导加载程序中获取总 RAM 大小和可用 RAM 大小 截至目前 我知道如何获得较低的内存 但由于某种原因我无法将其打印到屏幕上 因为它保存在斧头寄存器中 这是我到目前为止所拥有的 BITS 16 BootLoader alwa
  • 普通的 x86 或 AMD PC 是直接从 ROM 运行启动/BIOS 代码,还是先将其复制到 RAM? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我知道现代计算机已经修改了哈佛架构 它们可以从保存数据的地方以外的地方读取指令 这一事实是否允许它们直接从 ROM 芯片获取指令 他们是先

随机推荐