All of lore.kernel.org
 help / color / mirror / Atom feed
From: <Alexander.Steffen@infineon.com>
To: <kgold@linux.vnet.ibm.com>
Cc: <linux-security-module@vger.kernel.org>,
	<tpmdd-devel@lists.sourceforge.net>,
	<linux-kernel@vger.kernel.org>
Subject: RE: [tpmdd-devel] [PATCH v3 2/7] tpm: validate TPM 2.0 commands
Date: Tue, 21 Mar 2017 15:44:17 +0000	[thread overview]
Message-ID: <b480890a6abe4f9092a547c0f2b7ce17@MUCSE603.infineon.com> (raw)
In-Reply-To: <a518f288-f084-2d11-161a-79ff884b936d@linux.vnet.ibm.com>

> > There are a few special cases that need some thought though. For
> > example, it is possible to use an upgrade to switch the TPM family
> > from 1.2 to 2.0 (or vice versa). In this case it seems useful to let
> > the kernel reinitialize the TPM driver, so it uses the correct
> > timeouts for communication, activates the correct features (resource
> > manager or not?), etc., without needing to reboot the system.
> 
> In practice, would a TPM upgrade from TPM 1.2 to TPM 2.0 even occur
> without a reboot?  Is it an important use case?
> 
> 1 - It would leave the SHA-256 PCRs in the reset state.
> 
> 2 - It's possible that this upgrade would also require a BIOS upgrade.

For a traditional PC and when your goal is platform integrity, a reboot is probably the way to go. But in an embedded environment where there is no BIOS or if you use the TPM more like a smartcard just to store some keys (or generate random numbers), a reboot is unnecessary and it is more comfortable to avoid it.

We probably should inform the kernel before the upgrade anyway, so that it can shut down the TPM gracefully (and maybe switch to the upgrade mode, as Jason suggested). With that infrastructure in place, it does not seem like a lot of effort to also let it switch the TPM back to normal operation mode once the upgrade is complete.

Alexander

WARNING: multiple messages have this Message-ID (diff)
From: Alexander.Steffen@infineon.com (Alexander.Steffen at infineon.com)
To: linux-security-module@vger.kernel.org
Subject: [tpmdd-devel] [PATCH v3 2/7] tpm: validate TPM 2.0 commands
Date: Tue, 21 Mar 2017 15:44:17 +0000	[thread overview]
Message-ID: <b480890a6abe4f9092a547c0f2b7ce17@MUCSE603.infineon.com> (raw)
In-Reply-To: <a518f288-f084-2d11-161a-79ff884b936d@linux.vnet.ibm.com>

> > There are a few special cases that need some thought though. For
> > example, it is possible to use an upgrade to switch the TPM family
> > from 1.2 to 2.0 (or vice versa). In this case it seems useful to let
> > the kernel reinitialize the TPM driver, so it uses the correct
> > timeouts for communication, activates the correct features (resource
> > manager or not?), etc., without needing to reboot the system.
> 
> In practice, would a TPM upgrade from TPM 1.2 to TPM 2.0 even occur
> without a reboot?  Is it an important use case?
> 
> 1 - It would leave the SHA-256 PCRs in the reset state.
> 
> 2 - It's possible that this upgrade would also require a BIOS upgrade.

For a traditional PC and when your goal is platform integrity, a reboot is probably the way to go. But in an embedded environment where there is no BIOS or if you use the TPM more like a smartcard just to store some keys (or generate random numbers), a reboot is unnecessary and it is more comfortable to avoid it.

We probably should inform the kernel before the upgrade anyway, so that it can shut down the TPM gracefully (and maybe switch to the upgrade mode, as Jason suggested). With that infrastructure in place, it does not seem like a lot of effort to also let it switch the TPM back to normal operation mode once the upgrade is complete.

Alexander
????{.n?+???????+%???????\x17??w??{.n?+????{??????????v?^?)????w*\x1fjg???\x1e???????j??\a??G??????\f???j:+v???w?j?m?????\x1e??\x1e?w?????f???h?????????

WARNING: multiple messages have this Message-ID (diff)
From: <Alexander.Steffen-d0qZbvYSIPpWk0Htik3J/w@public.gmane.org>
To: kgold-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org
Cc: linux-security-module-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	tpmdd-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [PATCH v3 2/7] tpm: validate TPM 2.0 commands
Date: Tue, 21 Mar 2017 15:44:17 +0000	[thread overview]
Message-ID: <b480890a6abe4f9092a547c0f2b7ce17@MUCSE603.infineon.com> (raw)
In-Reply-To: <a518f288-f084-2d11-161a-79ff884b936d-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>

> > There are a few special cases that need some thought though. For
> > example, it is possible to use an upgrade to switch the TPM family
> > from 1.2 to 2.0 (or vice versa). In this case it seems useful to let
> > the kernel reinitialize the TPM driver, so it uses the correct
> > timeouts for communication, activates the correct features (resource
> > manager or not?), etc., without needing to reboot the system.
> 
> In practice, would a TPM upgrade from TPM 1.2 to TPM 2.0 even occur
> without a reboot?  Is it an important use case?
> 
> 1 - It would leave the SHA-256 PCRs in the reset state.
> 
> 2 - It's possible that this upgrade would also require a BIOS upgrade.

For a traditional PC and when your goal is platform integrity, a reboot is probably the way to go. But in an embedded environment where there is no BIOS or if you use the TPM more like a smartcard just to store some keys (or generate random numbers), a reboot is unnecessary and it is more comfortable to avoid it.

We probably should inform the kernel before the upgrade anyway, so that it can shut down the TPM gracefully (and maybe switch to the upgrade mode, as Jason suggested). With that infrastructure in place, it does not seem like a lot of effort to also let it switch the TPM back to normal operation mode once the upgrade is complete.

Alexander
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot

  reply	other threads:[~2017-03-21 15:52 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-03 15:19 [PATCH v3 0/7] in-kernel resource manager Jarkko Sakkinen
2017-03-03 15:19 ` Jarkko Sakkinen
2017-03-03 15:19 ` [PATCH v3 1/7] tpm: move length validation to tpm_transmit() Jarkko Sakkinen
2017-03-03 15:19   ` Jarkko Sakkinen
2017-03-03 15:19 ` [PATCH v3 2/7] tpm: validate TPM 2.0 commands Jarkko Sakkinen
2017-03-03 15:19   ` Jarkko Sakkinen
2017-03-17 15:40   ` [tpmdd-devel] " Alexander.Steffen
2017-03-17 15:40     ` Alexander.Steffen-d0qZbvYSIPpWk0Htik3J/w
2017-03-17 15:40     ` [tpmdd-devel] " Alexander.Steffen at infineon.com
2017-03-17 16:16     ` Jason Gunthorpe
2017-03-17 16:16       ` Jason Gunthorpe
2017-03-17 16:35       ` Peter.Huewe
2017-03-17 16:35         ` Peter.Huewe-d0qZbvYSIPpWk0Htik3J/w
2017-03-17 16:35         ` [tpmdd-devel] " Peter.Huewe at infineon.com
2017-03-20  9:54         ` Alexander.Steffen
2017-03-20  9:54           ` Alexander.Steffen
2017-03-20  9:54           ` Alexander.Steffen at infineon.com
2017-03-20 17:23           ` Jason Gunthorpe
2017-03-20 17:23             ` Jason Gunthorpe
2017-03-20 17:23             ` [tpmdd-devel] " Jason Gunthorpe
2017-03-20 19:42           ` Ken Goldman
2017-03-20 19:42             ` Ken Goldman
2017-03-20 19:42             ` [tpmdd-devel] " Ken Goldman
2017-03-21 15:44             ` Alexander.Steffen [this message]
2017-03-21 15:44               ` Alexander.Steffen-d0qZbvYSIPpWk0Htik3J/w
2017-03-21 15:44               ` [tpmdd-devel] " Alexander.Steffen at infineon.com
2017-03-17 20:42     ` Jarkko Sakkinen
2017-03-17 20:42       ` Jarkko Sakkinen
2017-03-17 20:42       ` [tpmdd-devel] " Jarkko Sakkinen
2017-03-20  9:56       ` Alexander.Steffen
2017-03-20  9:56         ` Alexander.Steffen-d0qZbvYSIPpWk0Htik3J/w
2017-03-20  9:56         ` [tpmdd-devel] " Alexander.Steffen at infineon.com
2017-03-27  5:25         ` Jarkko Sakkinen
2017-03-27  5:25           ` Jarkko Sakkinen
2017-03-27  5:25           ` [tpmdd-devel] " Jarkko Sakkinen
2017-03-03 15:19 ` [PATCH v3 3/7] tpm: export tpm2_flush_context_cmd Jarkko Sakkinen
2017-03-03 15:19   ` Jarkko Sakkinen
2017-03-03 15:19 ` [PATCH v3 4/7] tpm: infrastructure for TPM spaces Jarkko Sakkinen
2017-03-03 15:19   ` Jarkko Sakkinen
2017-03-17 15:41   ` [tpmdd-devel] " Alexander.Steffen
2017-03-17 15:41     ` Alexander.Steffen-d0qZbvYSIPpWk0Htik3J/w
2017-03-17 15:41     ` [tpmdd-devel] " Alexander.Steffen at infineon.com
2017-03-17 20:44     ` Jarkko Sakkinen
2017-03-17 20:44       ` Jarkko Sakkinen
2017-03-17 20:44       ` [tpmdd-devel] " Jarkko Sakkinen
2017-03-03 15:19 ` [PATCH v3 5/7] tpm: split out tpm-dev.c into tpm-dev.c and tpm-common-dev.c Jarkko Sakkinen
2017-03-03 15:19   ` Jarkko Sakkinen
2017-03-03 15:19 ` [PATCH v3 6/7] tpm: expose spaces via a device link /dev/tpmrm<n> Jarkko Sakkinen
2017-03-03 15:19   ` Jarkko Sakkinen
2017-03-03 15:19 ` [PATCH v3 7/7] tpm2: add session handle context saving and restoring to the space code Jarkko Sakkinen
2017-03-03 15:19   ` Jarkko Sakkinen
2017-03-06 21:07 ` [PATCH v3 0/7] in-kernel resource manager Jarkko Sakkinen
2017-03-06 21:07   ` Jarkko Sakkinen
2017-03-11  8:55 ` Jarkko Sakkinen
2017-03-11  8:55   ` 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=b480890a6abe4f9092a547c0f2b7ce17@MUCSE603.infineon.com \
    --to=alexander.steffen@infineon.com \
    --cc=kgold@linux.vnet.ibm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-security-module@vger.kernel.org \
    --cc=tpmdd-devel@lists.sourceforge.net \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.