RE: Portable Executable (PE) Signature Validation and Measurement for KEXEC system call using IMA

Lakshmi Ramasubramanian
2019-03-25T21:00:43Z

Thanks for your response Mimi.

Please see my responses to your queries inline.

Thanks,
-lakshmi

>-----Original Message-----
>From: Mimi Zohar <zohar@linux.ibm.com>
>Sent: Monday, March 25, 2019 12:28 PM
>To: Lakshmi Ramasubramanian <nramas@microsoft.com>; linux-integrity@vger.kernel.org; linux-kernel@vger.kernel.org
>Subject: Re: Portable Executable (PE) Signature Validation and Measurement for KEXEC system call using IMA

>Hi Lakshmi,

>On Fri, 2019-03-22 at 17:39 +0000, Lakshmi Ramasubramanian wrote:
>> Hello,
>>
>> When loading the new kernel image file for executing KEXEC system call,
>> we would like to verify that the kernel image file is signed and
>> the signer certificate is valid.
>>

> I'm not sure what is meant by "and the signer certificate is valid".

> The kexec kernel image signature can be verified by keys either on the
> IMA keyring or the platform keyring.  The current method of verifying
> keys being added to the IMA keyring is by requiring them to be signed
> by a key on the builtin trusted keyring.  This provides a signature
> chain of trust from boot to the kernel, based on a HW root of trust,
> and then transitions to the kernel image's embedded keys.  You
> probably already know as to why/how the platform keys are trusted.

[Lakshmi] By "signer certificate is valid" I meant, the key used to sign the kexec kernel image is trusted.
We will verify the signature using the key in the IMA keyring
(like the way you have described above)

>>
>> If the kernel image file is in Portable Executable (PE) format we want to
>> validate the PE Signature and measure the signer X.509 certificate
>> (Extend as part of IMA Template defaulting to PCR 10, if not otherwise set,
>> and the IMA measurement log).

> How/when do you plan to "measure the signer X.509 certificate"?  Is
> this when the certificate is being loaded onto the keyring or at use?
> I'm not sure how much of the certificate is available once loaded
> onto the keyring.

[Lakshmi] We will measure the signer certificate when the file is loaded - in other words, "at use".
The kernel image signer information measured in to the IMA log will then be used as one of the attestation criteria.

>>
>> We plan to use Integrity Measurement Architecture (IMA) for the above.
>>
>> Please let us know if anyone is already working on a patch set
>> for such a functionality.
>>
>> I am aware of the work that Thiago Jung Bauermann @ IBM is doing for
>> "Appended signatures support for IMA appraisal"
>> (Web link given below)
>>
>> https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Flkml.org%2Flkml%2F2018%2F12%2F12%2F1049&amp;data=02%7C01%7Cnramas%40microsoft.com%7Cc36d42cb91214cc3ca1308d6b157f962%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636891388745548879&amp;sdata=OLtkuptXQYZHuvlVmn3ej%2FpEk501TxzToEcbOref0UU%3D&amp;reserved=0

> Other than Thiago, I'm not aware of anyone else working on this.
>  Thiago is actively working on these patches and will be re-posting
> them shortly.

[Lakshmi] Thanks for the information.

> Mimi

Thanks,
-lakshmi