Internet DRAFT - draft-moriarty-acme-overview

draft-moriarty-acme-overview







IETF                                                         K. Moriarty
Internet-Draft                                                   DellEMC
Intended status: Standards Track                           M. Richardson
Expires: November 14, 2019                                     Sandelman
                                                            May 13, 2019


                             ACME Overview
                    draft-moriarty-acme-overview-00

Abstract

   Automated Certificate Management Environment (ACME) core protocol
   addresses the use case of web server certificates for TLS and defines
   authentication challenge types to automate certificate issuance.
   This document describes the orthoganal nature of certificate types to
   challenge types for a better understanding of the applicability of
   challenge types to various certificate types.

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 November 14, 2019.

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
   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



Moriarty & Richardson   Expires November 14, 2019               [Page 1]

Internet-Draft                ACME Overview                     May 2019


   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  Key Storage . . . . . . . . . . . . . . . . . . . . . . . . .   3
   3.  Why Not EST . . . . . . . . . . . . . . . . . . . . . . . . .   3
   4.  Why EST, Bootstrapping with BRSKI . . . . . . . . . . . . . .   4
   5.  Why EST and BRSKI with ACME, or KMIP with ACME  . . . . . . .   5
   6.  Authentication Challenges and Certificate Types . . . . . . .   6
   7.  Security Considerations . . . . . . . . . . . . . . . . . . .   6
   8.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   7
   9.  Contributors  . . . . . . . . . . . . . . . . . . . . . . . .   7
   10. References  . . . . . . . . . . . . . . . . . . . . . . . . .   7
     10.1.  Normative References . . . . . . . . . . . . . . . . . .   7
     10.2.  Informative References . . . . . . . . . . . . . . . . .   7
     10.3.  URL References . . . . . . . . . . . . . . . . . . . . .   8
   Appendix A.  Change Log . . . . . . . . . . . . . . . . . . . . .   9
   Appendix B.  Open Issues  . . . . . . . . . . . . . . . . . . . .   9
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .   9

1.  Introduction

   ACME [RFC8555] is a mechanism for automating certificate management
   on the Internet.  It enables administrative entities to prove
   effective control over resources like domain names, and automates the
   process of generating and issuing certificates.

   ACME was designed for web server certificates with the possibility to
   create extensions for other use cases and certificate types.
   Although it was not explicitly stated, the challenge types defined in
   RFC8555 and any other ACME extensions may be used with any
   certificate type as deemed appropriate by the Certificate Authority
   management.  The defined challenge types are orthogonal in nature to
   the certificate type that may be specified in the protocol document
   definition.  For instance, it is possible to use a a pre-defined
   authentictaion challenge, such as a DNS resource record RFC8555
   [RFC8555] originally specificed for web server certificates, to
   authenticate a device to be issued a client certificate.  In this
   scenario, the only change necessary would be in the CSR.  There is
   nothing in the ACME protocol challenge/response mechanism that
   specifies the certificate type.  When designing extensions or
   revewing options to implement ACME, understanding that the
   certificate type is decoupled from the challenge type may be
   important.  When designing for specific certificate types, it is
   logical to design for practical, reasonable challenges specific to




Moriarty & Richardson   Expires November 14, 2019               [Page 2]

Internet-Draft                ACME Overview                     May 2019


   the certificate type to enable the secure automation of certificate
   management.

   This document will cover some early design decisions, and
   authentication considerations such as identity proofing providing a
   summary for those interested in the history and decision points.

2.  Key Storage

   A design goal for the automated workflow for these certificate types
   via ACME is to allow for flexibility in the selection of key storage
   containers, for instance one may select the Key Management
   Interoperability Protocol (KMIP) [KMIP] for key management and
   storage, PKCS-11 for key storage, or a proprietary key store.  This
   is particularly important and may be asked in regard to client
   certificates as flexibility to store certificates on a device or
   external to a device may be a concern and the flexibility to store
   keys using a chosen protocol may be important.  In the case of KMIP,
   the KMIP enterprise key manager could use ACME to communicate with
   the CA server, leaving the device communications between devices and
   the KMIP server.  However, the use of ACME can be standalone
   integrating with the available client key storage method (for
   example, PKCS-#11) provided for accessibility and to prevent cost
   barriers for automating key management for some implementations.  The
   ACME client on the device or system storing the code signing
   certificate would authenticate to the CA running an ACME server to
   obtain initial certificates or renew certificates.  With the
   proliferation of open source implementations of ACME for TLS server
   certificates, this seems like a reasonable goal.  Several options for
   integrating ACME with other protocols will be presented in this
   draft, this section is specific to key storage and thus covers the
   open standards that enable key storage.

3.  Why Not EST

   Enrollment over Secure Transport (EST) [RFC7030] and OpenStack's
   Keystone are options for automating client certificates.  OpenSSL can
   be combined with libest to automate the management of client
   certificates, for instance.

   The authentication options used in EST to obtain a client certificate
   are described in [RFC7030] Section 2.2 and are stated as follows:

   o  TLS with a previously issued client certificate (e.g., an existing
      certificate issued by the EST CA);






Moriarty & Richardson   Expires November 14, 2019               [Page 3]

Internet-Draft                ACME Overview                     May 2019


   o  TLS with a previously installed certificate (e.g., manufacturer-
      installed certificate or a certificate issued by some other
      party);

   o  Certificate-less TLS (e.g., with a shared credential distributed
      out-of-band);

   o  HTTP-based with a username/password distributed out-of-band.

   Although a fine a protocol, none of these options enable the protocol
   to establish authentication of the entity (device, user, owner of
   code signing certificate) without a pre-established and external
   process to the protocol.  In some cases, higher levels of assertion
   are necessary and EST may be more suited for those purposes or
   additional out-of-band processing could be used in conjunction with
   ACME if adopted widely for the automation of client certificate
   management.

4.  Why EST, Bootstrapping with BRSKI

   Bootstrapping Remote Secure Key Infrastructures (BRSKI)
   [I-D.ietf-anima-bootstrapping-keyinfra] is an extension to EST that
   has been deployed, but is still in the standardization process.
   Client device certificates typically require administrator
   interaction to request, retrieve, and install the initial
   certificate.  The process being manual allows for control and
   understanding of the CA issuing certificates, the device, and
   verifying the security parameters including authenticating each
   party.  While there are security advantages to the manual process,
   automation is necessary not only to scale deployment, but in some
   cases to make it possible.  BRSKI defines a protocol to bootstrap the
   initial enrollment using device properties.  This bootstrapping
   capability is critical when deploying devices at scale and enabling
   encryption via certificates.  BRSKI allows devices to find their
   owner without being online first, and without preconfiguration.
   BRSKI does not change how EST authenticates the device; it just
   reduces it as described below.

   BRSKI uses device information to "authenticate" for bootstrapping,
   namely a serial number entered into the subject field's DN and the
   subject-alt field may include the Trusted Platform Module (TPM)
   identifier, IDevID defined in Section 7.2.9 of RFC4108 [RFC4108].  If
   the subject field is present, it takes precedence over the subject-
   alt field.  These identifiers are included in a voucher or voucher-
   requests (cryptographically protected artifact using a digital
   signature) to uniquely identify the device, or in BRSKI terms, the
   'pledge'.  It should be noted that to date, the identifier in the TPM
   has not been used in practice as the TPM identifier has not been



Moriarty & Richardson   Expires November 14, 2019               [Page 4]

Internet-Draft                ACME Overview                     May 2019


   present in systems where EST with the BRSKI extension have been used.
   A registrar may be used with a local policy and it is also possible
   to use a Manufacturer Authorized Signing Authority (MASA) service for
   the authentication process.  MASA has been the default (See section 5
   of BRSKI [I-D.ietf-anima-bootstrapping-keyinfra].  The pledge only
   imprints when the voucher can be validated.

   In the case where a private CA is used, it is possible to configure
   the environment to use EST with the BRSKI extension to fully automate
   certificate enrollment and management with bootstrapping.  In some
   cases, it is possible to use EST and BRSKI alone when retreieving a
   certificate from a public CA.  In this case, the Registration
   Authority (RA) or registrar, may be on the same system as the CA or
   the registrar has a protocol to communicate with the CA using a
   variation of EST such as fullcmc rather than the simpleenroll
   methods.  If EST is not supported on the public CA, the registrar may
   need to communicate with the CA using another protocol that enables
   automated certificate management, namely ACME.  This scenario may be
   true for other certificate and key management protocols, such as
   KMIP, where the device certificate management handled by the
   registrar is fully enabled to the devices or 'pledges', but
   communication to the CA uses ACME.

5.  Why EST and BRSKI with ACME, or KMIP with ACME

   Interoperability is the key factor that would drive a deployment
   mixing several protocols.  Since there are a few choices and some are
   a better fit in certain enviornments, the method to fully automate
   with the avilable infrastructure may require a mix of protocols.
   Yes, this is a bit more complicated and a method like EST with BRSKI
   could solve this end-to-end, but support is needed at the public CA
   to make that possible.  KMIP may also be used to manage certificates
   to devices and with a similar design, may utilize ACME for
   communications from the registrar to the CA.  The use case is as
   follows:

   o  BRSKI provides the authentication of the new device, establishing
      trust for use with EST

   o  EST enables enrollment, where the device requests the certificate
      from the registrar

   o  The registrar invokes the ACME protocol to request a certificate
      from the CA.

   ACME could possibly be used as a protocol in multiple use cases where
   the existing standard does not specify how the enrolment server
   communicates with the CA.  In addition to the above described use



Moriarty & Richardson   Expires November 14, 2019               [Page 5]

Internet-Draft                ACME Overview                     May 2019


   case for EST with BRSKI, EST and TEAP enrolment servers, with BRSKI
   and TEAP-BRSKI is a variations on extensions to those.  Similarly,
   KMIP may be used for the first two steps, with the connection from
   the registrar to the CA using ACME.

6.  Authentication Challenges and Certificate Types

   A typical process to obtain a client certificate may be similar to
   the workflow described in the introduction of RFC8555 with the
   exception of certificate type and Enhanced Key Usage (EKU).  Although
   RFC8555 was written with the web server use case in mind, the
   protocol was designed to allow for the defined authentication
   challenges to be orthogonal to the certificate type issued.  The
   workflow may vary between certificate types as the issuance process
   may have specific requirements and as a result, may have unique
   authentication challenge options that alter the workflow.  If the
   defined challenge types are appropriate for use to issue certificates
   of other types, this is possible without further specification.  The
   implementation would use the appropriate certificate type, defined in
   the CSR.  The ACME protocol does not define CSR contents, hence the
   certificate type and challenge, as well as pre-authorization
   challenges, are decoupled from the certificate type.  The EKU are
   standard defined values and include:

   o  1.3.6.1.5.5.7.3.1 Server Authentication

   o  1.3.6.1.5.5.7.3.2 Client Authentication

   o  1.3.6.1.5.5.7.3.3 Code Signing

   o  1.3.6.1.5.5.7.3.4 Email Protection

   o  1.3.6.1.5.5.7.3.5 IPSec End System

   o  1.3.6.1.5.5.7.3.6 IPSec Tunnel

   o  1.3.6.1.5.5.7.3.7 IPSec User

   o  1.3.6.1.5.5.7.3.8 Time Stamping

   o  1.3.6.1.5.5.7.3.9 OCSP Signing

7.  Security Considerations

   This will likely be full of considerations and is TBD for revision
   one.





Moriarty & Richardson   Expires November 14, 2019               [Page 6]

Internet-Draft                ACME Overview                     May 2019


8.  IANA Considerations

   This memo includes no request to IANA, yet.

9.  Contributors

   Thank you to Owen Friel for your early comments and suggestions and
   to Richard Barnes for suggesting the need for such a document.

10.  References

10.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>.

   [RFC7030]  Pritikin, M., Ed., Yee, P., Ed., and D. Harkins, Ed.,
              "Enrollment over Secure Transport", RFC 7030,
              DOI 10.17487/RFC7030, October 2013,
              <https://www.rfc-editor.org/info/rfc7030>.

   [RFC8174]  Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
              2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
              May 2017, <https://www.rfc-editor.org/info/rfc8174>.

   [RFC8555]  Barnes, R., Hoffman-Andrews, J., McCarney, D., and J.
              Kasten, "Automatic Certificate Management Environment
              (ACME)", RFC 8555, DOI 10.17487/RFC8555, March 2019,
              <https://www.rfc-editor.org/info/rfc8555>.

10.2.  Informative References

   [I-D.ietf-acme-ip]
              Shoemaker, R., "ACME IP Identifier Validation Extension",
              draft-ietf-acme-ip-05 (work in progress), February 2019.

   [I-D.ietf-anima-bootstrapping-keyinfra]
              Pritikin, M., Richardson, M., Behringer, M., Bjarnason,
              S., and K. Watsen, "Bootstrapping Remote Secure Key
              Infrastructures (BRSKI)", draft-ietf-anima-bootstrapping-
              keyinfra-19 (work in progress), March 2019.

   [RFC4108]  Housley, R., "Using Cryptographic Message Syntax (CMS) to
              Protect Firmware Packages", RFC 4108,
              DOI 10.17487/RFC4108, August 2005,
              <https://www.rfc-editor.org/info/rfc4108>.



Moriarty & Richardson   Expires November 14, 2019               [Page 7]

Internet-Draft                ACME Overview                     May 2019


10.3.  URL References

   [KMIP]     OASIS, "Key Management Interoperability Protocol
              Specification Version 1.4 http://docs.oasis-
              open.org/kmip/spec/v1.4/cos01/kmip-spec-v1.4-cos01.pdf".

   [NIST800-63A]
              US National Institute of Standards and Technology,
              "https://nvlpubs.nist.gov/nistpubs/SpecialPublications/
              NIST.SP.800-63a.pdf".

   [NIST800-63B]
              US National Institute of Standards and Technology,
              "https://nvlpubs.nist.gov/nistpubs/SpecialPublications/
              NIST.SP.800-63b.pdf".

   [NIST800-63C]
              US National Institute of Standards and Technology,
              "https://nvlpubs.nist.gov/nistpubs/SpecialPublications/
              NIST.SP.800-63c.pdf".

   [NIST800-63r3]
              US National Institute of Standards and Technology,
              "https://nvlpubs.nist.gov/nistpubs/SpecialPublications/
              NIST.SP.800-63-3.pdf".


























Moriarty & Richardson   Expires November 14, 2019               [Page 8]

Internet-Draft                ACME Overview                     May 2019


Appendix A.  Change Log

   Note to RFC Editor: if this document does not obsolete an existing
   RFC, please remove this appendix before publication as an RFC.

Appendix B.  Open Issues

   Note to RFC Editor: please remove this appendix before publication as
   an RFC.

Authors' Addresses

   Kathleen M. Moriarty
   DellEMC
   176 South Street
   Hopkinton
   US

   EMail: Kathleen.Moriarty@dell.com


   Michael C. Richardson
   Sandelman Software Works

   EMail: mcr+ietf@sandelman.ca
   URI:   http://www.sandelman.ca/

























Moriarty & Richardson   Expires November 14, 2019               [Page 9]