[PATCH v19 00/13] Carry forward IMA measurement log on kexec on ARM64

Lakshmi Ramasubramanian nramas at linux.microsoft.com
Tue Mar 2 15:25:29 GMT 2021


On 3/2/21 7:06 AM, Rob Herring wrote:
> On Sun, Feb 21, 2021 at 11:49 AM Lakshmi Ramasubramanian
> <nramas at linux.microsoft.com> wrote:
>>
>> On kexec file load Integrity Measurement Architecture (IMA) subsystem
>> may verify the IMA signature of the kernel and initramfs, and measure
>> it.  The command line parameters passed to the kernel in the kexec call
>> may also be measured by IMA.  A remote attestation service can verify
>> a TPM quote based on the TPM event log, the IMA measurement list, and
>> the TPM PCR data.  This can be achieved only if the IMA measurement log
>> is carried over from the current kernel to the next kernel across
>> the kexec call.
>>
>> powerpc already supports carrying forward the IMA measurement log on
>> kexec.  This patch set adds support for carrying forward the IMA
>> measurement log on kexec on ARM64.
>>
>> This patch set moves the platform independent code defined for powerpc
>> such that it can be reused for other platforms as well.  A chosen node
>> "linux,ima-kexec-buffer" is added to the DTB for ARM64 to hold
>> the address and the size of the memory reserved to carry
>> the IMA measurement log.
>>
>> This patch set has been tested for ARM64 platform using QEMU.
>> I would like help from the community for testing this change on powerpc.
>> Thanks.
>>
>> This patch set is based on
>> commit f31e3386a4e9 ("ima: Free IMA measurement buffer after kexec syscall")
>> in https://git.kernel.org/pub/scm/linux/kernel/git/zohar/linux-integrity.git
>> "ima-kexec-fixes" branch.

[...]

>>
>> Lakshmi Ramasubramanian (10):
>>    kexec: Move ELF fields to struct kimage
>>    arm64: Use ELF fields defined in 'struct kimage'
>>    powerpc: Use ELF fields defined in 'struct kimage'
>>    x86: Use ELF fields defined in 'struct kimage'
>>    powerpc: Move ima buffer fields to struct kimage
>>    powerpc: Enable passing IMA log to next kernel on kexec
>>    powerpc: Move arch independent ima kexec functions to
>>      drivers/of/kexec.c
>>    kexec: Use fdt_appendprop_addrrange() to add ima buffer to FDT
>>    powerpc: Delete unused function delete_fdt_mem_rsv()
>>    arm64: Enable passing IMA log to next kernel on kexec
>>
>> Rob Herring (3):
>>    of: Add a common kexec FDT setup function
>>    arm64: Use common of_kexec_alloc_and_setup_fdt()
>>    powerpc: Use common of_kexec_alloc_and_setup_fdt()
>>
>>   arch/arm64/Kconfig                     |   1 +
>>   arch/arm64/include/asm/kexec.h         |   4 -
>>   arch/arm64/kernel/machine_kexec_file.c | 194 +----------
>>   arch/powerpc/Kconfig                   |   2 +-
>>   arch/powerpc/include/asm/ima.h         |  30 --
>>   arch/powerpc/include/asm/kexec.h       |  14 +-
>>   arch/powerpc/kexec/Makefile            |   7 -
>>   arch/powerpc/kexec/elf_64.c            |  30 +-
>>   arch/powerpc/kexec/file_load.c         | 183 +---------
>>   arch/powerpc/kexec/file_load_64.c      |  21 +-
>>   arch/powerpc/kexec/ima.c               | 219 ------------
>>   arch/x86/include/asm/kexec.h           |   5 -
>>   arch/x86/kernel/crash.c                |  14 +-
>>   arch/x86/kernel/kexec-bzimage64.c      |   2 +-
>>   arch/x86/kernel/machine_kexec_64.c     |   4 +-
>>   drivers/of/Makefile                    |   6 +
>>   drivers/of/kexec.c                     | 458 +++++++++++++++++++++++++
>>   include/linux/kexec.h                  |   8 +
>>   include/linux/of.h                     |   7 +
>>   security/integrity/ima/ima.h           |   4 -
>>   security/integrity/ima/ima_kexec.c     |   9 +-
>>   21 files changed, 539 insertions(+), 683 deletions(-)
>>   delete mode 100644 arch/powerpc/include/asm/ima.h
>>   delete mode 100644 arch/powerpc/kexec/ima.c
>>   create mode 100644 drivers/of/kexec.c
> 
> I fixed up the Fixes tags and applied for 5.13.
> 

Thanks a lot Rob.

  -lakshmi





More information about the linux-arm-kernel mailing list