From: Rob Herring <robh@kernel.org>
To: Prakhar Srivastava <prsriva@linux.microsoft.com>
Cc: Mark Rutland <mark.rutland@arm.com>,
kstewart@linuxfoundation.org, gregkh@linuxfoundation.org,
bhsharma@redhat.com, tao.li@vivo.com, zohar@linux.ibm.com,
paulus@samba.org, vincenzo.frascino@arm.com, will@kernel.org,
nramas@linux.microsoft.com, frowand.list@gmail.com,
masahiroy@kernel.org, jmorris@namei.org,
takahiro.akashi@linaro.org, linux-arm-kernel@lists.infradead.org,
catalin.marinas@arm.com, serge@hallyn.com,
devicetree@vger.kernel.org, pasha.tatashin@soleen.com,
hsinyi@chromium.org, tusharsu@linux.microsoft.com,
tglx@linutronix.de, allison@lohutok.net, mbrugger@suse.com,
balajib@linux.microsoft.com, dmitry.kasatkin@gmail.com,
linux-kernel@vger.kernel.org,
linux-security-module@vger.kernel.org, james.morse@arm.com,
linux-integrity@vger.kernel.org, linuxppc-dev@lists.ozlabs.org
Subject: Re: [RFC][PATCH 0/2] Add support for using reserved memory for ima buffer pass
Date: Tue, 12 May 2020 18:05:09 -0500 [thread overview]
Message-ID: <20200512230509.GA2654@bogus> (raw)
In-Reply-To: <e8c7d74e-74bf-caa3-452d-23faa649e825@linux.microsoft.com>
On Wed, May 06, 2020 at 10:50:04PM -0700, Prakhar Srivastava wrote:
> Hi Mark,
Please don't top post.
> This patch set currently only address the Pure DT implementation.
> EFI and ACPI implementations will be posted in subsequent patchsets.
>
> The logs are intended to be carried over the kexec and once read the
> logs are no longer needed and in prior conversation with James(
> https://lore.kernel.org/linux-arm-kernel/0053eb68-0905-4679-c97a-00c5cb6f1abb@arm.com/)
> the apporach of using a chosen node doesn't
> support the case.
>
> The DT entries make the reservation permanent and thus doesnt need kernel
> segments to be used for this, however using a chosen-node with
> reserved memory only changes the node information but memory still is
> reserved via reserved-memory section.
I think Mark's point was whether it needs to be permanent. We don't
hardcode the initrd address for example.
> On 5/5/20 2:59 AM, Mark Rutland wrote:
> > Hi Prakhar,
> >
> > On Mon, May 04, 2020 at 01:38:27PM -0700, Prakhar Srivastava wrote:
> > > IMA during kexec(kexec file load) verifies the kernel signature and measures
What's IMA?
> > > the signature of the kernel. The signature in the logs can be used to verfiy the
> > > authenticity of the kernel. The logs don not get carried over kexec and thus
> > > remote attesation cannot verify the signature of the running kernel.
> > >
> > > Introduce an ABI to carry forward the ima logs over kexec.
> > > Memory reserved via device tree reservation can be used to store and read
> > > via the of_* functions.
> >
> > This flow needs to work for:
> >
> > 1) Pure DT
> > 2) DT + EFI memory map
> > 3) ACPI + EFI memory map
> >
> > ... and if this is just for transiently passing the log, I don't think
> > that a reserved memory region is the right thing to use, since they're
> > supposed to be more permanent.
> >
> > This sounds analogous to passing the initrd, and should probably use
> > properties under the chosen node (which can be used for all three boot
> > flows above).
> >
> > For reference, how big is the IMA log likely to be? Does it need
> > physically contiguous space?
>
> It purely depends on the policy used and the modules/files that are accessed
> for my local testing over a kexec session the log in
> about 30KB.
>
> Current implementation expects enough contiguous memory to allocated to
> carry forward the logs. If the log size exceeds the reserved memory the
> call will fail.
>
> Thanks,
> Prakhar Srivastava
> >
> > Thanks,
> > Mark.
> >
> > >
> > > Reserved memory stores the size(sizeof(size_t)) of the buffer in the starting
> > > address, followed by the IMA log contents.
> > >
> > > Tested on:
> > > arm64 with Uboot
> > >
> > > Prakhar Srivastava (2):
> > > Add a layer of abstraction to use the memory reserved by device tree
> > > for ima buffer pass.
> > > Add support for ima buffer pass using reserved memory for arm64 kexec.
> > > Update the arch sepcific code path in kexec file load to store the
> > > ima buffer in the reserved memory. The same reserved memory is read
> > > on kexec or cold boot.
> > >
> > > arch/arm64/Kconfig | 1 +
> > > arch/arm64/include/asm/ima.h | 22 ++++
> > > arch/arm64/include/asm/kexec.h | 5 +
> > > arch/arm64/kernel/Makefile | 1 +
> > > arch/arm64/kernel/ima_kexec.c | 64 ++++++++++
> > > arch/arm64/kernel/machine_kexec_file.c | 1 +
> > > arch/powerpc/include/asm/ima.h | 3 +-
> > > arch/powerpc/kexec/ima.c | 14 ++-
> > > drivers/of/Kconfig | 6 +
> > > drivers/of/Makefile | 1 +
> > > drivers/of/of_ima.c | 165 +++++++++++++++++++++++++
> > > include/linux/of.h | 34 +++++
> > > security/integrity/ima/ima_kexec.c | 15 ++-
> > > 13 files changed, 325 insertions(+), 7 deletions(-)
> > > create mode 100644 arch/arm64/include/asm/ima.h
> > > create mode 100644 arch/arm64/kernel/ima_kexec.c
> > > create mode 100644 drivers/of/of_ima.c
> > >
> > > --
> > > 2.25.1
> > >
next prev parent reply other threads:[~2020-05-12 23:07 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-04 20:38 [RFC][PATCH 0/2] Add support for using reserved memory for ima buffer pass Prakhar Srivastava
2020-05-04 20:38 ` [RFC][PATCH 1/2] Add a layer of abstraction to use the memory reserved by device tree " Prakhar Srivastava
2020-05-12 23:09 ` Rob Herring
2020-05-18 20:34 ` Prakhar Srivastava
2020-05-04 20:38 ` [RFC][PATCH 2/2] Add support for ima buffer pass using reserved memory arm64 Prakhar Srivastava
2020-05-05 9:59 ` [RFC][PATCH 0/2] Add support for using reserved memory for ima buffer pass Mark Rutland
2020-05-07 5:50 ` Prakhar Srivastava
2020-05-12 23:05 ` Rob Herring [this message]
2020-05-18 20:16 ` Prakhar Srivastava
2020-05-23 4:08 ` Thiago Jung Bauermann
2020-06-01 4:05 ` Prakhar Srivastava
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200512230509.GA2654@bogus \
--to=robh@kernel.org \
--cc=allison@lohutok.net \
--cc=balajib@linux.microsoft.com \
--cc=bhsharma@redhat.com \
--cc=catalin.marinas@arm.com \
--cc=devicetree@vger.kernel.org \
--cc=dmitry.kasatkin@gmail.com \
--cc=frowand.list@gmail.com \
--cc=gregkh@linuxfoundation.org \
--cc=hsinyi@chromium.org \
--cc=james.morse@arm.com \
--cc=jmorris@namei.org \
--cc=kstewart@linuxfoundation.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-integrity@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-security-module@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=mark.rutland@arm.com \
--cc=masahiroy@kernel.org \
--cc=mbrugger@suse.com \
--cc=nramas@linux.microsoft.com \
--cc=pasha.tatashin@soleen.com \
--cc=paulus@samba.org \
--cc=prsriva@linux.microsoft.com \
--cc=serge@hallyn.com \
--cc=takahiro.akashi@linaro.org \
--cc=tao.li@vivo.com \
--cc=tglx@linutronix.de \
--cc=tusharsu@linux.microsoft.com \
--cc=vincenzo.frascino@arm.com \
--cc=will@kernel.org \
--cc=zohar@linux.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).