Linux cryptographic layer development
 help / color / mirror / Atom feed
From: David Safford <safford@watson.ibm.com>
To: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
Cc: Mimi Zohar <zohar@linux.vnet.ibm.com>,
	linux-kernel@vger.kernel.org,
	linux-security-module@vger.kernel.org, keyrings@linux-nfs.org,
	linux-crypto@vger.kernel.org, David Howells <dhowells@redhat.com>,
	James Morris <jmorris@namei.org>,
	Rajiv Andrade <srajiv@linux.vnet.ibm.com>,
	Mimi Zohar <zohar@us.ibm.com>
Subject: Re: [PATCH v1.2 3/4] keys: add new trusted key-type
Date: Tue, 09 Nov 2010 10:17:18 -0500	[thread overview]
Message-ID: <1289315838.16976.38.camel@localhost.localdomain> (raw)
In-Reply-To: <20101109064016.GF16307@obsidianresearch.com>

On Mon, 2010-11-08 at 23:40 -0700, Jason Gunthorpe wrote:
> It just seems like really odd functionality. I'm not familiar with the
> KH api, but is there any chance now (or in future) that non-root could
> access this function?

good point - we really should explicitly require CAP_SYS_ADMIN for
pcrlock to be safe. Willdo.

> A few random observations
>  - I'm sure someone will say kdoc format should be used for those
>    function comments?

that's not required for static functions.

>  - Using a random value to extend the PCR effectively wastes it
>    and creates a tiny risk the random extend could result in 0.

2^-160? And using a fixed value, or one under user control
would be worse.

>  - It would be nice to formally state the datablob is a
>    TPM_STORED_DATA with no embellishments. The expectation is
>    userspace can validate the sealInfo prior to loading the
>    key.

It's not obvious from the code? :-) Will clarify in comments.

(It also needs to be documented somewhere in some userspace 
documentation. We will be posting trusted key userspace utilities 
(such as for generating/inspecting pcrinfo blobs and fields in 
sealed blobs), and will certainly document it there too. Perhaps 
the trusted keys information should be added to keyctl or a new
man page too?)

>  - I'm unclear on the merits of using raw random data from the TPM.
>    I'd feel much better if this was mixed with random
>    from the kernel pool too. Ideally using a FIPS DBRNG transform..

The TPM's have a FIPS certified random number generator, which must
pass a power-on self test before it is used. I have done extensive
DieHard tests on various TPM chips, and they have all passed, showing
in my tests unmeasurable correlation. Particularly at boot time, I
trust the TPM random numbers more than the kernel pool, which has
not yet been reseeded or had time to accumulate much entropy.

>  - Shouldn't all the TPM RPC functions live together in the TPM code
>    someplace? You've done a good job of adding many more general
>    primitives to build RPC's with.
>    FWIW, last time I worked with TPMs I built a RPC code generator
>    for this stuff, which if any more are added would be a really smart
>    direction to head in.

The seal and unseal are now pretty general, and could be moved to 
the TPM code, but unless there are other kernel users of the functions,
they might as well stay static and with the trusted key code, since
that's the only place they are being used. Easy enough to move and
make public later if someone wants them...

dave


  reply	other threads:[~2010-11-09 15:17 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-11-08 15:30 [PATCH v1.2 0/4] keys: trusted and encrypted keys Mimi Zohar
2010-11-08 15:30 ` [PATCH v1.2 1/4] lib: hex2bin converts ascii hexadecimal string to binary Mimi Zohar
2010-11-08 15:30 ` [PATCH v1.2 2/4] key: add tpm_send command Mimi Zohar
2010-11-08 15:30 ` [PATCH v1.2 3/4] keys: add new trusted key-type Mimi Zohar
2010-11-08 17:09   ` Jason Gunthorpe
2010-11-08 18:18     ` David Safford
2010-11-09  6:40       ` Jason Gunthorpe
2010-11-09 15:17         ` David Safford [this message]
2010-11-09 16:02           ` Roberto Sassu
2010-11-09 16:25             ` David Safford
2010-11-09 16:46               ` Roberto Sassu
2010-11-08 15:30 ` [PATCH v1.2 4/4] keys: add new key-type encrypted Mimi Zohar

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=1289315838.16976.38.camel@localhost.localdomain \
    --to=safford@watson.ibm.com \
    --cc=dhowells@redhat.com \
    --cc=jgunthorpe@obsidianresearch.com \
    --cc=jmorris@namei.org \
    --cc=keyrings@linux-nfs.org \
    --cc=linux-crypto@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-security-module@vger.kernel.org \
    --cc=srajiv@linux.vnet.ibm.com \
    --cc=zohar@linux.vnet.ibm.com \
    --cc=zohar@us.ibm.com \
    /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