Secureboot概念

简介: Secureboot概念

1、前言

最近在微信公众号接触到了一个Secureboot这个概念。通过这个认识可以让我们穿起来一些知识,站在稍高一点的位置去看我们所学的东西处在整个系统的位置。

什么是Secureboot?

借用一句广告词:业务安全的基石是APP安全,APP安全的基石是操作系统安全,操作系统安全的基石是SecureBoot安全。

Secure Boot是验证应用域内的一个/多个应用CPU子系统执行的一个/多个应用程序映像的完整性和真实性(多应用核和多内存段),验证策略由用户定义,包括:被验证的内容、验证方式、验证结果分析处理。

是不是有点绕?

来先看看背景:

手机厂商建立了手机内部处理器与手机操作系统的绑定关系(也就是说**开启 SecureBoot 功能的手机是「不能刷非官方系统」**的),一旦刷入第三方系统后,手机则会不开机。这也是利用上文提到的公钥、私钥实现的,来具体看一下:

  • 手机的处理器内部存在一块只能写一次数据的 OTP 区域,出厂时会将厂商的公钥写入。物理上就保证了这部分不可更改。
  • 手机操作系统固件会使用厂商的私钥进行加密。
  • 手机处理器的第一部分启动程序(这部分程序也是固化在处理器内部的不可更改)会使用 OTP 中的公钥对操作系统进行解密,解密成功才可以启动,否则立马变"砖"。

这个过程就叫做「安全启动」,即 SecureBoot 。实际过程中为了加快校验速度也使用了哈希值算法,但此处仅用于说明加密启动的过程,忽略了部分细节。(电脑端 Intel 处理器中其实也存在类似的机制,但一般情况下 PC 都希望能够灵活的安装系统,因此默认没有开启 Intel 芯片中的 SecureBoot 功能。)

有了这个应用背景!!!

继续看

安全启动(SecureBoot)使用非对称加密与数字签名技术提供了一种从硬件到操作系统的安全启动信任链

Secure Boot的目的,是防止恶意软件侵入。它的做法就是采用密钥。UEFI规定,主板出厂的时候,可以内置一些可靠的公钥。然后,任何想要在这块主板上加载的操作系统或者硬件驱动程序,都必须通过这些公钥的认证。也就是说,这些软件必须用对应的私钥签署过,否则主板拒绝加载。由于恶意软件不可能通过认证,因此就没有办法感染Boot。

实际一点:在安全启动中,证书颁发机构 (Ca) 包括 OEM (或其委托) 和 Microsoft。Ca 生成构成信任根的密钥对,然后使用私钥对合法操作(如允许的早期启动 EFI 模块和固件服务请求)进行签名。对应的公钥将嵌入到启用了安全启动的 Pc 上的 UEFI 固件中,并用于验证这些操作。

啰里啰嗦到了现在我们下总结:

  • 1、Secure Boot就是安全启动,我们之前学习的ATF、启动流程、安全操作系统(TEEOS)都是它的子集
  • 2、完整的Secure Boot包含两个部分:
  • 第一部分为Linux的Secureboot,
  • 第二部分为Android特有的AVB(Android Verified Boot)。

开启了Secureboot的设备,会在启动时逐级校验各分区,一旦某一级校验不通过,则设备就无法启动。

Secureboot分为安全性校验与完整性校验。

  • 安全性校验: 为公钥的校验,借助于芯片的一次性可编程安全存储模块(OTP 或 efuse), 在rk3399上称为efuse。该检验流程为从efuse中读取公钥 hash,与计算的公钥 hash 先做对比,如果相同,则再将公钥用于解密固件 hash。(嵌入式设备就是对应的bootrom)
  • 完整性校验: 为校验固件的完整性,计算固件的 hash 与用公钥解密出来的 hash 对比是否一致。

AVB阶段安全性校验和完整性校验需要依赖于vbmeta.img,相关的公钥及描述信息存储在vbmeta.img中。(这个流程可以看看AVB专栏的内容)

2、Secureboot要学习什么?

密码学算法

efuse(OTP)

RPMB

启动流程

secureboot原理

简单的secureboot(不带证书)

官方推荐的secureboot(不带证书)

encrypted_image

efuse不安全

TEE验证TA程序的设计

Android Verified Boot(AVB)


目录
相关文章
|
存储 安全 信息无障碍
可信计算平台与安全芯片扫盲文
可信计算平台与安全芯片扫盲文
700 0
|
10月前
|
机器学习/深度学习 边缘计算 算法
NOMA和OFDMA优化算法分析
NOMA和OFDMA优化算法分析
481 127
|
8月前
|
JSON API 数据格式
借助电商 API,多平台客户评价一键抓取
在电商竞争激烈的环境下,客户评价对消费者决策至关重要。本文介绍如何利用电商平台 API(如 Amazon、eBay、淘宝等)一键抓取多平台客户评价,提升数据收集效率,支持情感分析与市场趋势预测。通过 Python 示例代码,讲解 API 请求构建、多平台整合及数据处理方法,助力商家实现数据驱动的产品优化与市场响应。
223 0
|
存储 安全 算法
鸿蒙NEXT如何保证应用安全:详解鸿蒙NEXT数字签名和证书机制
本文对鸿蒙NEXT公开资料进行了深入分析和解读,梳理了鸿蒙单框架应用的签名机制,拆解每一步的实操过程和背后的实现原理,并对源码分析整理签名的校验机制。从中管中窥豹,探究鸿蒙系统的安全设计思路,给从事鸿蒙研发的同学提供一些借鉴。
1483 3
|
安全 网络协议 网络安全
当虚拟机出现网络连接问题时,应该先检查Hyper-V的网卡连接配置
当虚拟机出现网络连接问题时,应首先检查Hyper-V的网卡配置。具体步骤包括:确认虚拟机运行状态、检查虚拟交换机类型和物理网卡连接、确保虚拟机网络适配器正确连接到虚拟交换机,并验证网络配置(IP地址等)。常见问题如虚拟交换机配置错误、网络适配器未连接或防火墙阻止连接,可通过重新配置或调整设置解决。必要时重启虚拟机和宿主机,查看事件日志或联系技术支持以进一步排查问题。
|
存储 算法 Android开发
AVB校验微观版本:android avb(Android Verified Boot)验证
AVB校验微观版本:android avb(Android Verified Boot)验证
2474 0
|
前端开发 安全 关系型数据库
Flask的学生信息管理系统的设计与实现
Flask的学生信息管理系统的设计与实现
1595 0
|
Android开发
将AAB(Android App Bundle)转换为APK
将AAB(Android App Bundle)转换为APK
953 1

热门文章

最新文章