【已评审】支持呈现SPDM相关能力的Redfish标准接口

背景

BMC支持组件接入认证能力,在支持SPDM协议的组件上电接入后,基于SPDM协议对该组件进行身份验证并进行呈现。

需要实现相关Redfish接口,用于呈现可信根信息和完整性校验信息

关联ISSUE

【需求】提供SPDM原子能力

评审点

1、在 /redfish/v1/Chassis/{ChassisId} 中增加标准响应信息 TrustedComponents

2、新增标准接口 /redfish/v1/Chassis/{ChassisId}/TrustedComponents

3、新增标准接口 /redfish/v1/Chassis/{ChassisId}/TrustedComponents/{TrustedComponentId}

4、新增标准接口 /redfish/v1/Chassis/{ChassisId}/TrustedComponents/{TrustedComponentId}/Certificates

5、新增标准接口 /redfish/v1/Chassis/{ChassisId}/TrustedComponents/{TrustedComponentId}/Certificates/{CertificateId}

6、新增标准接口 /redfish/v1/ComponentIntegrity

7、新增标准接口 /redfish/v1/ComponentIntegrity/{ComponentIntegrityId}

8、新增标准接口 /redfish/v1/ComponentIntegrity/{ComponentIntegrityId}/Actions/ComponentIntegrity.SPDMGetSignedMeasurements

详细描述

1、在 /redfish/v1/Chassis/{ChassisId} 中增加标准响应信息 TrustedComponents
URI:/redfish/v1/Chassis/{ChassisId}
变更类型:新增属性
操作类型:GET

属性名称 取值类型 取值范围 默认值 操作权限 是否频繁变化并需要屏蔽变化事件 约束
TrustedComponents { object 只读,ReadOnly
@odata.id string(uri) 只读,ReadOnly
}

2、新增标准接口 /redfish/v1/Chassis/{ChassisId}/TrustedComponents
URI:/redfish/v1/Chassis/{ChassisId}/TrustedComponents
变更类型:新增URI
操作类型:GET

属性名称 取值类型 取值范围 默认值 操作权限 是否频繁变化并需要屏蔽变化事件 约束
@odata.id string(uri) 只读,ReadOnly
@odata.type string 只读,ReadOnly
Name string 只读,ReadOnly
Members@odata.count number 只读,ReadOnly
Members[{ array(object) 只读,ReadOnly
@odata.id string(uri) 只读,ReadOnly
}]

3、新增标准接口 /redfish/v1/Chassis/{ChassisId}/TrustedComponents/{TrustedComponentId}
URI:/redfish/v1/Chassis/{ChassisId}/TrustedComponents/{TrustedComponentId}
变更类型:新增URI
操作类型:GET

属性名称 取值类型 取值范围 默认值 操作权限 是否频繁变化并需要屏蔽变化事件 约束
@odata.id string(uri) 只读,ReadOnly
@odata.type string 只读,ReadOnly
Description string 只读,ReadOnly
Id string 只读,ReadOnly
Name string 只读,ReadOnly
Links{ object 只读,ReadOnly
ComponentIntegrity[{ array(object) 只读,ReadOnly
@odata.id string(uri) 只读,ReadOnly
}]
ComponentProtected[{ array(object) 只读,ReadOnly
@odata.id string(uri) 只读,ReadOnly
}]}
Certificates{ object 只读,ReadOnly
@odata.id string(uri) 只读,ReadOnly
}
FirmwareVersion string 只读,ReadOnly
Manufacturer string 只读,ReadOnly
Model string 只读,ReadOnly
SerialNumber string 只读,ReadOnly
UUID string 只读,ReadOnly
TrustedComponentType string “Discrete”,“Integrated” 只读,ReadOnly
Status{ object 只读,ReadOnly
Health string 只读,ReadOnly
State string 只读,ReadOnly
}

4、新增标准接口 /redfish/v1/Chassis/{ChassisId}/TrustedComponents/{TrustedComponentId}/Certificates
URI:/redfish/v1/Chassis/{ChassisId}/TrustedComponents/{TrustedComponentId}/Certificates

变更类型:新增URI
操作类型:GET

属性名称 取值类型 取值范围 默认值 操作权限 是否频繁变化并需要屏蔽变化事件 约束
@odata.id string(uri) 只读,ReadOnly
@odata.type string 只读,ReadOnly
Name string 只读,ReadOnly
Members@odata.count number 只读,ReadOnly
Members[{ array(object) 只读,ReadOnly
@odata.id string(uri) 只读,ReadOnly
}]

5、新增标准接口 /redfish/v1/Chassis/{ChassisId}/TrustedComponents/{TrustedComponentId}/Certificates/{CertificateId}
URI:/redfish/v1/Chassis/{ChassisId}/TrustedComponents/{TrustedComponentId}/Certificates/{CertificateId}
变更类型:新增URI
操作类型:GET

属性名称 取值类型 取值范围 默认值 操作权限 是否频繁变化并需要屏蔽变化事件 约束
@odata.id string(uri) 只读,ReadOnly
@odata.type string 只读,ReadOnly
Id string 只读,ReadOnly
Name string 只读,ReadOnly
Fingerprint string 只读,ReadOnly
FingerprintHashAlgorithm string “TCG_ALG_SHA256” 只读,ReadOnly
SPDM{ object 只读,ReadOnly 仅SPDM证书存在该项
SlotId number 只读,ReadOnly 仅SPDM证书存在该项
}
CertificateString string 只读,ReadOnly
CertificateType string “PEM”,“PEMchain” 只读,ReadOnly
Subject{ object 只读,ReadOnly
CommonName string 只读,ReadOnly
OrganizationalUnit string 只读,ReadOnly
Organization string 只读,ReadOnly
City string 只读,ReadOnly
State string 只读,ReadOnly
Country string 只读,ReadOnly
}
Issuer{ object 只读,ReadOnly
CommonName string 只读,ReadOnly
OrganizationalUnit string 只读,ReadOnly
Organization string 只读,ReadOnly
City string 只读,ReadOnly
State string 只读,ReadOnly
Country string 只读,ReadOnly
}
ValidNotBefore string 只读,ReadOnly
ValidNotAfter string 只读,ReadOnly
SerialNumber string 只读,ReadOnly
SignatureAlgorithm string 只读,ReadOnly
KeyUsage array(string) “ClientAuthentication”,“CodeSigning”,“CRLSigning”,“DataEncipherment”,“DecipherOnly”,“DigitalSignature”,“EmailProtection”,“EncipherOnly”,“KeyAgreement”,“KeyCertSign”,“KeyEncipherment”,“NonRepudiation”,“OCSPSigning”,“ServerAuthentication”,“Timestamping” 只读,ReadOnly

6、新增标准接口 /redfish/v1/ComponentIntegrity
URI:/redfish/v1/ComponentIntegrity
变更类型:新增URI
操作类型:GET

属性名称 取值类型 取值范围 默认值 操作权限 是否频繁变化并需要屏蔽变化事件 约束
@odata.id string(uri) 只读,ReadOnly
@odata.type string 只读,ReadOnly
Name 只读,ReadOnly
Members@odata.count number 只读,ReadOnly
Members[{ array(object) 只读,ReadOnly
@odata.id string(uri) 只读,ReadOnly
}]

7、新增标准接口 /redfish/v1/ComponentIntegrity/{ComponentIntegrityId}
URI:/redfish/v1/ComponentIntegrity/{ComponentIntegrityId}
变更类型:新增URI
操作类型:GET

属性名称 取值类型 取值范围 默认值 操作权限 是否频繁变化并需要屏蔽变化事件 约束
@odata.id string(uri) 只读,ReadOnly
@odata.type string 只读,ReadOnly
Id string 只读,ReadOnly
Name string 只读,ReadOnly
Description string 只读,ReadOnly
ComponentIntegrityType string “SPDM” 只读,ReadOnly
ComponentIntegrityTypeVersion string 只读,ReadOnly
LastUpdated string 只读,ReadOnly
TargetComponentURI string(uri) 只读,ReadOnly
Status{ object 只读,ReadOnly
Health string 只读,ReadOnly
State string 只读,ReadOnly
}
SPDM{ object 只读,ReadOnly
IdentityAuthentication{ object 只读,ReadOnly
ResponderAuthentication{ object 只读,ReadOnly
ComponentCertificate{ object 只读,ReadOnly
@odata.id string(uri) 只读,ReadOnly
}}}
MeasurementSet{ object 只读,ReadOnly
MeasurementSpecification string “DMTF” 只读,ReadOnly
MeasurementSummaryType string “TCB” 只读,ReadOnly
MeasurementSummaryHashAlgorithm string 只读,ReadOnly
MeasurementSummary string 只读,ReadOnly
Measurements[{ array(object) 只读,ReadOnly
MeasurementIndex number 只读,ReadOnly
MeasurementHashAlgorithm string 只读,ReadOnly
Measurement string 只读,ReadOnly
LastUpdated string 只读,ReadOnly
PartofSummaryHash boolean 只读,ReadOnly
MeasurementType string “FirmwareConfiguration”,“HardwareConfiguration”,“ImmutableROM”,“MeasurementManifest”,“MutableFirmware”,“MutableFirmwareSecurityVersionNumber”,“MutableFirmwareVersion” 只读,ReadOnly 仅当MeasurementSpecification为DMTF时该属性需要呈现
SecurityVersionNumber string 只读,ReadOnly 仅当MeasurementType为MutableFirmwareSecurityVersionNumber时该属性需要呈现
}]}}
Actions{ object 只读,ReadOnly
#ComponentIntegrity.SPDMGetSignedMeasurements{ object 只读,ReadOnly
target string(uri) /redfish/v1/ComponentIntegrity/{ComponentIntegrityId}}/Actions/ComponentIntegrity.SPDMGetSignedMeasurements 只读,ReadOnly
@Redfish.ActionInfo string(uri) 只读,ReadOnly
}}

8、新增标准接口 /redfish/v1/ComponentIntegrity/{ComponentIntegrityId}/Actions/ComponentIntegrity.SPDMGetSignedMeasurements
URI:/redfish/v1/ComponentIntegrity/{ComponentIntegrityId}/Actions/ComponentIntegrity.SPDMGetSignedMeasurements
变更类型:新增URI
操作类型:POST
操作权限:SecurityMgmt

请求参数:

属性名称 取值类型 取值范围 默认值 约束 说明
MeasurementIndices array(number) [1~255] [255] 非必需参数 参数可选填如下几个使用方式:1、[1~254] 中的一个或多个唯一值;2、[255];3、无此参数,默认使用 [255]
SlotId number 0~7 0 非必需参数 参数可选填如下几个使用方式:1、0~7:指定使用特定槽位标识符的证书;2、无此参数,默认使用 0
Nonce string 长度64 非必需参数 有此参数时应遵循标准:\^0-9a-fA-F{64}$;无此参数时由业务侧自行生成随机数

响应参数:

属性名称 取值类型 取值范围 默认值 约束 说明
Certificate{ object 仅当请求参数SlotId为0~7时该属性可呈现 一个指向与SPDM槽位标识符对应的证书的链接,该证书可用于验证签名。仅当请求参数SlotId为0~7时该属性可呈现
@odata.id string 指向与SPDM槽位标识符对应的证书链接
}
Version string SPDM协商版本号
PublicKey string 仅当请求参数SlotId为15时该属性才呈现 可用于验证签名的公钥。仅当请求参数SlotId为15时该属性才呈现,当前不支持
HashingAlgorithm string SPDM协商的哈希算法
SigningAlgorithm string SPDM协商的签名算法
SignedMeasurements string 基于Nonce和指定测量块计算得到的签名摘要的Base64字符串

评审结论

1、同意在 /redfish/v1/Chassis/{ChassisId} 中增加标准响应信息 TrustedComponents

uri:/redfish/v1/ComponentIntegrity/{ComponentIntegrityId}

type:GET

2、同意新增标准资源 TrustedComponents 呈现可信部件集合,资源实现详见详细描述章节

uri:/redfish/v1/Chassis/{ChassisId}/TrustedComponents

type:GET

3、同意新增标准资源 TrustedComponent 呈现可信部件信息,资源实现详见详细描述章节

uri:/redfish/v1/Chassis/{ChassisId}/TrustedComponents/{TrustedComponentId}

type:GET

4、同意新增标准资源 Certificates 呈现可信部件的证书集合,资源实现详见详细描述章节

uri:/redfish/v1/Chassis/{ChassisId}/TrustedComponents/{TrustedComponentId}/Certificates

type:GET

5、同意新增标准资源 Certificate 呈现可信部件的证书信息,资源实现详见详细描述章节

uri:/redfish/v1/Chassis/{ChassisId}/TrustedComponents/{TrustedComponentId}/Certificates/{CertificateId}

type:GET

6、同意新增标准资源 ComponentIntegrity 呈现完整性报告集合,资源实现详见详细描述章节

uri:/redfish/v1/ComponentIntegrity

type:GET

7、同意新增标准资源 ComponentIntegrity 呈现完整性报告信息,资源实现详见详细描述章节

uri:/redfish/v1/ComponentIntegrity/{ComponentIntegrityId}

type:GET

8、同意新增标准接口 SPDMGetSignedMeasurements 用于获取挑战响应,资源实现详见详细描述章节

uri:/redfish/v1/ComponentIntegrity/{ComponentIntegrityId}/Actions/ComponentIntegrity.SPDMGetSignedMeasurements

type:POST

遗留问题