From: James Bottomley <James.Bottomley-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk@public.gmane.org>
To: Nayna <nayna-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>,
Jarkko Sakkinen
<jarkko.sakkinen-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>,
tpmdd-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
Cc: dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org,
linux-security-module-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
open list <linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Subject: Re: [PATCH v2 6/7] tpm: expose spaces via a device link /dev/tpms<n>
Date: Mon, 27 Feb 2017 06:55:54 -0800 [thread overview]
Message-ID: <1488207354.3004.4.camel@HansenPartnership.com> (raw)
In-Reply-To: <58B41184.7020200-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
On Mon, 2017-02-27 at 17:16 +0530, Nayna wrote:
>
> On 02/24/2017 06:23 PM, James Bottomley wrote:
> > On Fri, 2017-02-24 at 12:29 +0530, Nayna wrote:
> > >
> > > On 02/17/2017 12:55 AM, Jarkko Sakkinen wrote:
> > > > From: James Bottomley <James.Bottomley-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk@public.gmane.org>
> > > >
> > > > Currently the tpm spaces are not exposed to userspace. Make
> > > > this exposure via a separate device, which can now be opened
> > > > multiple times because each read/write transaction goes
> > > > separately via the space.
> > > >
> > > > Concurrency is protected by the chip->tpm_mutex for each
> > > > read/write transaction separately. The TPM is cleared of all
> > > > transient objects by the time the mutex is dropped, so there
> > > > should be no interference between the kernel and userspace.
> > >
> > > To understand, I have two questions:
> > >
> > > 1. How would a userspace application using TPM know whether to
> > > use /dev/tpm0 or /dev/tpms0 ?
> >
> > Likely they can't use /dev/tpm0 becuase it will be root only, but
> > the major indicator will be whether /dev/tpms0 exists or not.
>
> Thanks James !!
> Currently, I see even /dev/tpms0 is also only root accessible. I did
> see the discussion to make it 0666, and I understand adding command
> filtering is part of enabling /dev/tpms0 as all-accessible.
I don't think we'd ever do that from the kernel. Accessibility would
be a userspace policy.
This is what I have on my system to make it accessible:
/etc/udev/rules.d/80-tpm-2.rules:
# tpm 2 devices need to be world readable
SUBSYSTEM=="tpms", ACTION=="add", MODE="0666"
> Sorry, I didn't understand when you said, "major indicator will be
> whether /dev/tpms0" exists or not ? I mean in what case it might not
> exist..
If the kernel is too old or you have a 1.2 TPM.
> >
> > > 2. How would a userspace RM know to build on top of /dev/tpm0 or
> > > /dev/tpms0. And if it is built on top of /dev/tpms0, can there be
> > > issues with one RM on top of other RM.
> >
> > There's a known problem with RMs in that they're not fully
> > stackable, so I suspect the answer is that if tpms0 exists you
> > won't use an RM, but this is currently an area of active research.
> > The other potential problem is that if you build a RM on tpm0 in
> > userspace, it will fight with the kernel when the kernel uses
> > sessions.
>
> Does it imply that there should be restriction to disallow any RM
> specific commands from userspace on /dev/tpm0 ?
The only such command would be session or policy context save. It's
debateable whether we should interfere.
James
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
next prev parent reply other threads:[~2017-02-27 14:55 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-02-16 19:25 [PATCH v2 0/7] in-kernel resource manager Jarkko Sakkinen
2017-02-16 19:25 ` [PATCH v2 6/7] tpm: expose spaces via a device link /dev/tpms<n> Jarkko Sakkinen
2017-02-23 9:09 ` Jarkko Sakkinen
[not found] ` <20170223090917.jq7thil5ggjmagil-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2017-02-24 13:02 ` James Bottomley
2017-02-24 17:39 ` Jarkko Sakkinen
[not found] ` <20170224173922.qwuhfxeitbyct52o-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2017-02-24 18:11 ` Jason Gunthorpe
2017-02-24 20:29 ` James Bottomley
[not found] ` <1487968155.2190.14.camel-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk@public.gmane.org>
2017-02-24 20:52 ` Jason Gunthorpe
2017-02-24 23:01 ` [tpmdd-devel] " James Bottomley
2017-02-24 23:23 ` Jason Gunthorpe
[not found] ` <20170224232327.GA9126-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2017-02-24 23:43 ` James Bottomley
2017-02-25 0:25 ` [tpmdd-devel] " Jason Gunthorpe
[not found] ` <20170225002514.GA10605-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2017-02-25 17:04 ` James Bottomley
[not found] ` <1488042289.2250.22.camel-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk@public.gmane.org>
2017-02-27 17:28 ` Jason Gunthorpe
2017-02-26 11:44 ` Jarkko Sakkinen
2017-02-26 18:30 ` Dr. Greg Wettstein
[not found] ` <20170226183040.GA4272-DHO+NtfOqB5PEDpkEIzg7wC/G2K4zDHf@public.gmane.org>
2017-02-28 17:22 ` Ken Goldman
[not found] ` <20170226114440.5ksg3lx27ylekvbx-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2017-02-27 17:33 ` Jason Gunthorpe
2017-02-24 6:59 ` [tpmdd-devel] " Nayna
2017-02-24 12:53 ` James Bottomley
[not found] ` <1487940829.2249.15.camel-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk@public.gmane.org>
2017-02-27 11:46 ` Nayna
[not found] ` <58B41184.7020200-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2017-02-27 14:55 ` James Bottomley [this message]
[not found] ` <20170216192529.25467-1-jarkko.sakkinen-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2017-02-16 19:25 ` [PATCH v2 1/7] tpm: move length validation to tpm_transmit() Jarkko Sakkinen
2017-02-16 19:25 ` [PATCH v2 2/7] tpm: validate TPM 2.0 commands Jarkko Sakkinen
2017-02-16 19:25 ` [PATCH v2 3/7] tpm: export tpm2_flush_context_cmd Jarkko Sakkinen
2017-02-16 19:25 ` [PATCH v2 4/7] tpm: infrastructure for TPM spaces Jarkko Sakkinen
2017-02-21 18:24 ` [tpmdd-devel] " Nayna
[not found] ` <58AC85F2.5000406-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2017-02-22 17:08 ` Ken Goldman
2017-02-22 21:08 ` Jarkko Sakkinen
2017-02-22 17:39 ` [tpmdd-devel] " James Bottomley
2017-02-22 20:56 ` Ken Goldman
[not found] ` <1487785159.2376.27.camel-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk@public.gmane.org>
2017-03-22 20:09 ` Ken Goldman
2017-03-23 15:56 ` [tpmdd-devel] " Jarkko Sakkinen
2017-02-24 12:53 ` James Bottomley
2017-02-24 17:02 ` Jarkko Sakkinen
2017-02-16 19:25 ` [PATCH v2 5/7] tpm: split out tpm-dev.c into tpm-dev.c and tpm-common-dev.c Jarkko Sakkinen
[not found] ` <20170216192529.25467-6-jarkko.sakkinen-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2017-02-23 9:04 ` Jarkko Sakkinen
2017-02-16 19:25 ` [PATCH v2 7/7] tpm2: add session handle context saving and restoring to the space code Jarkko Sakkinen
2017-02-23 9:04 ` 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=1488207354.3004.4.camel@HansenPartnership.com \
--to=james.bottomley-d9phhud1jfjcxq6kfmz53/egyhegw8jk@public.gmane.org \
--cc=dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=jarkko.sakkinen-VuQAYsv1563Yd54FQh9/CA@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-security-module-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=nayna-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org \
--cc=tpmdd-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.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).