Secure Boot功能简析

news2024/11/25 0:59:37

在数据中心中,云服务器由各种处理设备和外围组件(如加速器和存储设备)组成,这些设备通常都运行着固件。对云平台服务商来说,为保证这些设备的安全可靠,需要一种或多种机制,来保证这些设备在测试,运输,安装和使用期间都能拥有完整性校验的保护机制,禁止未经授权的代码执行并抵御潜在的攻击。

Secure Boot正是为此而生。它是由OCP(Open Compute Project)Security Workgroup制定的标准规范,允许设备在加电/重置之后、正式启动之前,对固件的完整性进行验证,只有验证通过,设备才被允许加载固件,进入正式的启动流程。

RoT和CoT

以SSD为例。要实现Secure Boot功能,SSD需要同时实现RoT(Root of Trust,信任根)和CoT(Chain of Trust,信任链)两个重要功能。RoT必须是不可变的,不被外部访问或修改,它负责对CoT进行完整性校验,而CoT又负责对主Firmware进行完整性校验。Secure Boot的大体流程如下所示:

在这里插入图片描述

签名的生成和校验

在存储设备中,数字签名通常用来检测数据的完整性,也就是数据是否有被篡改。数字签名算法包括签名的生成过程和签名的验证过程。每个数字签名都有相应的密钥对(Key Pairs),即我们常说的公钥和私钥,它们归签名的签署者(如OEM厂商)所有,签署者也是唯一被授权使用私钥生成数字签名的实体。

在这里插入图片描述

上图是数字签名的生成和验证过程:

  • 数字签名生成过程:数据通过特定的哈希函数转换为固定长度的数据摘要,摘要通过私钥和数字签名算法形成数字签名。
  • 数字签名验证过程:数据通过特定的哈希函数转换为固定长度的数据摘要,摘要通过公钥、数字签名和数字签名验证算法,验证被签名的数据是否具有完整性。

需要指出的是,私钥是签署者独有的,必须保持机密,不被公开;公钥则不需要保密,只需要保持其完整性即可,任何人均可使用公钥验证签名是否正确。

Secure Boot具体流程

所有支持Secure Boot功能的SSD通常会在其主控芯片内存在一个固定的、不可修改的Boot ROM单元,它是重要的RoT信任根,也是SSD上电/重置后执行的第一个组件,负责初始化Secure Boot功能,并对信任链CoT加以验证。

同时,在主控芯片中还存在另一个重要的RoT信任根——eFuse,负责存储公钥的摘要,也是固定在主控芯片中的根秘钥。

  1. Boot ROM首先会读取签名固件中的公钥,并把引导程序(Boot Loader)从EEPROM(或Nor Flash)中的已知位置读取到主控芯片内部的SRAM当中。注意:在进行数字签名验证和安全引导的时候,没有任何接口或外部端口可以访问内部SRAM的这个区域。
  2. Boot ROM在SRAM中计算签名固件中的公钥的哈希值,并与存储在eFuse中的根密钥的哈希值进行比较。二者如果匹配,说明公钥是完整的、可信的。
  3. Boot ROM使用该公钥对Boot Loader FW进行签名校验,通过进一步的复杂计算,获取到Boot Loader FW的摘要,并将其与用于签名Signature的摘要进行比较, 如果匹配,将进入Boot Loader FW的加载引导流程。
    Firmware Image校验流程(引自OCP Hardware Secure Boot文档)
  4. Boot Loader校验无误后,会作为信任链CoT中的可信组件,对Main Firmware进行签名校验。如果签名的摘要校验无误,将继续进行Main Firmware的加载引导流程。至此,Secure Boot流程完成。

Secure Boot算法

对于可变代码(如Firmware)的摘要生成或公钥的生成,一般要求SHA2-256或更高级别算法;

对于Firmware Image签名的生成,可遵循多种算法,常见规范如下:

  • RSA PSS PKCS#1 v2.1, 3072 bit 密钥长度或更高
  • ECDSA 384 bit 密钥长度或更高
  • Digital Signature Standard (DSS) FIPS 186-4

如果需要对Firmware Image进行加密,加密算法一般遵循AES-256,AES模式可选择AES-GCM、AES-CBC或AES-XTS。

在这里插入图片描述

Memblaze致力为用户提供可靠、安全的高性能闪存存储产品。在我们即将发布的PBlaze新品中,将搭载Secure Boot功能,结合AES-XTS-256硬件数据加密技术、固件加密、固件安全下载等机制,进一步提高NVMe SSD的安全性,降低用户数据泄露的可能。

参考文献

  • Hardware Secure Boot 1.0 by OCP Security workgroup
  • NIST.FIPS.186-4
  • NVM-Express-Base-Specification-2.0b-2021.12.18-Ratified.pdf

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

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

相关文章

XYplorer使用教程

XYplorer使用教程 XYplorer是Windows的文件管理器。它具有标签式浏览,强大的文件搜索功能,多功能预览,高度可定制的界面,可选的双窗格以及一系列独特的方法,可以有效地自动执行频繁重复的任务。它快速,轻便…

【DCDC转换器】BUCK电路的演进

本文将是对BUCK型DCDC转换器的起步介绍,从BUCK电路模型的建立出发,可以对转换器原理有更清晰的认识。其次对三种不同类型开关电源转换器的原理进行计算,转换器的原理基本是类似的,相同的分析方法可以套用在其他模型上。最后引入了…

PHP基本语法(1)

前言:PHP是什么呢?PHP是一种后端开发用的语言,简单点说制作的网页分为静态和动态,静态网页用户体验性差,动态网页用户可以进行交互,而这种交互就需要PHP了。所以PHP他就是一门用于后端开发的语言。 注意&a…

操作系统实验1:操作系统的引导

操作系统实验1:操作系统的引导 现在是2022年12月22日,本人一如既往又是ddl战神😅 (虽然一周前刚立过flag) 两个月前就布置了的内容硬是拖到现在,这波实在是看不下去自己了😅😅😅 拖到了ddl的最后一天&…

String、StringBuffer、StringBuilder的区别

文章目录一、StringBuffer1、介绍2、StringBuffer中方法二、StringBuilder1.介绍2.常用方法总结一、StringBuffer 1、介绍 是可以存储和操作字符串,即包含多个字符的字符串数据。对于StringBuffer而言,本身是一个具体的操作类,所以不能像St…

推送MOBPUSH-API说明

消息监听接口 MobPushReceiver: 消息监听接口(包含接收自定义消息、通知消息、通知栏点击事件、别名和标签变更操作等) MobPush.addPushReceiver(MobPushReceiver receiver): 设置消息监听 MobPush.removePushReceiver(MobPushReceiver receiver): 移除…

2022年全国最新消防设施操作员模拟试题题库及答案

百分百题库提供消防设施操作员考试试题、消防设施操作员考试预测题、消防设施操作员考试真题、消防设施操作员证考试题库等,提供在线做题刷题,在线模拟考试,助你考试轻松过关。 38.下列说法正确的是()。 A.低压供配电系统中&…

vue的基本概念与vue2的指令

目录 一、 Vue的基本概念 1、前端技术的发展(html、CSS、JavaScript) ​ 2、MVVM架构: 数据的双向绑定: 二、Vue开发的方式 1、基本方式:在页面中引入vue.js文件。(vscode) 2、组件…

智能网 联汽车信息安全发展趋势

智能网 联汽车信息安全发展趋势 智能网联汽车行业发展 根据工信部发布的《国家车联网产业标准体系建设 指南(智能网联汽车)》的定义,智能网联汽车是指搭载先进的车载传感器 、控制器、执行器等装置,并融合现代通信与网络技术&a…

Android设计模式详解之备忘录模式

前言 备忘录模式是一种行为模式,该模式用于保存对象当前状态,并且在之后可以再次恢复到此状态; 定义:在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样&#xf…

【单目3D目标检测】MonoDLE论文精读与代码解析

文章目录PrefaceAbstractContributionsDiagnostic ExperimentsPipelineRevisiting Center DetectionTraining SamplesIoU Oriented OptimizationExperimental ResultsPreface [CVPR2021] Ma X, Zhang Y, Xu D. Delving into localization errors for monocular 3d object detec…

Docker技术原理

一、Docker架构 Docker包括三个基本概念: 镜像(Image): Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。容器…

vue中使用tinymce富文本编辑器

之前都是用的quill富文本,但是因为要实现添加表格的功能,quill没有tinymce强大,所以改用了tinymce。当时也是百度了一堆的教程可是没有记录下来,现在发现有的细节忘记了,所以这个文章可能会有错误 。 当时看了好几个安…

全球智能网联汽车出货量预计

IDC 于 2020 年最新发布的《全球智能网 联汽车预测报告(2020-2024)》数据显示,尽管受新冠肺炎疫情冲击,2020 年全球智能网联汽车出货量预计较上一年下滑 10.6%,约为 4440 万辆,但到 2024 年全球智能网联汽车…

数据可视化之excel和finebi报表实现对比

当我们拿到数据,想对数据实现可视化报表设计。第一步就是要了解什么是数据可视化分析,且数据可视化分析的方法有什么?而且当我们拿到excel表格的数据,第一个想法是excel表格自身实现报表数据可视化,除了用excel本身实现…

JMeter

Apache JMeter—压力测试工具 一.什么是Apache JMeter Apache JMeter 是 Apache 组织基于 Java 开发的压力测试工具,用于对软件做压力测试。 JMeter 最初被设计用于 Web 应用测试,但后来扩展到了其他测试领域,可用于测试静态和动态资源&am…

Linux-redis 集群配置

1、redis主从复制(Master/Slave) a、集群结构 三个节点:一个主节点,二个从节点 b、准备实例和配置 在虚拟机开启3个redis 实例,来模拟主从集群模式,信息如下: ippost角色192.168.150.1017001master192.168.150.101…

服务器硬件规格常用查看命令——HCA卡相关命令

使用不同厂商的InfiniBand设备,可能需要到不同厂商的官网下载相应的工具包, Matrox的HCA卡操作命令由infiniband-diags-1.6.5.MLNX20150902.0e83419-0.1.x86_64工具 包提供。由于这类工具的功能与厂商有关,且是针对特定设备的,所以…

融云CEO董晗:国产化进程加速,助推政企数智办公平台深化发展

政策催化加疫情助推下,办公线上化迅速完成着市场教育已经成为当前的主流趋势。而随着“国产化”成为各行业数字化发展道路上的关键词,政企办公领域国产替代的发展确定性更加凸显。关注【融云全球互联网通信云】了解更多 近期,融云与艾瑞咨询…

SpringBoot基础篇和运维篇

目录 parent starter 引导类 ​编辑 辅助功能 REST开发 REST简介 入门案例: 1、设置http请求方式​编辑 2、设置请求参数 知识点: 1,RequestMapping 2、PathVariable注解 3、三个有关页面请求参数的注解 4、REST风格的注解简化&…