[edk2-devel] [PATCH] SecurityPkg: Fix TPM2 ACPI measurement.
Wang, Jian J
jian.j.wang at intel.com
Wed Nov 6 06:17:24 UTC 2019
Reviewed-by: Jian J Wang <jian.j.wang at intel.com>
Regards,
Jian
> -----Original Message-----
> From: Derek Lin <derek.lin2 at hpe.com>
> Sent: Wednesday, November 06, 2019 9:01 AM
> To: derek.lin2 at hpe.com; devel at edk2.groups.io
> Cc: jason.spottswood at hpe.com; Yao, Jiewen <jiewen.yao at intel.com>; Wang,
> Jian J <jian.j.wang at intel.com>; Zhang, Chao B <chao.b.zhang at intel.com>
> Subject: [PATCH] SecurityPkg: Fix TPM2 ACPI measurement.
>
> We have discussed in this thread.
> https://edk2.groups.io/g/devel/topic/32205028
>
> Before the change, TPM FW upgrade will impact TPM2 ACPI PCR value because
> TPM2 ACPI HID include FW version.
>
> This change make the measurement before TPM2 HID fixup. So, after TPM FW
> upgrade, the ACPI PCR record remains the same.
>
> Signed-off-by: Derek Lin <derek.lin2 at hpe.com>
> ---
> SecurityPkg/Tcg/Tcg2Smm/Tcg2Smm.c | 30 ++++++++++++++++--------------
> 1 file changed, 16 insertions(+), 14 deletions(-)
>
> diff --git a/SecurityPkg/Tcg/Tcg2Smm/Tcg2Smm.c
> b/SecurityPkg/Tcg/Tcg2Smm/Tcg2Smm.c
> index bd786bf479..54966c83ce 100644
> --- a/SecurityPkg/Tcg/Tcg2Smm/Tcg2Smm.c
> +++ b/SecurityPkg/Tcg/Tcg2Smm/Tcg2Smm.c
> @@ -664,7 +664,22 @@ PublishAcpiTable (
> ));
>
> //
> - // Update TPM2 HID before measuring it to PCR
> + // Measure to PCR[0] with event EV_POST_CODE ACPI DATA.
> + // The measurement has to be done before UpdateHID since TPM2 ACPI HID
> + // imply TPM Firmware Version. Otherwise, the PCR record would be
> + // different after TPM FW update.
> + //
> + TpmMeasureAndLogData(
> + 0,
> + EV_POST_CODE,
> + EV_POSTCODE_INFO_ACPI_DATA,
> + ACPI_DATA_LEN,
> + Table,
> + TableSize
> + );
> +
> + //
> + // Update TPM2 HID after measuring it to PCR
> //
> Status = UpdateHID(Table);
> if (EFI_ERROR(Status)) {
> @@ -694,19 +709,6 @@ PublishAcpiTable (
> }
> }
>
> - //
> - // Measure to PCR[0] with event EV_POST_CODE ACPI DATA
> - //
> - TpmMeasureAndLogData(
> - 0,
> - EV_POST_CODE,
> - EV_POSTCODE_INFO_ACPI_DATA,
> - ACPI_DATA_LEN,
> - Table,
> - TableSize
> - );
> -
> -
> ASSERT (Table->OemTableId == SIGNATURE_64 ('T', 'p', 'm', '2', 'T', 'a', 'b', 'l'));
> CopyMem (Table->OemId, PcdGetPtr (PcdAcpiDefaultOemId), sizeof (Table-
> >OemId) );
> mTcgNvs = AssignOpRegion (Table, SIGNATURE_32 ('T', 'N', 'V', 'S'), (UINT16)
> sizeof (TCG_NVS));
> --
> 2.20.1.windows.1
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#50043): https://edk2.groups.io/g/devel/message/50043
Mute This Topic: https://groups.io/mt/42888234/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-
More information about the edk2-devel-archive
mailing list