From: Manuel Huber <manuelh@nvidia.com>
To: Fan Wu <wufan@kernel.org>, David Howells <dhowells@redhat.com>,
Jarkko Sakkinen <jarkko@kernel.org>
Cc: Christian Brauner <brauner@kernel.org>,
Andrew Halaney <andrew@amutable.com>,
Paul Moore <paul@paul-moore.com>,
James Morris <jmorris@namei.org>,
"Serge E. Hallyn" <serge@hallyn.com>,
Jonathan Corbet <corbet@lwn.net>,
Shuah Khan <skhan@linuxfoundation.org>,
Shuah Khan <shuah@kernel.org>,
Randy Dunlap <rdunlap@infradead.org>,
Alexei Starovoitov <ast@kernel.org>,
Daniel Borkmann <daniel@iogearbox.net>,
"linux-security-module@vger.kernel.org"
<linux-security-module@vger.kernel.org>,
"keyrings@vger.kernel.org" <keyrings@vger.kernel.org>,
"linux-kselftest@vger.kernel.org"
<linux-kselftest@vger.kernel.org>,
"linux-doc@vger.kernel.org" <linux-doc@vger.kernel.org>,
"bpf@vger.kernel.org" <bpf@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH RFC 1/4] ipe: add the .ipe policy keyring
Date: Thu, 22 Oct 2026 18:01:53 +0000 [thread overview]
Message-ID: <DM4PR12MB61369D00ED2FCFEDAE0E4597DE652@DM4PR12MB6136.namprd12.prod.outlook.com> (raw)
In-Reply-To: <702ade20-a2f3-4919-97e6-c72faa89399a@kernel.org>
On Mon, Oct 19, 2026 at 04:15:57PM -0700, Fan Wu wrote:
> You might need to explain why the existing keyrings, i.e.
> builtin/secondary/platform cannot be used in your scenario. Like the
> firmware is not trusted?
As touched upon in [1], the scenario uses an ephemeral VM whose
IEP policy would be assembled after boot. There is a mix of explicitly
trusted dm-verity root hashes and possibly signed dm-verity layers
which can vary per VM, so the final IPE policy would not necessarily
be known ahead of time.
This specific scenario is Kata Containers on Kubernetes. Each
Kubernetes pod runs in a headless Kata VM with a static dm-verity
protected rootfs, while its container image layers are delivered
dynamically as dm-verity protected block devices. The kata-agent acts
as trusted bootstrap userspace and would author the IPE policy for that
particular guest before starting its workload containers.
The firmware is trusted in this scenario. A public policy-signing
certificate could be compiled into the builtin keyring or provisioned
through the platform or secondary keyrings. Because the policy would be
authored inside the guest, however, the corresponding private key would
also have to be shipped as a static artifact in the guest rootfs and
shared by every guest using that build.
Instead, the kata-agent would generate an ephemeral, per-guest
policy-signing key pair, provision its public certificate, sign the
policy, destroy the private key, and restrict the keyring before
allowing untrusted code to execute.
A dedicated .ipe keyring thus provides a purpose-specific runtime
provisioning path for this scenario. Once the certificate has been
added, the keyring can be restricted against further enrollment.
I envision other scenarios with similar characteristics may benefit from
a dedicated .ipe keyring as well.
I could elaborate more on this, e.g., on the how users' deployed
container images translate to dm-verity protected image layers etc.
(the erofs snapshotter is used and there is no filesystem sharing
between host and guest, image layer transport is realized via block
device attachment), but I am trying to keep this response brief. Some
more breadcrumbs on the combination of containerd, IPE, Kata can be
found in [2] and [3].
[1] https://lore.kernel.org/r/SJ1PR12MB61246B0BF58BC2B6F0A79D30DE9F2@SJ1PR12MB6124.namprd12.prod.outlook.com
[2] https://github.com/containerd/containerd/issues/12081
[3] https://github.com/kata-containers/kata-containers/issues/10943
next prev parent reply other threads:[~2026-10-22 18:02 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-19 21:40 [PATCH RFC 0/4] IPE: add a dedicated " Manuel Huber via B4 Relay
2026-10-19 21:40 ` [PATCH RFC 1/4] ipe: add the .ipe " Manuel Huber via B4 Relay
2026-10-19 21:52 ` Randy Dunlap
2026-10-19 23:15 ` Fan Wu
2026-10-21 13:54 ` Christian Brauner
2026-10-21 16:51 ` Paul Moore
2026-10-22 10:18 ` Christian Brauner
2026-10-22 17:18 ` Paul Moore
2026-10-26 12:57 ` luca.boccassi
2026-10-22 18:01 ` Manuel Huber [this message]
2026-10-22 20:25 ` Fan Wu
2026-10-23 11:59 ` Christian Brauner
2026-10-19 21:40 ` [PATCH RFC 2/4] keys: add KEY_SPEC_IPE_KEYRING Manuel Huber via B4 Relay
2026-10-19 23:24 ` Fan Wu
2026-10-21 13:51 ` Christian Brauner
2026-10-19 21:40 ` [PATCH RFC 3/4] Documentation: ipe: document the IPE keyring Manuel Huber via B4 Relay
2026-10-19 21:40 ` [PATCH RFC 4/4] selftests/ipe: test the IPE policy keyring Manuel Huber via B4 Relay
2026-10-19 23:28 ` Fan Wu
2026-10-22 17:22 ` Manuel Huber
2026-10-19 21:54 ` [PATCH RFC 0/4] IPE: add a dedicated " Jarkko Sakkinen
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=DM4PR12MB61369D00ED2FCFEDAE0E4597DE652@DM4PR12MB6136.namprd12.prod.outlook.com \
--to=manuelh@nvidia.com \
--cc=andrew@amutable.com \
--cc=ast@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=brauner@kernel.org \
--cc=corbet@lwn.net \
--cc=daniel@iogearbox.net \
--cc=dhowells@redhat.com \
--cc=jarkko@kernel.org \
--cc=jmorris@namei.org \
--cc=keyrings@vger.kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=linux-security-module@vger.kernel.org \
--cc=paul@paul-moore.com \
--cc=rdunlap@infradead.org \
--cc=serge@hallyn.com \
--cc=shuah@kernel.org \
--cc=skhan@linuxfoundation.org \
--cc=wufan@kernel.org \
/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
all inboxes | Powered by JetHome®