Subject: [Rats] Reducing YANG output objects with the tpm12-challenge-response-attestation RPC

From: "Eric Voit (evoit)" <[email-masked]>
Date: Wed, 7 Oct 2020 20:36:26 +0000

I am hoping we can simplify what is in Charra's TPM1.2 quote into something
similar to what is now in the TPM2.0 quote.    Does anyone know who wrote
the original TPM1.2 RPC for the Charra YANG module?   If you did, can you
chime in on the questions below?

More specifics on the request:

Right now in the tpm20-challenge-response-attestation RPC output are TPM
protected objects enclosed within TPMS_QUOTE_INFO.  

Definition of TPMS_QUOTE_INFO Structure

--------------------------------------------------------- 

typedef struct { 

    TPML_PCR_SELECTION pcrSelect; 

    TPM2B_DIGEST pcrDigest; } 

TPMS_QUOTE_INFO;

See Table 115 - of 

https://trustedcomputinggroup.org/wp-content/uploads/TCG_TSS_Overview_Common
_Structures_v0.9_r03_published.pdf

The enclosed TPM2B_DIGEST is calculated across multiple PCRs.  Having to
verify across multiple PCRs does not necessarily make it easy for a Verifier
to appraise just the minimum set of PCR information which has changed since
the last received TPM2B_DIGEST.  Put another way, why should a Verifier
reconstruct the proper value of all PCR Quotes when only a single PCR has
changed?  

To help this happen, if the Attester does know specific PCR values, the
Attester can provide these individual values via "unsigned-pcr-values".   By
comparing this information to the what has previously been validated, it is
possible for a Verifier to confirm the Attester's signature while
eliminating significant processing.  Additionally, processing where KGVs are
exposed can be safely eliminated.

This is a long way of asserting that there is not redundant TPM information
carried in tpm20-challenge-response-attestation RPC response.   This is a
good thing.

We should provide the same level of scrutiny to the TPM1.2 objects.  We
should eliminate redundant objects from the
tpm12-challenge-response-attestation RPC.

If we were to eliminate redundant objects from the TPM1.2 Quote Response, I
am know that we can eliminate the following objects:

*	leaf major
*	leaf minor
*	leaf rev-Minor
*	leaf rev-Minor

I also think we can eliminate the following:

*	fixed  -- at this is a response to the RPC question
*	locality-at-release

Looking beyond these obvious objects, I am wondering if there is anyone
needing to differentiate between tpm12-quote1 and tpm12-quote2.   As TPM1.2
is going to be phased out as equipment gets changed, it seems to make little
sense to support both variants if both are not being actively championed by
someone.  In fact, I suspect that the YANG model can be updated so that it
need not care about quote1 and quote2.   Can whomever included both quote1
and quote2 articulate why the must be a market need to support both going
forward?   

If we can eliminate either quote1 or quote2 specifics, I suspect we could
use the exact same structure as part of the RPC response as was used for
TPM2.   It would look something like:

  + tpm12-challenge-response-attestation

    ...

         +--ro output

            +--ro tpm12-attestation-response* []

               +--ro certificate-name?      certificate-name-ref

               +--ro TPMS_QUOTE_INFO        binary

               +--ro quote-signature?       binary

               +--ro up-time?               uint32

               +--ro node-id?               string

               +--ro node-physical-index?   int32 {ietfhw:entity-mib}?

               +--ro unsigned-pcr-values* []

                  +--ro TPM20-hash-algo?   identityref

                  +--ro pcr-values* [pcr-index]

                     +--ro pcr-index    pcr

                     +--ro pcr-value?   binary

I would love to get people's thoughts on what is above, and what might be
mandatory to support in tpm12-challenge-response-attestation RPC output.

Thanks,

Eric

Eric Voit 

Principal Engineer

.:|:.:|:. Cisco Systems, Inc.

---

From: Guy Fedorkow <[email-masked]>
Date: Fri, 9 Oct 2020 12:34:27 +0000

Hi Eric,
  We have a lot of TPM1.2's out there - I'd be reluctant to obsolete them to save a paragraph in the YANG model...
As to the structure of the model; Tom Laffey is probably the world's expert (sorry Tom), but I'll find an internal reviewer for an informed opinion.
Thanks
/guy

Juniper Business Use Only
From: RATS <[email-masked]> On Behalf Of Eric Voit (evoit)
Sent: Wednesday, October 7, 2020 4:36 PM
To: Panwei (William) <[email-masked]>; Birkholz, Henk <[email-masked]>; Eckel, Michael <[email-masked]>; Guy Fedorkow <[email-masked]>; Laffey, Tom (HPE Aruba) <[email-masked]>; [email-masked]
Cc: [email-masked]; [email-masked]
Subject: [Rats] Reducing YANG output objects with the tpm12-challenge-response-attestation RPC

[External Email. Be cautious of content]

I am hoping we can simplify what is in Charra's TPM1.2 quote into something similar to what is now in the TPM2.0 quote.    Does anyone know who wrote the original TPM1.2 RPC for the Charra YANG module?   If you did, can you chime in on the questions below?

More specifics on the request:
Right now in the tpm20-challenge-response-attestation RPC output are TPM protected objects enclosed within TPMS_QUOTE_INFO.

See Table 115 - of
https://trustedcomputinggroup.org/wp-content/uploads/TCG_TSS_Overview_Common_Structures_v0.9_r03_published.pdf

The enclosed TPM2B_DIGEST is calculated across multiple PCRs.  Having to verify across multiple PCRs does not necessarily make it easy for a Verifier to appraise just the minimum set of PCR information which has changed since the last received TPM2B_DIGEST.  Put another way, why should a Verifier reconstruct the proper value of all PCR Quotes when only a single PCR has changed?

To help this happen, if the Attester does know specific PCR values, the Attester can provide these individual values via "unsigned-pcr-values".   By comparing this information to the what has previously been validated, it is possible for a Verifier to confirm the Attester's signature while eliminating significant processing.  Additionally, processing where KGVs are exposed can be safely eliminated.

This is a long way of asserting that there is not redundant TPM information carried in tpm20-challenge-response-attestation RPC response.   This is a good thing.

We should provide the same level of scrutiny to the TPM1.2 objects.  We should eliminate redundant objects from the tpm12-challenge-response-attestation RPC.

If we were to eliminate redundant objects from the TPM1.2 Quote Response, I am know that we can eliminate the following objects:

  *   leaf major
  *   leaf minor
  *   leaf rev-Minor
  *   leaf rev-Minor

Looking beyond these obvious objects, I am wondering if there is anyone needing to differentiate between tpm12-quote1 and tpm12-quote2.   As TPM1.2 is going to be phased out as equipment gets changed, it seems to make little sense to support both variants if both are not being actively championed by someone.  In fact, I suspect that the YANG model can be updated so that it need not care about quote1 and quote2.   Can whomever included both quote1 and quote2 articulate why the must be a market need to support both going forward?

If we can eliminate either quote1 or quote2 specifics, I suspect we could use the exact same structure as part of the RPC response as was used for TPM2.   It would look something like:

I would love to get people's thoughts on what is above, and what might be mandatory to support in tpm12-challenge-response-attestation RPC output.

Thanks,
Eric

Eric Voit
Principal Engineer

---

From: "Eric Voit (evoit)" <[email-masked]>
Date: Fri, 9 Oct 2020 12:39:52 +0000

I am very happy to keep the TPM1.2s.   I am just trying to make sure our
design drives minimized operations and development efforts.

Eric

From: Guy Fedorkow, October 9, 2020 8:34 AM

Hi Eric,

  We have a lot of TPM1.2's out there - I'd be reluctant to obsolete them to
save a paragraph in the YANG model.

As to the structure of the model; Tom Laffey is probably the world's expert
(sorry Tom), but I'll find an internal reviewer for an informed opinion.

Thanks

/guy

From: RATS <[email-masked] <mailto:[email-masked]> > On Behalf
Of Eric Voit (evoit)
Sent: Wednesday, October 7, 2020 4:36 PM
To: Panwei (William) <[email-masked]
<mailto:[email-masked]> >; Birkholz, Henk
<[email-masked] <mailto:[email-masked]> >;
Eckel, Michael <[email-masked]
<mailto:[email-masked]> >; Guy Fedorkow
<[email-masked] <mailto:[email-masked]> >; Laffey, Tom (HPE
Aruba) <[email-masked] <mailto:[email-masked]> >;
[email-masked] <mailto:[email-masked]> 
Cc: [email-masked] <mailto:[email-masked]> ;
[email-masked]
<mailto:[email-masked]> 
Subject: [Rats] Reducing YANG output objects with the
tpm12-challenge-response-attestation RPC

typedef struct { 

TPMS_QUOTE_INFO;

See Table 115 - of 

*	leaf major
*	leaf minor
*	leaf rev-Minor
*	leaf rev-Minor

    ...

         +--ro output

               +--ro up-time?               uint32

               +--ro node-id?               string

                     +--ro pcr-index    pcr

                     +--ro pcr-value?   binary

Thanks,

Eric

Eric Voit 

Principal Engineer