[Skiboot] [PATCH 2/3] libstb/stb.c: measure the IMA_CATALOG partition
Claudio Carvalho
cclaudio at linux.vnet.ibm.com
Thu Sep 28 08:58:14 AEST 2017
On 20/09/2017 03:20, Stewart Smith wrote:
> Claudio Carvalho <cclaudio at linux.vnet.ibm.com> writes:
>> This maps a PCR number for the IMA_CATALOG partition so that it can be
>> measured (extended to the mapped PCR).
>>
>> Signed-off-by: Claudio Carvalho <cclaudio at linux.vnet.ibm.com>
>> ---
>> libstb/stb.c | 1 +
>> 1 file changed, 1 insertion(+)
>>
>> diff --git a/libstb/stb.c b/libstb/stb.c
>> index eab04eb..15aa682 100644
>> --- a/libstb/stb.c
>> +++ b/libstb/stb.c
>> @@ -58,6 +58,7 @@ static struct {
>> enum resource_id id;
>> TPM_Pcr pcr;
>> } resources[] = {
>> + { RESOURCE_ID_IMA_CATALOG, PCR_4 },
>> { RESOURCE_ID_KERNEL, PCR_4 },
>> { RESOURCE_ID_CAPP, PCR_2 },
> Any reason why PCR4 rather than PCR2?
The TCG PC Client spec for tpm 2.0 defines the PCR usage (Table 1):
PCR2 : UEFI driver and application code
PCR4 : UEFI Boot Manager Code (usually the MBR) and Boot Attempts
As you can see even PCR 2 and 4 are not a perfect match for CAPP and
BOOTKERNEL. We have actively discussed about PCR usage and event types
these days and the current proposal we are discussing is to start to
measure all skiboot events in PCR 4 because the only event type that
could be used with PCR 2 are EV_EFI_BOOT_SERVICES_APPLICATION,
EV_EFI_BOOT_SERVICES_DRIVER and EV_EFI_RUNTIME_SERVICES_DRIVER. However,
all of them refers to UEFI and the event field MUST contain a
UEFI_IMAGE_LOAD_EVENT structure.
If we measure all skiboot events in PCR 4 we can use the EV_COMPACT_HASH
event type, which says that the content of the event field is specified
by the caller. In other words we could continue to put a string in the
event field that describes the event, for example:
---------- EVENT 14 ----------
pcr_index 4
event_type 12 (EV_COMPACT_HASH)
digests.count 2
algorithm_id 11 (SHA1)
digest
83 3c 20 b9 f4 fc 0c 18 33 4f
88 0a 94 2f 02 a1 47 77 df 1f
a1 3f 66 3d f5 72 61 18 73 0c
6f c3
algorithm_id 4 (SHA256)
digest
83 3c 20 b9 f4 fc 0c 18 33 4f
88 0a 94 2f 02 a1 47 77 df 1f
event_size 4
event 'CAPP'
> The IMA_CATALOG seems more like CAPP than KERNEL, as in, bits of
> data/microcode rather than other firmware component.
>
More information about the Skiboot
mailing list