Internet Engineering Task Force                             H. Brockhaus
Internet-Draft                                                   Siemens
Updates: 4210 (if approved)                                 July 7, 2019
Intended status: Standards Track
Expires: January 8, 2020


                              CMP Updates
                  draft-brockhaus-lamps-cmp-updates-00

Abstract

   This document contains a set of updates to the base syntax of
   Certificate Management Protocol (CMP) version 2.  This document
   updates RFC 4210.

   Specifically, the CMP services updated in this document comprise:
   Enable protection of server-side key generation using elliptic curve
   algorithms and the definition of an extended key usage to identify
   certificates of CMP endpoints on registration authorities and
   certification authorities.

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at https://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on January 8, 2020.

Copyright Notice

   Copyright (c) 2019 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (https://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents



Brockhaus                Expires January 8, 2020                [Page 1]


Internet-Draft                 CMP Updates                     July 2019


   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
     1.1.  Convention and Terminology  . . . . . . . . . . . . . . .   3
   2.  Updates to RFC 4210 - Certificate Management Protocol (CMP) .   3
     2.1.  New Section 1.1. - Changes since RFC 4210 . . . . . . . .   3
     2.2.  Replace Section 5.2.2. - Encrypted Values . . . . . . . .   4
     2.3.  Update Section 5.3.4. - Certification Response  . . . . .   5
     2.4.  Update Section 5.3.19.9. - Revocation Passphrase  . . . .   5
     2.5.  Update Appendix B - The Use of Revocation Passphrase  . .   6
     2.6.  Update Appendix C - Request Message Behavioral
           Clarifications  . . . . . . . . . . . . . . . . . . . . .   7
     2.7.  Update Appendix D.4. - Request Message Behavioral
           Clarifications  . . . . . . . . . . . . . . . . . . . . .   7
     2.8.  Insert section for EKUs like kp-id-cmpRA definition at an
           appropriate location. . . . . . . . . . . . . . . . . . .   7
   3.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   7
   4.  Security Considerations . . . . . . . . . . . . . . . . . . .   8
   5.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .   8
   6.  References  . . . . . . . . . . . . . . . . . . . . . . . . .   8
     6.1.  Normative References  . . . . . . . . . . . . . . . . . .   8
     6.2.  Informative References  . . . . . . . . . . . . . . . . .   9
   Appendix A.  ASN.1 Modules  . . . . . . . . . . . . . . . . . . .   9
   Author's Address  . . . . . . . . . . . . . . . . . . . . . . . .   9

1.  Introduction

   While using CMP [RFC4210] in industrial and IoT environments and
   developing the Lightweight CMP Profile
   [I-D.brockhaus-lamps-industrial-cmp-profile] some limitations were
   identified in the original CMP specification.  This document updates
   RFC 4210 [RFC4210] to overcome these limitations.

   In general this document aims to improve the crypto agility of CMP to
   be flexible to react on future advances in cryptography.

   This document also introduces a new extended key usage to identify
   CMP services on registration and certification authorities.

   < TBD: While implementing CMP we identified some wording that could
   be more precise.  It can be discussed if such wording issued need to
   be addressed in the context of this document or not. >



Brockhaus                Expires January 8, 2020                [Page 2]


Internet-Draft                 CMP Updates                     July 2019


1.1.  Convention and Terminology

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in RFC 2119 [RFC2119].

   In this document, these words will appear with that interpretation
   only when in ALL CAPS.  Lower case uses of these words are not to be
   interpreted as carrying significance described in RFC 2119.

   Technical terminology is used in conformance with RFC 4210 [RFC4210],
   RFC 4211 [RFC4211], and RFC 5280 [RFC5280].  The following key words
   are used:

   CA:     Certification authority, which issues certificates.

   RA:     Registration authority, an optional system component to which
           a CA delegates certificate management functions such as
           authorization checks.

   EE:     End entity, a user or device or service that holds a PKI
           certificate.  An identifier for the EE is given as the
           subject of the certificate.

2.  Updates to RFC 4210 - Certificate Management Protocol (CMP)

2.1.  New Section 1.1. - Changes since RFC 4210

   The following subsections describe feature updates to RFC 4210
   [RFC4210].  They are always related to the base specification.  Hence
   references to the original sections in RFC 4210 are used whenever
   possible.

   Insert this section at the end of the current Section 1.

   The following updates were made since RFC 4210:

   o  Offering envelopedData as another choice next to EncryptedValue to
      extend crypto agility in CMP. . Note that according to RFC 4211
      [RFC4211] section 2.1.9 the use of the EncryptedValue structure
      has been deprecated in favor of the EnvelopedData structure.  For
      reasons of completeness and consistency the exchange of
      EncryptedValue with EncryptedKey is performed not only where
      required for the needed crypto agility for protection of centrally
      generated private key, but also for other purposes like encryption
      of revocation passphrases.





Brockhaus                Expires January 8, 2020                [Page 3]


Internet-Draft                 CMP Updates                     July 2019


   o  Add new extended key usages for different CMP server types, e.g.
      Registration authority and certification authority.

2.2.  Replace Section 5.2.2. - Encrypted Values

   Section 5.2.2 of RFC 4210 [RFC4210] describes the usage of
   EncryptedValue to transport encrypted data.

   Replace the text of the section with the following text.

   Where encrypted data (restricted, in this specification, to be either
   private keys, certificates or passwords) are sent in PKI messages,
   the EncryptedKey data structure is used.

   EncryptedKey ::= CHOICE {
      encryptedValue        EncryptedValue, -- deprecated
      envelopedData     [0] EnvelopedData }

   See CRMF [RFC4211] for EncryptedKey and EncryptedValue syntax.

   Using this data structure, it offers the choice to either use
   EncryptedValue or EnvelopedData.  As EncryptedValue offers only key
   transport, e.g. using RSA or symmetic encryption, EnvelopedData
   offers further key management techniques, e.g. key agreement, and
   more crypto agility.  Note that according to RFC 4211 [RFC4211]
   section 2.1.9 the use of the EncryptedValue structure has been
   deprecated in favor of the EnvelopedData structure.  Therefore, it is
   recommended to use EnvelopedData.

   See CMS [RFC5652] for EnvelopedData syntax.

   Using envelopedData within CMP contains only one recepientInfo
   structure because the content is encrypted only for one recipient.

   < TBD: Explain the detailed usage of the different key management
   techniques (e.g. key transport, key agreement, and previously
   distributed symmetric key-encryption keys) for encryption of the
   respective private key, certificate or revocation passphrase as
   specified for EnvelopedData in section 6 in CMS [RFC5652]. >

   Use of either EnvelopedData or EncryptedValue (for backward
   compatibility only) requires that the creator and intended recipient
   be able to encrypt and decrypt, respectively.  Typically, this will
   mean that the sender and recipient have, or are able to generate, a
   shared secret key.

   < TBD: Description of EnvelopedData structure parts which are used
   and filled to support application in CMP >



Brockhaus                Expires January 8, 2020                [Page 4]


Internet-Draft                 CMP Updates                     July 2019


   If EncryptedValue is used by the sender and the recipient of the
   PKIMessage already possesses a private key usable for decryption,
   then the encSymmKey field MAY contain a session key encrypted using
   the recipient's public key.

2.3.  Update Section 5.3.4. - Certification Response

   Section 5.3.4 of RFC 4210 [RFC4210] describes the Certification
   Response.  This document updates the syntax by using EncryptedKey
   instead of EncryptedValue as described in Section 2.1 above.

   Replace the ASN.1 syntax of CertifiedKeyPair and CertorEncCert with
   the following text.

   CertifiedKeyPair ::= SEQUENCE {
       certOrEncCert       CertOrEncCert,
       privateKey      [0] EncryptedKey        OPTIONAL,
       -- see [CRMF] for comment on encoding
       publicationInfo [1] PKIPublicationInfo  OPTIONAL
   }

   CertOrEncCert ::= CHOICE {
       certificate     [0] Certificate,
       encryptedCert   [1] EncryptedKey
   }

   < Question to Jim Schaad: Simply exchanging EncryptedValue with
   EncryptedKey is what I understood from our discussion back in April.
   Is it completely backwards compatible to current ASN.1 Syntax of
   RFC4210? >

   Add the following paragraphs to the end of the section.

   In case EnvelopedData is the choice used for EncryptedKey, the
   encrypted private key or certificate MUST be placed in the
   envelopedData encryptedContentInfo encryptedContent OCTET STRING.
   Note that according to RFC 4211 [RFC4211] section 2.1.9 the use of
   the EncryptedValue structure has been deprecated in favor of the
   EnvelopedData structure.

2.4.  Update Section 5.3.19.9. - Revocation Passphrase

   Section 5.3.19.9 of RFC 4210 [RFC4210] describes the provisioning of
   a revocation passphrase for authenticating a later revocation
   request.  This document updates the handling by using EncryptedKey
   instead of EncryptedValue to transport this information as described
   in Section 2.1 above.




Brockhaus                Expires January 8, 2020                [Page 5]


Internet-Draft                 CMP Updates                     July 2019


   Replace the text of the section with the following text.

   The revocation passphrase MAY be used by the EE to send a passphrase
   to a CA/RA for the purpose of authenticating a later revocation
   request (in the case that the appropriate signing private key is no
   longer available to authenticate the request).  See Appendix B for
   further details on the use of this mechanism.

   GenMsg:    {id-it 12}, EncryptedKey
   GenRep:    {id-it 12}, < absent >

   In case EnvelopedData is the choice used for EncryptedKey, the
   encrypted revocation passphrase MUST be placed in the envelopedData
   encryptedContentInfo encryptedContent OCTET STRING.  Note that
   according to RFC 4211 [RFC4211] section 2.1.9 the use of the
   EncryptedValue structure has been deprecated in favor of the
   EnvelopedData structure.

2.5.  Update Appendix B - The Use of Revocation Passphrase

   Appendix B of RFC 4210 [RFC4210] describes the usage of the
   revocation passphrases.  As this document updates RFC 4210 [RFC4210]
   to utilize EncryptedKey in favor of EncryptedValue as described in
   Section 2.1 above, the description is updated accordingly.

   Replace the first bullet point of this section with the following
   text.

   o  The OID and value specified in Section 5.3.19.9 of RFC 4210
      [RFC4210] MAY be sent in a GenMsg message at any time, or MAY be
      sent in the generalInfo field of the PKIHeader of any PKIMessage
      at any time.  (In particular, the EncryptedKey may be sent in the
      header of the certConf message that confirms acceptance of
      certificates requested in an initialization request or certificate
      request message.)  This conveys a revocation passphrase chosen by
      the entity (i.e., and for use of EnvelopedData this is in the
      decrypted bytes of encryptedContent of the EnvelopedData structure
      and for use of EncryptedValue this is in the decrypted bytes of
      the encValue field) to the relevant CA/RA; furthermore, the
      transfer is accomplished with appropriate confidentiality
      characteristics.  Note that according to RFC 4211 [RFC4211]
      section 2.1.9 the use of the EncryptedValue structure has been
      deprecated in favor of the EnvelopedData structure.

   Replace the third bullet point of this section with the following
   text.





Brockhaus                Expires January 8, 2020                [Page 6]


Internet-Draft                 CMP Updates                     July 2019


   o  When using EnvelopedData the contentType of EncryptedContentInfo
      and when using EncryptedValue the valueHint field MAY contain a
      key identifier (chosen by the entity, along with the passphrase
      itself) to assist in later retrieval of the correct passphrase
      (e.g., when the revocation request is constructed by the entity
      and received by the CA/RA).

2.6.  Update Appendix C - Request Message Behavioral Clarifications

   Appendix C of [RFC4210] provides clarifications to the request
   message behavior.  As this document updates [RFC4210] to utilize
   EncryptedKey in favor of EncryptedValue as described in Section 2.1
   above, the description is updated accordingly.

   Replace the note coming after the ASN.1 syntax of POPOPrivKey of this
   section with the following text.

   -- **********
   -- *  the type of "thisMessage" is given as BIT STRING in RFC 4211
   -- *  [RFC4211]; it should be "EncryptedKey" (in accordance with
   -- *  Section 5.2.2, "Encrypted Values", of this specification).
   -- *  Therefore, this document makes the behavioral clarification of
   -- *  specifying that the contents of "thisMessage" MUST be encoded
   -- *  either as EnvelopedData or EncryptedValue (only for backward
   -- *  compatibility) and then wrapped in a BIT STRING.  This allows
   -- *  the necessary conveyance and protection of the private key
   -- *  while maintaining bits-on-the-wire compatibility with RFC 4211
   -- *  [RFC4211].
   -- **********

2.7.  Update Appendix D.4. - Request Message Behavioral Clarifications

   < TBD, add further details on crc[1].certifiedKeyPair, e.g. refer to
   usage of EncryptedValue protected with the pre-shared symmetric
   MACing key using SYM_PENC_ALG. >

2.8.  Insert section for EKUs like kp-id-cmpRA definition at an
      appropriate location.

   < Details need to be defined later >

3.  IANA Considerations

   <Add any IANA considerations>







Brockhaus                Expires January 8, 2020                [Page 7]


Internet-Draft                 CMP Updates                     July 2019


4.  Security Considerations

   No changes are made to the existing security considerations of
   RFC 4210 [RFC4210].

5.  Acknowledgements

   We would like to thank the various reviewers of this document.

6.  References

6.1.  Normative References

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <https://www.rfc-editor.org/info/rfc2119>.

   [RFC4210]  Adams, C., Farrell, S., Kause, T., and T. Mononen,
              "Internet X.509 Public Key Infrastructure Certificate
              Management Protocol (CMP)", RFC 4210,
              DOI 10.17487/RFC4210, September 2005,
              <https://www.rfc-editor.org/info/rfc4210>.

   [RFC4211]  Schaad, J., "Internet X.509 Public Key Infrastructure
              Certificate Request Message Format (CRMF)", RFC 4211,
              DOI 10.17487/RFC4211, September 2005,
              <https://www.rfc-editor.org/info/rfc4211>.

   [RFC5280]  Cooper, D., Santesson, S., Farrell, S., Boeyen, S.,
              Housley, R., and W. Polk, "Internet X.509 Public Key
              Infrastructure Certificate and Certificate Revocation List
              (CRL) Profile", RFC 5280, DOI 10.17487/RFC5280, May 2008,
              <https://www.rfc-editor.org/info/rfc5280>.

   [RFC5652]  Housley, R., "Cryptographic Message Syntax (CMS)", STD 70,
              RFC 5652, DOI 10.17487/RFC5652, September 2009,
              <https://www.rfc-editor.org/info/rfc5652>.

   [RFC6712]  Kause, T. and M. Peylo, "Internet X.509 Public Key
              Infrastructure -- HTTP Transfer for the Certificate
              Management Protocol (CMP)", RFC 6712,
              DOI 10.17487/RFC6712, September 2012,
              <https://www.rfc-editor.org/info/rfc6712>.







Brockhaus                Expires January 8, 2020                [Page 8]


Internet-Draft                 CMP Updates                     July 2019


6.2.  Informative References

   [I-D.brockhaus-lamps-industrial-cmp-profile]
              Brockhaus, H., Fries, S., and D. Oheimb, "Lightweight
              Industrial CMP Profile", draft-brockhaus-lamps-industrial-
              cmp-profile-00 (work in progress), March 2019.

Appendix A.  ASN.1 Modules

   Changes to the following parts are needed

   o  Import from PKIKXCRMF-2005

   CertTemplate, PKIPublicationInfo, EncryptedKey, CertId,
   CertReqMessages
       FROM PKIXCRMF-2005 {iso(1) identified-organization(3)
       dod(6) internet(1) security(5) mechanisms(5) pkix(7)
       id-mod(0) id-mod-crmf2005(36)}

   o  In CertifiedKeyPair, CertOrEncCert and id-it-revPassphrase

   CertifiedKeyPair ::= SEQUENCE {
       certOrEncCert       CertOrEncCert,
       privateKey      [0] EncryptedKey        OPTIONAL,
       -- see [CRMF] for comment on encoding
       publicationInfo [1] PKIPublicationInfo  OPTIONAL
   }

   CertOrEncCert ::= CHOICE {
       certificate     [0] CMPCertificate,
       encryptedCert   [1] EncryptedKey
   }

   --   id-it-revPassphrase    OBJECT IDENTIFIER ::= {id-it 12}
   --      RevPassphraseValue      ::= EncryptedKey

   < TBD: If needed the complete ASN.1 Module from RFC 4210 section
   needs to be copied here to be changed. >

Author's Address











Brockhaus                Expires January 8, 2020                [Page 9]


Internet-Draft                 CMP Updates                     July 2019


   Hendrik Brockhaus
   Siemens AG
   Otto-Hahn-Rin 6
   Munich  81739
   Germany

   Email: hendrik.brockhaus@siemens.com
   URI:   http://www.siemens.com/











































Brockhaus                Expires January 8, 2020               [Page 10]