鲲鹏社区首页
中文
注册
开发者
我要评分
获取效率
正确性
完整性
易理解
在线提单
论坛求助

安全启动

安全启动是在设备启动过程中,从可信根开始逐层验证上一层软件的完整性的一种安全防护手段,其目的是保证设备加载、运行的每一个程序都是未经篡改的。安全启动会检测设备启动阶段固件以及软件是否被篡改,保护设备启动阶段的完整性。安全启动过程中,前一个部件验证后一个部件的数字签名,验证通过后,运行后一个部件,验证通不过则停下来。

原理简介
  1. 在软件程序运行之前,校验软件的完整性和正确性。只有合法的正式发布的软件才可以通过安全校验,其他任何非正当手段发布的软件都不会通过安全校验,此时系统拒绝正常启动。
  2. 流程核心:采用数字签名技术,对要加载运行的软件进行签名验证,只有验证通过的合法软件才允许执行。
  3. 保护系统软件的完整性。

鲲鹏服务器安全启动主要包括基于BMC管理芯片硬件可信根的安全启动和基于鲲鹏处理器硬件可信根的安全启动,如下图所示,系统上电后,BMC系统最先上电,由BMC芯片BootROM开始通过烧写在eFUSE中的可信根校验安全核固件Daemon FW固件,再逐级校验BIOS固件和系统,同时在业务操作系统上电前会对BIOS固件进行校验,校验通过后才给业务操作系统上电。鲲鹏处理器上电后,也同样从BootROM开始逐级校验后级引导固件,一级校验一级,校验通过后才引导加载,最终完成整系统的完整性校验。

图1 鲲鹏服务器安全启动

鲲鹏处理器通过部署华为根公钥及二级秘钥体系实现安全启动流程:

  1. CPU芯片SOC BootROM校验BaseBIOS,校验通过,执行BaseBIOS程序。
  2. BaseBIOS校验UEFI BIOS,校验通过则执行BIOS代码完成硬件初始化。
  3. UEFI Secure Boot,BIOS校验板卡option ROM和OS loader,验签通过后启动OS。

启动过程中,BootRom(BSBC)会读取BaseBIOS头部的根公钥,计算Hash,并与Efuse存储的Hash值进行比较,如果匹配, 会进行二级证书签名认证,认证通过后,可以正常使用BaseBIOS。BaseBIOS使用二级证书验签UEFI及其它引导固件,通过后启动BIOS,BIOS启动后,可通过secure boot校验板卡option ROM和OS Loader文件,如果验签成功,会加载这些二进制或者引导OS Loader,并将控制器最终交给OS。

图2 鲲鹏处理器安全启动信任链

通过逐级完整性校验和签名认证,可保证启动全流程的安全启动,上图中secure boot校验板卡option ROM和OS loader支持用户开启或关闭,按照业界惯例,为兼容不同的OS启动,默认关闭。bootrom校验BaseBIOS和BaseBIOS校验UEFI默认开启,启动必须执行校验。

BIOS支持导入微软证书或者客户自有证书等,这样BIOS可以使用导入的证书对微软签名文件或客户证书签名文件进行验签。