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

Mimi Zohar
2019-03-25T19:27:55Z

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.

>
> 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.

>
> 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://lkml.org/lkml/2018/12/12/1049

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.

Mimi