Subject: RE: pkinit: more DH clarity would be good

From: "Liqiang(Larry) Zhu" <[email-masked]>
Date: Wed, 9 Feb 2005 16:15:05 -0800

I propose 3 changes to address your concerns, and Sam's.

       AuthPack ::= SEQUENCE {
          pkAuthenticator         [0] PKAuthenticator,
          clientPublicValue       [1] SubjectPublicKeyInfo OPTIONAL,
                   -- Type SubjectPublicKeyInfo is defined in 
                   -- [RFC3280].
                   -- Specifies Diffie-Hellman domain parameters
                   -- and the client's public key value [RFC3279].
                   -- The pubic key value (the subjectPublicKey field
                   -- of the type SubjectPublicKeyInfo) MUST be encoded
                   -- according to [RFC3279].
                   -- Present only if the client wishes to use the
                   -- Diffie-Hellman key agreement method.
          supportedCMSTypes       [2] SEQUENCE OF AlgorithmIdentifier
                                      OPTIONAL,
                   -- List of CMS encryption types supported by
                   -- client in order of (decreasing) preference.
          clientDHNonce           [3] DHNonce OPTIONAL,
                   -- Present only if the client indicates that it
                   -- wishes to reuse DH keys or to allow the KDC to
                   -- do so (see Section 3.2.3.1).
          ...
       }

   6.  The client's Diffie-Hellman public value (clientPublicValue) is
       included if and only if the client wishes to use the
       Diffie-Hellman key agreement method.  The Diffie-Hellman domain
       parameters for the client's public key are specified in the
       algorithm field of the type SubjectPublicKeyInfo
       [IEEE1363][RFC3279] and the client's Diffie-Hellman public key
       value is mapped to a subjectPublicKey (a BIT STRING) according
       [RFC3279].  When using the Diffie-Hellman key agreement method,
       implementations MUST support Oakley 1024-bit MODP well-known
       group 2 [RFC2412] and SHOULD support Oakley 2048-bit MODP
       well-known group 14 and Oakley 4096-bit MODP well-known group 16
       [RFC3526].

Then

    TD-DH-PARAMETERS ::= SEQUENCE OF AlgorithmIdentifier
                -- Each AlgorithmIdentifier specifies a set of 
                -- Diffie-Hellman domain parameters [IEEE1363].
                -- This list is in decreasing preference order.

This way we can rip EcpkParameters out of the draft.

Comments?

-- Larry

-----Original Message-----
From: [email-masked]
[mailto:[email-masked]] On Behalf Of Chaskiel M
Grundman
Sent: Wednesday, February 09, 2005 2:15 PM
To: [email-masked]
Subject: pkinit: more DH clarity would be good

The text says the following about DH:

   6.  The client's Diffie-Hellman public value (clientPublicValue) is
       included if and only if the client wishes to use the
       Diffie-Hellman key agreement method.  For the Diffie-Hellman key
       agreement method, implementations MUST support Oakley 1024-bit
       MODP well-known group 2 [RFC2412] [.. more about choosing groups]

I think that there should probably be more detail here. At the very
least, the text should specify that the SubjectPublicKeyInfo's
AlgorithmIdentifier's id is dhpublicnumber. I don't know how much detail
is really needed, but it seems that what's here is under-specified (or
that references to a more detailed treatment are missing. the earlier
2361 reference does not provide that detail).

Until I chased down the references in 3279 and 3280, I was under the
mistaken impression that the DomainParameters for the DH key were not
present in the AuthPack!

---

From: Chaskiel M Grundman <[email-masked]>
Date: Wed, 09 Feb 2005 19:27:44 -0500

> I propose 3 changes to address your concerns, and Sam's.

These look good to me, modulo the spelling error (s/pubic/public/ in the
ASN.1 comments)

Thanks.