From: James Bottomley <James.Bottomley@HansenPartnership.com>
To: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Cc: linux-integrity@vger.kernel.org, Mimi Zohar <zohar@linux.ibm.com>,
David Woodhouse <dwmw2@infradead.org>,
keyrings@vger.kernel.org, David Howells <dhowells@redhat.com>
Subject: Re: [PATCH v10 7/8] security: keys: trusted: add ability to specify arbitrary policy
Date: Thu, 18 Jun 2020 19:45:14 +0000 [thread overview]
Message-ID: <1592509514.15159.18.camel@HansenPartnership.com> (raw)
In-Reply-To: <20200618071200.GB6560@linux.intel.com>
On Thu, 2020-06-18 at 10:12 +0300, Jarkko Sakkinen wrote:
> On Wed, Jun 17, 2020 at 05:27:43PM -0700, James Bottomley wrote:
> > On Thu, 2020-06-18 at 02:42 +0300, Jarkko Sakkinen wrote:
> > > On Tue, Jun 16, 2020 at 09:02:28AM -0700, James Bottomley wrote:
> > > > This patch adds a policy= argument to key creation. The policy
> > > > is
> > > > the standard tss policymaker format and each separate policy
> > > > line
> > > > must have a newline after it.
> > >
> > > Never heard of policymaker before and did not find TCG spec for
> > > it.
> >
> > It's not part of the spec. Both the IBM and Intel TSSs define a
> > policymaker tool to help you build policy hashes. The format is
> > simply
> > a set of numbers that if hashed a line at a time produce the policy
> > hash.
>
> OK, so they both use this 'policymaker' format? Where is it
> documented?
I don't think it is except in the source code of the tools. It's
basically a sequence of TPM2_PolicyXX statements laid out in binary end
to end one per line as the TPM2 command value says they are hashed. I
can just say that if you prefer. The example given is
TPM2_PolicyPCR(policydigest, selection)
TPM2_PolicyAuthValue()
So if you look in the manual, TPM2_PolicyPCR says the hash is
calculated as
H_policyAlg (policyDigest_old || TPM_CC_PolicyPCR || pcrs || digestTPM)
So the policymaker statement is
TPM_CC_PolicyPCR || pcrs || digestTPM
Which in hex is
0000017F 00000001000B 03000001303095B49BE85E381E5B20E557E46363EF55B0F43B132C2D8E3DE9AC436656F2
And TPM2_PolicyAuthValue simply says
H_policyAlg (policyDigest_old || TPM_CC_PolicyAuthValue )
So the policymaker statement is
TPM_CC_PolicyAuthValue
or in hex
0000016b
James
WARNING: multiple messages have this Message-ID (diff)
From: James Bottomley <James.Bottomley@HansenPartnership.com>
To: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Cc: linux-integrity@vger.kernel.org, Mimi Zohar <zohar@linux.ibm.com>,
David Woodhouse <dwmw2@infradead.org>,
keyrings@vger.kernel.org, David Howells <dhowells@redhat.com>
Subject: Re: [PATCH v10 7/8] security: keys: trusted: add ability to specify arbitrary policy
Date: Thu, 18 Jun 2020 12:45:14 -0700 [thread overview]
Message-ID: <1592509514.15159.18.camel@HansenPartnership.com> (raw)
In-Reply-To: <20200618071200.GB6560@linux.intel.com>
On Thu, 2020-06-18 at 10:12 +0300, Jarkko Sakkinen wrote:
> On Wed, Jun 17, 2020 at 05:27:43PM -0700, James Bottomley wrote:
> > On Thu, 2020-06-18 at 02:42 +0300, Jarkko Sakkinen wrote:
> > > On Tue, Jun 16, 2020 at 09:02:28AM -0700, James Bottomley wrote:
> > > > This patch adds a policy= argument to key creation. The policy
> > > > is
> > > > the standard tss policymaker format and each separate policy
> > > > line
> > > > must have a newline after it.
> > >
> > > Never heard of policymaker before and did not find TCG spec for
> > > it.
> >
> > It's not part of the spec. Both the IBM and Intel TSSs define a
> > policymaker tool to help you build policy hashes. The format is
> > simply
> > a set of numbers that if hashed a line at a time produce the policy
> > hash.
>
> OK, so they both use this 'policymaker' format? Where is it
> documented?
I don't think it is except in the source code of the tools. It's
basically a sequence of TPM2_PolicyXX statements laid out in binary end
to end one per line as the TPM2 command value says they are hashed. I
can just say that if you prefer. The example given is
TPM2_PolicyPCR(policydigest, selection)
TPM2_PolicyAuthValue()
So if you look in the manual, TPM2_PolicyPCR says the hash is
calculated as
H_policyAlg (policyDigest_old || TPM_CC_PolicyPCR || pcrs || digestTPM)
So the policymaker statement is
TPM_CC_PolicyPCR || pcrs || digestTPM
Which in hex is
0000017F 00000001000B 03000001303095B49BE85E381E5B20E557E46363EF55B0F43B132C2D8E3DE9AC436656F2
And TPM2_PolicyAuthValue simply says
H_policyAlg (policyDigest_old || TPM_CC_PolicyAuthValue )
So the policymaker statement is
TPM_CC_PolicyAuthValue
or in hex
0000016b
James
next prev parent reply other threads:[~2020-06-18 19:45 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-06-16 15:49 [PATCH v10 0/8] TPM 2.0 trusted keys with attached policy James Bottomley
2020-06-16 15:49 ` James Bottomley
2020-06-16 16:02 ` James Bottomley
2020-06-16 16:02 ` James Bottomley
2020-06-16 16:02 ` [PATCH v10 1/8] lib: add ASN.1 encoder James Bottomley
2020-06-16 16:02 ` James Bottomley
2020-06-16 16:02 ` [PATCH v10 2/8] oid_registry: Add TCG defined OIDS for TPM keys James Bottomley
2020-06-16 16:02 ` James Bottomley
2020-06-17 21:42 ` Jerry Snitselaar
2020-06-17 21:42 ` Jerry Snitselaar
2020-06-18 0:25 ` James Bottomley
2020-06-18 0:25 ` James Bottomley
2020-06-18 7:14 ` Jarkko Sakkinen
2020-06-18 7:14 ` Jarkko Sakkinen
2020-06-18 19:22 ` James Bottomley
2020-06-18 19:22 ` James Bottomley
2020-06-22 22:04 ` Jarkko Sakkinen
2020-06-22 22:04 ` Jarkko Sakkinen
2020-06-16 16:02 ` [PATCH v10 3/8] security: keys: trusted: fix TPM2 authorizations James Bottomley
2020-06-16 16:02 ` James Bottomley
2020-06-16 16:02 ` [PATCH v10 4/8] security: keys: trusted: use ASN.1 TPM2 key format for the blobs James Bottomley
2020-06-16 16:02 ` James Bottomley
2020-06-16 16:02 ` [PATCH v10 5/8] security: keys: trusted: Make sealed key properly interoperable James Bottomley
2020-06-16 16:02 ` James Bottomley
2020-06-17 23:46 ` Jarkko Sakkinen
2020-06-17 23:46 ` Jarkko Sakkinen
2020-06-16 16:02 ` [PATCH v10 6/8] security: keys: trusted: add PCR policy to TPM2 keys James Bottomley
2020-06-16 16:02 ` James Bottomley
2020-06-17 23:44 ` Jarkko Sakkinen
2020-06-17 23:44 ` Jarkko Sakkinen
2020-06-16 16:02 ` [PATCH v10 7/8] security: keys: trusted: add ability to specify arbitrary policy James Bottomley
2020-06-16 16:02 ` James Bottomley
2020-06-17 23:42 ` Jarkko Sakkinen
2020-06-17 23:42 ` Jarkko Sakkinen
2020-06-18 0:27 ` James Bottomley
2020-06-18 0:27 ` James Bottomley
2020-06-18 7:12 ` Jarkko Sakkinen
2020-06-18 7:12 ` Jarkko Sakkinen
2020-06-18 19:45 ` James Bottomley [this message]
2020-06-18 19:45 ` James Bottomley
2020-06-23 0:46 ` Jarkko Sakkinen
2020-06-23 0:46 ` Jarkko Sakkinen
2020-06-16 16:02 ` [PATCH v10 8/8] security: keys: trusted: implement counter/timer policy James Bottomley
2020-06-16 16:02 ` James Bottomley
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=1592509514.15159.18.camel@HansenPartnership.com \
--to=james.bottomley@hansenpartnership.com \
--cc=dhowells@redhat.com \
--cc=dwmw2@infradead.org \
--cc=jarkko.sakkinen@linux.intel.com \
--cc=keyrings@vger.kernel.org \
--cc=linux-integrity@vger.kernel.org \
--cc=zohar@linux.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 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.