背景
装备阶段,导入安全启动公钥指纹以后,指纹校验存在问题。
以前不导入安全启动公钥指纹,不会去校验签名,导入安全启动公钥指纹以后,才会去校验签名。通过升级一个非华为签名的hpm包,来校验是否导入过安全启动公钥指纹。升级成功就是没导入过安全启动公钥指纹,升级失败就是导入过安全启动公钥指纹。
当前社区不管导入还是没导入安全启动公钥指纹都会去校验签名。用之前这个方法无法校验是否导入过安全启动公钥指纹。在安全SIG组评审后,新增ipmi命令判断是否导入过安全启动公钥指纹。
决策点
在获取BMC配置参数命令(Get BMC Configuration)下,新增子命令用于获取安全启动公钥指纹配置信息,权限为安全配置(SecurityMgmt):
表1 bmc配置参数表
| 功能描述 | parameter selector | parameter data-get | parameter data-set |
|---|---|---|---|
| 查询安全启动公钥指纹的配置信息 | 0x4D | 请求: data length:2 data1:查询的安全启动公钥指纹类型 0:查询PKCS格式的BMC固件安全启动公钥指纹 1:查询PSS格式的BMC固件安全启动公钥指纹 data2: 0:查询安全启动公钥指纹导入状态 1:查询安全启动公钥指纹的hash值 响应: 请求data2=0时 data1: 0:未导入 1:已导入 请求data2=1时 data1:安全启动公钥指纹信息长度n data2: data2~n+1: 安全启动公钥指纹的hash值 | 不支持 |
命令功能
获取BMC配置参数
权限说明
ReadOnly
命令格式
ipmicmd -k “0f 00 30 93 db 07 00 5b {selector} {length} {data} ” smi 0
参数说明
| 参数(字节) | 域内容 |
|---|---|
| NetFn | 30h |
| CMD | 93h |
| 1:3 | Manufacturer ID,LS Byte first。长度固定3个字节,例如,某厂家ID是2011,对应十六进制为0x0007DB,则字节序为第1个字节为DBh、第2个字节为07h、第3个字节为00h。 |
| 4 | Sub command,子命令=5bh |
| 5:6 | Parameter Selector,参见表1 BMC配置参数表。低字节在前。 |
| 7:8 | Data Length,低字节在前。 |
| 9:N | Parameter Data,参见表1 BMC配置参数表。 |
响应说明
| 字节顺序 | 域内容 |
|---|---|
| 1 | Completion Code |
| 2:4 | Manufacturer ID,LS Byte first。长度固定3个字节,例如,某厂家ID是2011,对应十六进制为0x0007DB,则字节序为第1个字节为DBh、第2个字节为07h、第3个字节为00h。 |
| 5:N | Data,具体数据参见表1 BMC配置参数表。 |
表1 bmc配置参数表
| 功能描述 | parameter selector | parameter data-get | parameter data-set |
|---|---|---|---|
| 查询安全启动公钥指纹的配置信息 | 0x4D | 请求: data length:2 data1:查询的安全启动公钥指纹类型 0:查询PKCS格式的BMC固件安全启动公钥指纹 1:查询PSS格式的BMC固件安全启动公钥指纹 data2: 0:查询安全启动公钥指纹导入状态 1:查询安全启动公钥指纹的hash值 响应: 请求data2=0时 data1: 0:未导入 1:已导入 请求data2=1时 data1:安全启动公钥指纹信息长度n data2: data2~n+1: 安全启动公钥指纹的hash值 | 不支持 |
整体方案
通过ipmi命令获取安全启动公钥指纹hash值,ipmi命令返回全0,则没有安全启动公钥指纹;ipmi命令返回其他值,则为有安全启动公钥指纹。
评审结论
同意IPMI命令(netfn=0x30, cmd=0x93, subcmd=0x5b)扩展参数选项0x4d,用于查询安全启动公钥指纹的配置信息。
请求说明:
data1:安全启动公钥指纹类型
0:PKCS格式的BMC固件安全启动公钥指纹
1:PSS格式的BMC固件安全启动公钥指纹
data2:安全启动公钥指纹查询选项
0:安全启动公钥指纹导入状态
1:安全启动公钥指纹的hash值
响应说明:
请求data2=0时
data1:导入状态,0:未导入 1:已导入
请求data2=1时
data1: 安全启动公钥指纹信息长度n
data2~n+1: 安全启动公钥指纹的hash值
遗留问题
1、将伙伴根修改为专业术语名称,建议安全启动可信/校验根,需要同步刷新文档(主要是IPMI接口文档)
结论:与security SIG maintainer确认,专业术语名称为安全启动公钥指纹