From: Lukas Wunner <lukas@wunner.de>
To: Francesco Dolcini <francesco@dolcini.it>
Cc: Lino Sanfilippo <l.sanfilippo@kunbus.com>,
Philipp Zabel <p.zabel@pengutronix.de>,
Rob Herring <robh+dt@kernel.org>,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
Conor Dooley <conor+dt@kernel.org>,
linux-integrity@vger.kernel.org, devicetree@vger.kernel.org
Subject: Re: [PATCH 2/2] reset: Add Infineon SLB9670 TPM reset driver
Date: Thu, 23 Nov 2023 09:59:43 +0100 [thread overview]
Message-ID: <20231123085943.GA15463@wunner.de> (raw)
In-Reply-To: <ZV4bBowT9ij+BQup@francesco-nb.int.toradex.com>
On Wed, Nov 22, 2023 at 04:15:18PM +0100, Francesco Dolcini wrote:
> On Wed, Nov 22, 2023 at 12:29:49PM +0100, Lukas Wunner wrote:
> > On Wed, Nov 22, 2023 at 12:33:58AM +0100, Francesco Dolcini wrote:
> > > Not to mention that I was able to see the driver probe succeed in a
> > > similar setup to the one you are describing in the commit message
> > > (different board, arm64, but nothing done by the platform firmware).
> >
> > Hm, is the RST# pin even connected on that board?
>
> Yes, it's connected and it is asserted/de-asserted (aka toggled) during
> startup from the HW reset circuit. However this is not implementing the
> reset sequence you are implementing here.
Section 4.5 of the datasheet seems to indicate that unless the sequence
in Figure 3 is observed, the TPM may enter a defense mode against
dictionary attacks "from which a recovery is very complex or even not
possible."
Simply toggling the RST# pin might therefore not be sufficient to ensure
the TPM is operable.
Here's the relevant section in the datasheet:
"The OPTIGA TPM SLB 9670 features a sophisticated protection mechanism
against dictionary attacks on TPM-based authorization data. Basically,
the device counts the number of failed authorization attempts in a
counter which is located in the non-volatile memory. An attacker who
has physical access to the device could try to cirumvent that mechanism
by resetting the device after the authorization attempt but before the
updated failure counter has been written into the NVM.
Certain countermeasures have been added to the OPTIGA TPM SLB 9670.
In certain time windows during power-on or warm boot of the device,
such reset events might influence the dictionary attack counters and
trigger other security mechanisms as well. In worst case, this might
trigger special security defense modes from which a recovery is very
complex or even not possible.
To avoid that the OPTIGA TPM SLB 9670 reaches such a security defense
state, the RST# signal must not be asserted in certain time windows.
After the deassertion of the RST# signal, the system should wait for
a minimum time of tRSTIN before asserting RST# again (see Figure 3
and Table 11).
TPM commands should only be started after tRSTIN has expired (see
Figure 3 again). If a TPM command is running, RST# should not be
asserted; otherwise, this might also trigger some security functions.
When the TPM shall be reset, the command TPM2_Shutdown should be
issued before the assertion of the RST# signal.
https://www.infineon.com/dgdl/?fileId=5546d4626fc1ce0b016fc78270350cd6
Thanks,
Lukas
next prev parent reply other threads:[~2023-11-23 8:59 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-09-26 19:09 [PATCH 1/2] dt-bindings: reset: Add Infineon SLB9670 TPM reset driver Lukas Wunner
2023-09-26 19:09 ` [PATCH 2/2] " Lukas Wunner
2023-11-21 23:33 ` Francesco Dolcini
2023-11-22 7:36 ` Francesco Dolcini
2023-11-22 11:29 ` Lukas Wunner
2023-11-22 15:15 ` Francesco Dolcini
2023-11-23 8:59 ` Lukas Wunner [this message]
2023-12-18 17:34 ` Francesco Dolcini
2023-12-18 17:51 ` Lukas Wunner
2023-12-21 10:09 ` Alexander Steffen
2023-09-26 20:37 ` [PATCH 1/2] dt-bindings: " Rob Herring
2023-09-27 6:31 ` Lukas Wunner
2023-09-27 11:53 ` Rob Herring
2023-09-27 7:48 ` Krzysztof Kozlowski
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=20231123085943.GA15463@wunner.de \
--to=lukas@wunner.de \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=francesco@dolcini.it \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=l.sanfilippo@kunbus.com \
--cc=linux-integrity@vger.kernel.org \
--cc=p.zabel@pengutronix.de \
--cc=robh+dt@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;
as well as URLs for NNTP newsgroup(s).