在数据中心中,云服务器由各种处理设备和外围组件(如加速器和存储设备)组成,这些设备通常都运行着固件。对云平台服务商来说,为保证这些设备的安全可靠,需要一种或多种机制,来保证这些设备在测试,运输,安装和使用期间都能拥有完整性校验的保护机制,禁止未经授权的代码执行并抵御潜在的攻击。
Secure Boot正是为此而生。它是由OCP(Open Compute Project)Security Workgroup制定的标准规范,允许设备在加电/重置之后、正式启动之前,对固件的完整性进行验证,只有验证通过,设备才被允许加载固件,进入正式的启动流程。
以SSD为例。要实现Secure Boot功能,SSD需要同时实现RoT(Root of Trust,信任根)和CoT(Chain of Trust,信任链)两个重要功能。RoT是不可变的,不被外部访问或修改,它负责对CoT进行完整性校验,而CoT又负责对主Firmware进行完整性校验。Secure Boot的大体流程如下所示:
在存储设备中,数字签名通常用来检测数据的完整性,也就是数据是否有被篡改。数字签名算法包括签名的生成过程和签名的验证过程。每个数字签名都有相应的密钥对(Key Pairs),即我们常说的公钥和私钥,它们归签名的签署者(如OEM厂商)所有,签署者也是唯一被授权使用私钥生成数字签名的实体。
上图是数字签名的生成和验证过程:
需要指出的是,私钥是签署者独有的,必须保持机密,不被公开;公钥则不需要保密,只需要保持其完整性即可,任何人均可使用公钥验证签名是否正确。
所有支持Secure Boot功能的SSD通常会在其主控芯片内存在一个固定的、不可修改的Boot ROM单元,它是重要的RoT信任根,也是SSD上电/重置后执行的第一个组件,负责初始化Secure Boot功能,并对信任链CoT加以验证。
同时,在主控芯片中还存在另一个重要的RoT信任根——eFuse,负责存储公钥的摘要,也是固定在主控芯片中的根秘钥。
Firmware Image校验流程(引自OCP Hardware Secure Boot文档)
RSA PSS PKCS#1 v2.1, 3072 bit 密钥长度或更高
ECDSA 384 bit 密钥长度或更高
Digital Signature Standard (DSS) FIPS 186-4
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