uEFI BIOS

在Intel的目标机上安全地启动VxWorks 7

1 介绍

VxWorks是由风河(Wind River)提供的一个实时操作系统(RTOS),支持从一个带有安全的uEFI固件的Intel目标机上启动。安全的uEFI BIOS固件可以避免恶意软件注入到启动加载器和操作系统镜像后在目标机上运行。

本文描述了如何为安全启动配置VxWorks 7,并展示了如何安全启动一个典型的Intel目标机。

2 前提条件

以下的指导步骤假设你正在使用:

  • Wind River VxWorks 7, SR0620安装在一个Windows的工作站上
  • 从安全的uEFI BIOS上启动的Intel目标机,比如:Dell Latitude E6540笔记本
  • 一个USB的闪存

3 相关文档

有关本主题的更多信息,请参考:

  • 风河文档:
    • VxWorks 7安全程序员指南
  • 非风河文档:
    • Secure Boot, Microsoft, https://docs.microsoft.com/en-us/windows-hardware/design/device-experiences/oem-secure-boot
    • Unified Extensible Firmware Interface, Wikipedia, https://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface

4 创建并编译安全的VxWorks源码编译(VSB)项目

打开一个DOS Shell终端,配置编译环境,然后编译项目。


cd <WIND_HOME>                  // your installation directory
wrenv -p vxworks-7
cd <YOUR_WORKSPACE>             // your workspace
vxprj vsb create secure_vsb -bsp itl_generic -smp -force -S
cd secure_vsb                   // your VSB directory
vxprj vsb add SECURE_LOADER     // add the disk encryption layer to the VSB
make -j 32                      // build the VSB

5 创建并编译安全的VxWorks镜像项目(VIP)

像下面一样创建一个基本的VxWorks镜像项目(VIP)


cd ..
vxprj create -smp itl_generic secure_vip -profile PROFILE_INTEL_GENERIC -vsb secure_vsb
cd secure_vip
vxprj vip component add INCLUDE_BOOT_LOADER
vxprj vip component add DRV_CONSOLE_EFI
vxprj build

请确保你添加了DRV_CONSOLE_EFI组件,因为没有这个组件的话内核是不会启动的。

6 配置USB闪存盘

6.1 部署安全密钥

将目录切换到


<YOUR_WORKSPACE>\secure_vsb\secureLoader

拷贝文件db.sig,KEK.sig和PK.sig到USB闪存盘的根目录

6.2 部署启动加载器和VxWorks内核

将目录切换到


<YOUR_WORKSPACE>\secure_vsb\secureLoader

拷贝并重命名BOOTX64.EFI.signed文件到\EFI\BOOT\BOOTX64.EFI

将目录切换到


<YOUR_WORKSPACE>\secure_vip\default\

拷贝并重命名VxWorks.signed文件到\EFI\BOOT\bootapp.sys

经过上述操作后,你会在USB闪存盘上找到下述文件:


\PK.sig
\KEK.sig
\db.sig

\ EFI \ BOOT
        bootapp.sys
        BOOTX64.EFI

7 部署VSB安全密钥到目标机上

7.1 准备Intel的目标机

从工作站上拔出USB闪存盘,然后插入到Intel的目标机上

给Intel目标机加电并启动到BIOS

7.2 更新UEFI BIOS安全密钥

这些BIOS配置步骤是和目标机相关的,不同的目标机,配置步骤是不一样的。

在Dell Latitude E6540上,步骤如下所述:

Select General -> Boot Sequence -> UEFI.
Deselect General -> Advanced Boot Options -> Enable Legacy Option ROMs.
Enable Secure Boot -> Secure Boot Enable.
Enable Secure Boot -> Expert Key Management -> Enable Custom Mode.
In Secure Boot -> Expert Key Management:
Press Delete All Keys
Click PK, click Replace from File, and select PK.sig on root of USB flash drive.
Click KEK, click Replace from File, and select KEK.sig on root of USB flash drive.
Click db, click Replace from File, and select db.sig on root of USB flash drive.

应用这个BIOS更新,然后将目标机断电。

8 在目标机上启动VxWorks

给目标机加电,选择USB闪存盘作为启动盘,等目标机启动后,你可以看到VxWorks的logo横幅,然后出现shell提示符。

->

现在你已经成功安全地启动了VxWorks了

9 小结

增强安全地启动目标机,参考下述文章:

  • 加密文件系统,细节部分请参考文章“创建一个加密的VxWorks 7文件系统分区”
  • 用户登录功能,细节部分请参考文章“创建带有安全用户登录的VxWorks 7系统
  • 安全模块加载器功能,这可以作为以后的一个主题,细节部分请参考 “VxWorks 7安全程序员指南”