From: <Andreas.Fuchs@infineon.com>
To: <James.Bottomley@HansenPartnership.com>, <juergen_repp@web.de>,
<linux-integrity@vger.kernel.org>
Cc: <christian.plappert@sit.fraunhofer.de>
Subject: RE: TPM resource manager returns -1 for TPM2_RC_CONTEXT_GAP
Date: Fri, 20 Oct 2023 13:09:51 +0000 [thread overview]
Message-ID: <f0d467d1d35e4709abd70c870dc68157@infineon.com> (raw)
In-Reply-To: <17c803dfb04505e35d4bdd831ef5c63ccb312e32.camel@HansenPartnership.com>
From: James Bottomley <James.Bottomley@HansenPartnership.com>
> On Thu, 2023-10-19 at 16:16 +0000, Andreas.Fuchs@infineon.com wrote:
> > > From: James Bottomley <James.Bottomley@HansenPartnership.com>
> > > On Thu, 2023-10-19 at 16:05 +0200, Juergen Repp wrote:
> > > > There is an issue related to this problem on github for tpm2-tss:
> > > > https://github.com/tpm2-software/tpm2-tss/issues/2691 (/dev/tpmrm
> > > > 0 was
> > > > used) The error did occur after abbout 200 signing operations when
> > > > a second session was opened by a second process at the same time.
> > > > Kernel log:
> > > > [ 401.923826] tpm tpm0: tpm2_save_context: failed with a TPM error
> > > > 0x0901 [ 401.925049] tpm tpm0: A TPM error (459) occurred
> > > > flushing context
> > >
> > > I'm afraid that's a known problem with the Intel TSS: it saves the
> > > context, which will cause a gapping error if you keep it saved while
> > > doing other context requiring operations. The solutions are either
> > > to implement degapping in the kernel or persuade the Intel TSS not
> > > to save contexts unnecessarily.
> >
> > This is independent of the TSS used.
> > When you have one long lasting session being used seldomly (i.e. in
> > Application A) and another session or multiple sessions being used
> > frequently (i.e. in Application B), then you will hit this problem at
> > some point.
> > As such ANY resource manager (in kernel or outside) needs to implement
> > session ungaping, otherwise it will fail such scenarios.
>
> That's true, but in real life the use of sessions tends to be short lived and not context saved (usually short enough that this doesn't even cause a context save inside the kernel rm). You can see this in the TPM code in gnupg, or any of the engines/providers. That's not to say we shouldn't do degapping but, because most common uses in the field don't need it, there's been little pressure on anyone to actually write the code.
>
> > James; on a different note:
> > Any contextSaves by an application or middleware will just make this
> > problem appear earlier but the Kernel's RM will do the contextSave of
> > A's sessions anyways.
> > You can easily make the same problem appear in ANY TSS and you know
> > this very well.
> > So, please stop bad mouthing "not your TSS"es.
>
> Well, OK, how about this: there is a unique feature of the tpm tools allied with the Intel TSS in that they any use of sessions always seem to induce a session context save which can lead to a gapping problem.
So in the issue linked above, the tpm2-tools are not used at all. And the tpm2-tss libraries do not do any ContextSaves on their own.
So here we are hitting the issue from pure application workload.
So I am glad that we agree that the kernel needs to learn how to ungap sessions.
prev parent reply other threads:[~2023-10-20 13:10 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-19 14:05 TPM resource manager returns -1 for TPM2_RC_CONTEXT_GAP Juergen Repp
2023-10-19 15:13 ` James Bottomley
2023-10-19 16:16 ` Andreas.Fuchs
2023-10-19 17:13 ` Juergen Repp
2023-10-20 13:05 ` James Bottomley
2023-10-20 13:09 ` Andreas.Fuchs [this message]
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=f0d467d1d35e4709abd70c870dc68157@infineon.com \
--to=andreas.fuchs@infineon.com \
--cc=James.Bottomley@HansenPartnership.com \
--cc=christian.plappert@sit.fraunhofer.de \
--cc=juergen_repp@web.de \
--cc=linux-integrity@vger.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