ACME Working Group                                            Y. Sheffer
Internet-Draft                                                    Intuit
Intended status: Standards Track                                D. Lopez
Expires: December 18, 2017 May 16, 2018                                O. Gonzalez de Dios
                                                       A. Pastor Perales
                                                          Telefonica I+D
                                                              T. Fossati
                                                                   Nokia
                                                           June 16,
                                                       November 12, 2017

Use of

  Support for Short-Term, Automatically-Renewed (STAR) Certificates to Delegate
                        Authority over Web Sites
                        draft-ietf-acme-star-00 in
          Automated Certificate Management Environment (ACME)
                        draft-ietf-acme-star-01

Abstract

   This memo proposes an ACME extension to enable the issuance of short-
   term and automatically renewed certificates.  This allows a domain
   name owner to delegate the use of certificates to another party,
   while retaining the capability to cancel this delegation at any time
   with no need to rely on certificate revocation mechanisms.

   [RFC Editor: please remove before publication]

   While the draft is being developed, the editor's version can be found
   at https://github.com/yaronf/I-D/tree/master/STAR.

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 http://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 December 18, 2017. May 16, 2018.

Copyright Notice

   Copyright (c) 2017 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
   (http://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
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

Table of Contents

   1.  Introduction: A Solution for the HTTPS CDN Use Case  Introduction  . . . . . . . . . .   3
     1.1.  Cloud Use Case . . . . . . . . . . . . . .   3
     1.1.  Name Delegation Use Case  . . . . . . . . . . . . . . . .   3
     1.2.  Terminology . . . . . . . . . . . . . . . . . . . . . . .   4   3
     1.3.  Conventions used in this document . . . . . . . . . . . .   4
   2.  Protocol Flow . . . . . . . . . . . . . . . . . . . . . . . .   4
     2.1.  Bootstrap . . . . . . . . . . . . . . . . . . . . . . . .   5   4
     2.2.  Refresh . . . . . . . . . . . . . . . . . . . . . . . . .   6   5
     2.3.  Termination . . . . . . . . . . . . . . . . . . . . . . .   6
   3.  Protocol Details  . . . . . . . . . . . . . . . . . . . . . .   7
     3.1.  ACME Extensions between Proxy and Server . . . . . . . . . . . . . . . . . . . . .   7
       3.1.1.  Extending the Order Resource  . . . . . . . . . . . .   7
       3.1.2.  Canceling a Recurrent Order . . . . . . . . . . . . .   8
     3.2.  Indicating Support of Recurrent Orders  . . . . . . . . .   8   9
     3.3.  ACME Authorization  Fetching the Certificates . . . . . . . . . . . . . . . .   9
   4.  Operational Considerations  . . .   8
     3.4.  Fetching the Certificates . . . . . . . . . . . . . .  10
     4.1.  Certificate Transparency (CT) Logs  . .   9
   4.  Operational Considerations . . . . . . . . .  10
   5.  Implementation Status . . . . . . . .   9
     4.1.  Certificate Transparency (CT) Logs . . . . . . . . . . .   9
   5.  Security Considerations .  10
     5.1.  Overview  . . . . . . . . . . . . . . . . . .   9
     5.1.  Restricting CDNs to the Delegation Mechanism . . . . . .   9
   6.  Acknowledgments  11
       5.1.1.  ACME Server with STAR extension . . . . . . . . . . .  11
       5.1.2.  Proxy STAR  . . . . . . . . . . . .  10
   7.  References . . . . . . . . .  11
     5.2.  Level of Maturity . . . . . . . . . . . . . . . .  10
     7.1.  Normative References . . . .  12
     5.3.  Coverage  . . . . . . . . . . . . . .  10
     7.2.  Informative References . . . . . . . . . .  12
     5.4.  Version Compatibility . . . . . . .  10
   Appendix A.  Document History . . . . . . . . . . .  12
     5.5.  Licensing . . . . . . .  12
     A.1.  draft-ietf-acme-star-00 . . . . . . . . . . . . . . . . .  12
     A.2.  draft-sheffer-acme-star-02
     5.6.  Implementation experience . . . . . . . . . . . . . . . .  12
     A.3.  draft-sheffer-acme-star-01
     5.7.  Contact Information . . . . . . . . . . . . . . .  12
     A.4.  draft-sheffer-acme-star-00 . . . .  13
   6.  IANA Considerations . . . . . . . . . . .  12
     A.5.  draft-sheffer-acme-star-lurk-00 . . . . . . . . . .  13
     6.1.  New ACME Error Types  . . .  12
   Authors' Addresses . . . . . . . . . . . . . . .  13
     6.2.  New ACME Order Object Fields  . . . . . . . .  12

1.  Introduction: A Solution for the HTTPS CDN Use Case

   A content provider (referred to in this document as Domain Name
   Owner, DNO) has agreements in place with one or more Content Delivery
   Networks (CDNs) that are contracted to serve its content over HTTPS.
   The CDN terminates the HTTPS connection at one of its edge cache
   servers and needs to present its clients (browsers, set-top-boxes) a
   certificate whose name matches the authority of the URL that is
   requested, i.e. that of the DNO.  However, many DNOs balk at sharing
   their long-term . . . . . .  13
   7.  Security Considerations . . . . . . . . . . . . . . . . . . .  13
   8.  Acknowledgments . . . . . . . . . . . . . . . . . . . . . . .  14
   9.  References  . . . . . . . . . . . . . . . . . . . . . . . . .  14
     9.1.  Normative References  . . . . . . . . . . . . . . . . . .  14
     9.2.  Informative References  . . . . . . . . . . . . . . . . .  14
   Appendix A.  Document History . . . . . . . . . . . . . . . . . .  16
     A.1.  draft-ietf-acme-star-01 . . . . . . . . . . . . . . . . .  16
     A.2.  draft-ietf-acme-star-00 . . . . . . . . . . . . . . . . .  16
     A.3.  draft-sheffer-acme-star-02  . . . . . . . . . . . . . . .  16
     A.4.  draft-sheffer-acme-star-01  . . . . . . . . . . . . . . .  16
     A.5.  draft-sheffer-acme-star-00  . . . . . . . . . . . . . . .  16
     A.6.  draft-sheffer-acme-star-lurk-00 . . . . . . . . . . . . .  16
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  16

1.  Introduction

   The ACME protocol [I-D.ietf-acme-acme] automates the process of
   issuing a certificate to a Domain Name Owner (DNO).  However, if the
   DNO wishes to obtain a string of short-term certificates originating
   from the same private keys with another organization and, equally,
   CDN providers key (see [Topalovic] for the rationale), she
   must go through the whole ACME protocol each time a new short-term
   certificate is needed - e.g., every 2-3 days.  If done this way, the
   process would rather not have to handle other parties' long-
   term secrets. involve frequent interactions between the registration
   function of the ACME Certification Authority (CA) and the user's
   backing infrastructure (e.g.: DNS, web servers), therefore making the
   issuance of short-term certificates exceedingly dependent on the
   reliability of both.

   This problem has been discussed document presents an extension of the ACME protocol that
   optimizes this process by making short-term certificates first class
   objects in the ACME ecosystem.  Once the order for a string of short-
   term certificates is accepted, the CA is responsible for publishing
   the next certificate at an agreed upon URL before the IETF under previous one
   expires.  The DNO can terminate the
   LURK (limited use automatic renewal before the
   natural deadline, if needed - e.g., on key compromise.

   For a more generic treatment of remote keys) title. STAR certificates, readers are
   referred to [I-D.nir-saag-star].

1.1.  Name Delegation Use Case

   The proposed mechanism can be used as a building block of an
   efficient name-delegation protocol, for example one that exists
   between a CDN or a cloud provider and its users
   [I-D.sheffer-acme-star-request], in a way that makes the delegator
   (i.e., the DNO) in full control of the delegation by simply
   instructing the CA to stop the automatic renewal and letting the
   currently active certificate expire shortly thereafter.

1.2.  Terminology

   DNO  Domain Name Owner, the owner of a domain.
   STAR  Short-Term, Automatically Renewed X.509 certificates.
   NDC  Name Delegation Client, an entity to which the domain name owned
      by the DNO is delegated for a limited time.  This might be a CDN
      edge cache, a cloud provider's load balancer or Web Application
      Firewall (WAF).

1.3.  Conventions used in this document

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

2.  Protocol Flow

   The following subsections describe the above problem that involves
   the use three main phases of short-term certificates with a DNO's name on them, and a
   scheme for handling the naming delegation from
   protocol:

   o  Bootstrap: the DNO asks an ACME CA to the CDN.
   The generated create a short-term credentials are automatically renewed by an and
      automatically-renewed (STAR) certificate (Section 2.1);
   o  Auto-renewal: the ACME Certification Authority (CA) [I-D.ietf-acme-acme] CA periodically re-issues the short-term
      certificate and routinely
   rotated by posts it to a public URL (Section 2.2);
   o  Termination: the CDN on its edge cache servers.  The DNO can end the
   delegation at any time by simply instructing requests the ACME CA to stop discontinue the
      automatic renewal and let the certificate expire shortly thereafter.

   Using short-term certificates makes revocation cheap and effective
   [Topalovic] [I-D.iab-web-pki-problems] in case of key compromise or
   of termination of the delegation; seamless certificate issuance and
   renewal enable the level of workflow automation that is expected in
   today's cloud environments.  Also, compared to other keyless-TLS
   solutions [I-D.cairns-tls-session-key-interface]
   [I-D.erb-lurk-rsalg], the proposed approach doesn't suffer from
   scalability issues or increase in connection setup latency, while
   requiring virtually no changes to existing COTS caching software used
   by the CDN. (Section 2.3).

   This document describes the ACME extension.  A companion document [I-
   D.sheffer-acme-star-request] describes how the CDN can request the
   DNO to initiate the protocol with diagram presents the ACME server.

1.1.  Cloud Use Case

   A similar use case is entities that of cloud infrastructure components, such
   as load balancers and Web Application Firewalls (WAF).  These
   components are typically provisioned with (or may be) involved in
   the DNO's certificate, protocol and
   similarly to the CDN use case, many organizations would prefer to
   manage the private key only on their own cloud-based or on-premise
   hosts, often on Hardware Security Modules (HSMs).

   Here again, the STAR solution allows the DNO to delegate authority
   over the domain to the cloud provider, with interactions during the ability to revoke
   this authority at any time.

1.2.  Terminology different phases.

                            Refresh
             . . . . . . . . . . . . . . . . . . . .
         . '                                         ` v
      .-----.        Bootstrap / Terminate         .---------.
      | DNO  Domain Name Owner, the owner of a domain |------------------------------------->| ACME CA |
      `-----'                                      `---------'
         ^                  .- - -.                    ^
          ` . . . . . . . . : NDC : . . . . . . . . . '
               Request      `- - -'    Refresh
               Delegation

   Note that needs to there might be
      delegated. a distinct NDC  Name Delegation Consumer, the entity to which the domain name is
      delegated for a limited time.  This is often (e.g., a CDN (in fact,
      readers may note the similarity of edge
   cache) that uses a separate channel to request the two acronyms).
   CDN  Content Delivery Network, DNO to set up a widely distributed network that
      serves
   name delegation.  The protocol described in
   [I-D.sheffer-acme-star-request] might be used for this purpose.

2.1.  Bootstrap

   The DNO, in its role as an ACME client, requests the domain's web content CA to issue a wide audience at high
      performance.
   STAR  Short-Term, Automatically Renewed X.509 certificates.
   ACME  The IETF Automated Certificate Management Environment, certificate, i.e., one that:

   o  Has a
      certificate management protocol. short validity (e.g., 24 to 72 hours);
   o  Is automatically renewed by the CA A Certificate Authority that implements for a certain period of time;
   o  Is downloadable from a (highly available) public link without
      requiring any special authorization.

   Other than that, the ACME protocol.

1.3.  Conventions used in this document

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", protocol flows as normal between DNO and
   "OPTIONAL" in this document are
   CA.  In particular, DNO is responsible for satisfying the requested
   ACME challenges until the CA is willing to be interpreted as described in
   [RFC2119].

2.  Protocol Flow

   For clarity, we describe how issue the requested
   certificate.  Per normal ACME processing, the DNO is given back an
   Order ID for the proposed ACME extension can issued STAR certificate to be used in a system that consists of an NDC, an ACME Client (the DNO) and an
   ACME Server.  Only subsequent
   interaction with the latter part (ACME Client CA (e.g., if the certificate needs to ACME Server) is in
   scope of this document.

   The protocol flow can be split into two: a STAR interface, used by
   NDC and
   terminated.)

   The bootstrap phase ends when the DNO to agree on obtains the name delegation, and OK from the extended ACME
   interface, used by DNO to obtain the short-term and
   CA.

2.2.  Refresh

   The CA automatically
   renewed re-issues the certificate from using the CA, which is eventually consumed by same CSR
   (and therefore the
   NDC.  The latter is also used same name and public key) before it expires and
   publishes it to terminate the delegation, if so
   needed.

   Communication between the NDC and URL that was returned to the DNO (the STAR interface) is out
   of scope at the end of this document.  It may take
   the form bootstrap phase.  The certificate user, which could be either the
   DNO itself or a delegated third party, as described in [I-
   D.sheffer-acme-star-request], some other online protocol, or may even
   be through manual generation of
   [I-D.sheffer-acme-star-request], obtains the certificate and uses it.

   The refresh process (Figure 1) goes on until either:

   o  DNO terminates the CSR. delegation, or
   o  Automatic renewal expires.

        Certificate              ACME/STAR
           User                    Server
             |     Retrieve cert     |                     [...]
             |---------------------->|                      |
             |                       +------.              /
             |                       |      |             /
             |                       | Automatic renewal :
             |                       |      |             \
             |                       |<-----'              \
             |     Retrieve cert     |                      |
             |---------------------->|                   72 hours
             |                       |                      |
             |                       +------.              /
             |                       |      |             /
             |                       | Automatic renewal :
             |                       |      |             \
             |                       |<-----'              \
             |     Retrieve cert     |                      |
             |---------------------->|                   72 hours
             |                       |                      |
             |                       +------.              /
             |                       |      |             /
             |                       | Automatic renewal :
             |                       |      |             \
             |                       |<-----'              \
             |                       |                      |
             |         [...]         |                    [...]

                          Figure 1: Auto renewal

2.3.  Termination

   The following subsections describe the three main phases DNO may request early termination of the
   protocol:

   o  Bootstrap: STAR certificate by
   including the DNO asks an ACME CA to create a corresponding
      short-term and auto-renewed (STAR) certificate, possibly on Order ID in a certificate termination request from an NDC which is out of scope for this document;
   o  Auto-renewal: to the
   ACME CA periodically re-issues interface, defined below.  After the short-term
      certificate CA receives and posts verifies
   the request, it to a public URL (Section 2.2); shall:

   o  Termination: the DNO (indirectly) stops name delegation by
      explicitly requesting the ACME CA to discontinue  Cancel the automatic renewal of process for the STAR certificate;
   o  Change the certificate (Section 2.3).

   This diagram presents publication resource to return an error
      indicating the entities involved in termination of the protocol and their
   interactions during delegation to any external
      client.

   Note that it is not necessary to explicitly revoke the different phases.

                                    +-----------------+
                                    | short-term
   certificate.

   STAR                    STAR                   ACME/STAR
   Client                  Proxy                  Server
     |                       |      (DNO)                       |
                          Bootstrap +-----------------+ Bootstrap
                        +---------->+  STAR
     |  ACME  +-----------+                       |  Terminate Order ID   | Server
     | Client                       +---------------------->|
     | Terminate                       |                       +-------.
     |           +--------+--------+                       |                       |                                         v
                    +--------+                                +--------+       |  STAR
     |            Refresh                       |  ACME                       |  End auto renewal
     | Client +------------------------------->| Server                       |                       | (NDC)  Remove cert link
     |                       |                       |  etc.
     |  (CA)                       |
                    +--------+                                +--------+

2.1.  Bootstrap

   The DNO, in its role as an                       |       |
     |                       |         Done          |<------'
     |                       |<----------------------+
     |                       |                       |
     |                                               |
     |                 Retrieve cert                 |
     +---------------------------------------------->|
     |                 Error: terminated             |
     |<----------------------------------------------+
     |                                               |

                           Figure 2: Termination

3.  Protocol Details

   This section describes the protocol details, namely the extensions to
   the ACME client, requests protocol required to issue STAR certificates.

3.1.  ACME Extensions

   This protocol extends the ACME protocol, to allow for recurrent
   orders.

3.1.1.  Extending the Order Resource

   The Order resource is extended with the CA to issue a following attributes:

   {
       "recurrent": true,
       "recurrent-start-date": "2016-01-01T00:00:00Z",
       "recurrent-end-date": "2017-01-01T00:00:00Z",
       "recurrent-certificate-validity": 604800
   }

   o  recurrent: MUST be "true" for STAR certificate, i.e., one that: certificates.
   o  Has a short  recurrent-start-date: the earliest date of validity (e.g., 24 to 72 hours); of the first
      certificate issued, in [RFC3339] format.  This attribute is
      optional.  When omitted, the start date is as soon as
      authorization is complete.
   o  Is automatically renewed by  recurrent-end-date: the CA for a certain period latest date of time; validity of the last
      certificate issued, in [RFC3339] format.
   o  Is downloadable from  recurrent-certificate-validity: the maximum validity period of
      each STAR certificate, an integer that denotes a (highly available) public link without
      requiring any special authorization.

   Other than that, number of
      seconds.

   These attributes are included in a POST message when creating the ACME protocol flows
   order, as normal between DNO part of the "payload" encoded object.  They are returned
   when the order has been created, and
   CA, in particular DNO is responsible for satisfying the requested ACME challenges until the CA is willing server MAY adjust them
   at will, according to issue the requested
   certificate.  Per normal its local policy.

   ACME processing, defines the DNO is given back an
   Order ID following values for the issued Order resource's status:
   "invalid", "pending", "processing", "valid".  In the case of
   recurrent orders, the status MUST be "valid" as long as STAR certificate to
   certificates are being issued.  We add a new status value,
   "canceled", see below.

3.1.2.  Canceling a Recurrent Order

   An important property of the recurrent Order is that it can be used in subsequent
   interaction
   canceled by the DNO, with no need for certificate revocation.  To
   cancel the CA (e.g., if Order, the certificate needs to be
   terminated.) ACME client sends a POST:

   POST /acme/order/1 HTTP/1.1
   Host: acme-server.example.org
   Content-Type: application/jose+json

   {
    "protected": base64url({
      "alg": "ES256",
      "kid": "https://example.com/acme/acct/1",
      "nonce": "5XJ1L3lEkMG7tR6pA00clA",
      "url": "https://example.com/acme/order/1"
    }),
    "payload": base64url({
      "status": "canceled"
    }),
    "signature": "H6ZXtGjTZyUnPeKn...wEA4TklBdh3e454g"
   }

   The bootstrap phase ends when server MUST NOT issue any additional certificates for this Order,
   beyond the certificate that is available for collection at the DNO obtains time
   of deletion.  Immediately after the OK from Order is canceled, the ACME
   CA.

2.2.  Refresh

   The CA automatically re-issues server
   SHOULD respond with 403 (Forbidden) to any requests to the
   certificate (using the same CSR)
   before it expires endpoint.  The response SHOULD provide additional
   information using a problem document [RFC7807] with type
   "urn:ietf:params:acme:error:recurrentOrderCanceled".

3.2.  Indicating Support of Recurrent Orders

   ACME supports sending arbitrary extensions when creating an Order,
   and publishes it as a result, there is no need to the URL explicitly indicate support of
   this extension.  The DNO MUST verify that the NDC has come
   to know at "recurrent" attribute
   was understood, as indicated by the end of "recurrent" attribute included by
   the bootstrap phase.  The NDC downloads and
   installs it.  This process goes on until either:

   o  DNO terminates CA in the delegation, or
   o  Automatic renewal expires.

           STAR                    ACME/STAR
           Client                  Server
             |     Retrieve cert     |                     [...]
             |<--------------------->|                      |
             |                       +------.              /
             |                       |      |             /
             |                       | Automatic renewal :
             |                       |      |             \
             |                       |<-----'              \
             |     Retrieve cert     |                      |
             |<--------------------->|                   72 hours
             |                       |                      |
             |                       +------.              /
             |                       |      |             /
             |                       | Automatic renewal :
             |                       |      |             \
             |                       |<-----'              \
             |     Retrieve cert     |                      |
             |<--------------------->|                   72 hours
             |                       |                      |
             |                       +------.              /
             |                       |      |             /
             |                       | Automatic renewal :
             |                       |      |             \
             |                       |<-----'              \
             |                       |                      |
             |         [...]         |                    [...]

                          Figure 1: Auto renewal

2.3.  Termination

   The created Order.  Since the standard ACME protocol does
   not allow to explicitly cancel a pending Order (the POST operation in
   Section 3.1.2 is an extension), a DNO may request early termination that encounters an non-
   supporting server will probably let the Order expire instead of
   following through with the STAR authorization process.

3.3.  Fetching the Certificates

   The certificate by
   including is fetched from the Order ID in a certificate termination request endpoint, as per
   [I-D.ietf-acme-acme], Section 7.4.2.

      GET /acme/cert/asdf HTTP/1.1
      Host: acme-server.example.org
      Accept: application/pkix-cert

      HTTP/1.1 200 OK
      Content-Type: application/pem-certificate-chain
      Link: <https://example.com/acme/some-directory>;rel="index"
      Not-Before: Mon, 1 Feb 2016 00:00:00 GMT
      Not-After: Mon, 8 Feb 2016 00:00:00 GMT

      -----BEGIN CERTIFICATE-----
      [End-entity certificate contents]
      -----END CERTIFICATE-----
      -----BEGIN CERTIFICATE-----
      [Issuer certificate contents]
      -----END CERTIFICATE-----
      -----BEGIN CERTIFICATE-----
      [Other certificate contents]
      -----END CERTIFICATE-----

   The Server SHOULD include the "Not-Before" and "Not-After" headers.
   When they exist, they MUST be equal to the
   ACME interface, respective fields inside
   the certificate.  Their format is "HTTP-date" as defined below.  After in
   Section 7.1.1.2 of [RFC7231].  Their purpose is to enable client
   implementations that do not parse the CA receives and verifies certificate.

   To improve robustness, the request, it shall:

   o  Cancel next certificate MUST be made available by
   the automatic renewal process for ACME CA at the STAR certificate;
   o  Change latest halfway through the certificate publication resource to return an error
      indicating lifetime of the termination
   currently active certificate.  It is worth noting that this has an
   implication in case of cancellation: in fact, from the delegation to external clients,
      including time the NDC.

   Note that it next
   certificate is made available, the cancellation is not necessary to explicitly revoke completely
   effective until the short-term
   certificate.

   STAR                    STAR                   ACME/STAR
   Client                  Proxy                  Server
     |                       |                       |
     |                       |  Terminate latter also expires.

   The server MUST NOT issue any additional certificates for this Order ID   |
     |                       +---------------------->|
     |                       |                       +-------.
     |                       |                       |       |
     |                       |                       |  End auto renewal
     |                       |                       |  Remove cert link
     |                       |                       |  etc.
     |                       |                       |       |
     |                       |         Done          |<------'
     |                       |<----------------------+
     |                       |                       |
     |                                               |
     |                 Retrieve cert                 |
     +---------------------------------------------->|
     |                 Error: terminated             |
     |<----------------------------------------------+
     |                                               |

                           Figure 2: Termination

3.  Protocol Details

   This section describes
   beyond its recurrent-end-date.

   Immediately after the protocol's details, namely Order expires, the extensions server SHOULD respond with
   403 (Forbidden) to any requests to the certificate endpoint.  The
   response SHOULD provide additional information using a problem
   document [RFC7807] with type
   "urn:ietf:params:acme:error:recurrentOrderExpired".

4.  Operational Considerations

4.1.  Certificate Transparency (CT) Logs

   TBD: larger logs and how to deal with them.

5.  Implementation Status

   Note to RFC Editor: please remove this section before publication,
   including the ACME protocol required reference to issue STAR certificates.

3.1.  ACME Extensions between Proxy and Server [RFC7942].

   This protocol extends section records the ACME protocol, to allow for recurrent
   orders.

3.1.1.  Extending status of known implementations of the Order Resource

   The Order resource is extended with
   protocol defined by this specification at the following attributes:

 {
     "recurrent": true,
     "recurrent-total-lifetime": 365, // requested lifetime time of the
                                      // recurrent registration, posting of this
   Internet-Draft, and is based on a proposal described in days
     "recurrent-certificate-validity": 7
        // requested validity [RFC7942].
   The description of each certificate, implementations in days
 }

   These attributes are included this section is intended to
   assist the IETF in a POST message when creating its decision processes in progressing drafts to
   RFCs.  Please note that the
   order, as part listing of any individual implementation
   here does not imply endorsement by the "payload" encoded object.  They are returned
   when the order IETF.  Furthermore, no effort
   has been created, and spent to verify the ACME server MAY adjust them
   at will, according information presented here that was
   supplied by IETF contributors.  This is not intended as, and must not
   be construed to its local policy.

3.1.2.  Canceling be, a Recurrent Order

   An important property catalog of the recurrent Order is available implementations or their
   features.  Readers are advised to note that it can be
   cancelled by other implementations may
   exist.

   According to [RFC7942], "this will allow reviewers and working groups
   to assign due consideration to documents that have the domain name owner, with no need for certificate
   revocation.  We use benefit of
   running code, which may serve as evidence of valuable experimentation
   and feedback that have made the DELETE message implemented protocols more mature.
   It is up to cancel the Order:

   DELETE /acme/order/1 HTTP/1.1
   Host: acme-server.example.org

   Which returns:

   HTTP/1.1 202 Deleted individual working groups to use this information as
   they see fit".

5.1.  Overview

   The server MUST NOT issue any additional certificates implementation is constructed around 3 elements: Client STAR for this Order,
   beyond the certificate that
   NDC, Proxy STAR for DNO and Server ACME for CA.  The communication
   between them is available for collection at over an IP network and the time
   of deletion.

3.2.  Indicating Support HTTPS protocol.

   The software of Recurrent Orders the implementation is available at:
   https://github.com/mami-project/lurk

   The following subsections offer a basic description, detailed
   information is available in https://github.com/mami-
   project/lurk/blob/master/proxySTAR_v1/README.md

5.1.1.  ACME supports sending arbitrary extensions when creating Server with STAR extension

   This is a fork of the Let's Encrypt Boulder project that implements
   an Order,
   and ACME compliant CA.  It includes modifications to extend the ACME
   protocol as a result, there it is no need specified in this draft, to explicitly indicate support of
   this extension. recurrent
   orders and cancelling orders.

   The Proxy MUST verify that implementation understands the new "recurrent" attribute
   was understood, attributes as indicated by part
   of the "recurrent" attribute included Certificate issuance in the created Order.  Since the standard ACME protocol does not allow
   to explicitly cancel a pending Order (the DELETE operation above is
   an extension), POST request for a Proxy new resource.
   An additional process "renewalManager.go" has been included in
   parallel that encounters an non-supporting server will
   probably let reads the Order expire instead details of following through with each recurrent request,
   automatically produces a "cron" Linux based task that issues the
   authorization process.

3.3.  ACME Authorization

   The DNO MUST restrict
   recurrent certificates, until the authorizations it requests from lifetime ends or the ACME
   server to only those that cannot be spoofed by order is
   canceled.  This process is also in charge of maintaining a malicious NDC.  In
   most cases fixed URI
   to enable the NDC will have strong control to download certificates, unlike Boulder's regular
   process of HTTP content under the
   delegated domain, producing a unique URI per certificate.

5.1.2.  Proxy STAR

   The Proxy STAR, has a double role as ACME client and therefore HTTPS-based authorization MUST NOT be
   used.  See also Section 5.1.

3.4.  Fetching the Certificates STAR Server.
   The certificate former is fetched from a fork of the certificate endpoint, as per
   [I-D.ietf-acme-acme], Sec. 7.4.2 "Downloading EFF Certbot project that implements an
   ACME compliant client with the Certificate". STAR extension.  The
   server MUST include an Expires header latter is a basic
   HTTP REST API server.

   The proxy STAR understands the basic API request with a server.  The
   current implementation of the API is defined in draft-sheffer-acme-
   star-request-00.  Registration or order cancellation triggers the
   modified Certbot client that indicates expiry requests, or cancels, the recurrent
   generation of certificates using the
   specific certificate.  When STAR extension over ACME
   protocol.  The URI with the location of the recurrent certificate expires, is
   delivered to the STAR client MAY
   assume that as a newer certificate response.

5.2.  Level of Maturity

   This is already a prototype.

5.3.  Coverage

   Client STAR is not included in place.

   A certificate MUST be replaced this implementation, but done by its successor at the latest halfway
   through its lifetime (the period between its notBefore and notAfter
   times).

4.  Operational Considerations

4.1.  Certificate Transparency (CT) Logs

   TBD: larger logs and how to deal
   direct HTTP request with them.

5.  Security Considerations

5.1.  Restricting CDNs to the Delegation Mechanism

   Currently there are no standard methods for the DNO any open HTTP REST API tool.  This is
   expected to ensure that
   the CDN cannot issue a certificate through mechanisms other than be covered as part of [I-D.sheffer-acme-star-request]
   implementation.

   This implementation completely covers Proxy STAR and Server ACME with
   STAR extension

5.4.  Version Compatibility

   The implementation is compatible with version draft-ietf-acme-star-
   00.  The implementation is based on the
   one described here, for Boulder and Certbot code
   release from 7-Aug-2017.

5.5.  Licensing

   This implementation inherits the URLs under Boulder license (Mozilla Public
   License 2.0) and Certbot license (Apache License Version 2.0 ).

5.6.  Implementation experience

   To prove the CDN's control.  For
   example, regardless of concept all the STAR solution, implementation has been done with a rogue CDN employee can
   self-signed CA, to avoid impact on real domains.  To be able to do it
   we use the ACME protocol (or proprietary mechanisms used by various CAs) FAKE_DNS property of Boulder and static /etc/hosts entries
   with domains names.  Nonetheless this implementation should run with
   real domains.

   Most of the implementation has been made to create a fake certificate avoid deep changes inside
   of Boulder or Certbot, for example, the DNO's content because ACME
   authorizes its requests using information that may be under recurrent certificates
   issuance by the
   adversary's control.

   The best solution currently being worked CA is based on would consist of several
   related configuration steps:

   o  Make sure an external process that auto-
   configures the CDN cannot modify standard Linux "cron" daemon in the DNS records ACME CA server.

   The reference setup recommended is one physical host with 3 virtual
   machines, one for each of the
      domain.  Typically this would mean that the content owner
      establishes a CNAME resource record from a subdomain into a CDN-
      managed domain.
   o  Restrict certificate issuance for 3 components (client, proxy and server)
   and the domain connectivity based on host bridge.

   No security is enabled (iptables default policies are "accept" and
   all rules removed) in this implementation to specific CAs that
      comply with ACME.  This assumes universal deployment of CAA
      [RFC6844] simplify and test the
   protocol.

5.7.  Contact Information

   See author details below.

6.  IANA Considerations

   [[RFC Editor: please replace XXXX below by CAs, which is not the case yet.  We note that RFC number.]]

6.1.  New ACME Error Types

   This document adds the CA/
      Browser Forum has recently decided to require CAA checking
      [CAB-CAA].
   o  Deploy ACME-specific methods to restrict issuance following entry to a specific
      authorization key which the ACME Error Type
   registry:

   +------------------------+------------------------------+-----------+
   | Type                   | Description                  | Reference |
   +------------------------+------------------------------+-----------+
   | recurrentOrderCanceled | The short-term certificate   | RFC XXXX  |
   |                        | is controlled no longer available       |           |
   |                        | because the recurrent order  |           |
   |                        | has been explicitly canceled |           |
   |                        | by the content owner

      [I-D.ietf-acme-caa], and/or to specific DNO                   |           |
   | recurrentOrderExpired  | The short-term certificate   | RFC XXXX  |
   |                        | is no longer available       |           |
   |                        | because the recurrent order  |           |
   |                        | has expired                  |           |
   +------------------------+------------------------------+-----------+

6.2.  New ACME authorization
      methods. Order Object Fields

   This solution is recommended in general, even if an alternative document adds the following entries to the mechanism described here is used.

6. ACME Order Object
   Fields registry:

   +-------------------------------+--------+--------------+-----------+
   | Field Name                    | Field  | Configurable | Reference |
   |                               | Type   |              |           |
   +-------------------------------+--------+--------------+-----------+
   | recurrent                     | string | true         | RFC XXXX  |
   | recurrent-start-date          | string | true         | RFC XXXX  |
   | recurrent-end-date            | string | true         | RFC XXXX  |
   | recurrent-certificate-        | string | true         | RFC XXXX  |
   | validity                      |        |              |           |
   +-------------------------------+--------+--------------+-----------+

7.  Security Considerations

   TBD

8.  Acknowledgments

   This work is partially supported by the European Commission under
   Horizon 2020 grant agreement no. 688421 Measurement and Architecture
   for a Middleboxed Internet (MAMI).  This support does not imply
   endorsement.

7.

9.  References

7.1.

9.1.  Normative References

   [I-D.ietf-acme-acme]
              Barnes, R., Hoffman-Andrews, J., and J. Kasten, "Automatic
              Certificate Management Environment (ACME)", draft-ietf-
              acme-acme-06
              acme-acme-08 (work in progress), March October 2017.

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

7.2.  Informative References

   [CAB-CAA]  CA/Browser Forum, "Ballot 187 - Make CAA Checking
              Mandatory", March 2017, <https://cabforum.org/2017/03/08/
              ballot-187-make-caa-checking-mandatory/>.

   [I-D.cairns-tls-session-key-interface]
              Cairns, K., Mattsson, J., Skog, <https://www.rfc-
              editor.org/info/rfc2119>.

   [RFC3339]  Klyne, G. and C. Newman, "Date and Time on the Internet:
              Timestamps", RFC 3339, DOI 10.17487/RFC3339, July 2002,
              <https://www.rfc-editor.org/info/rfc3339>.

   [RFC7231]  Fielding, R., Ed. and D. Migault,
              "Session Key Interface (SKI) for TLS and DTLS", draft-
              cairns-tls-session-key-interface-01 (work in progress),
              October 2015.

   [I-D.erb-lurk-rsalg]
              Erb, S. and R. Salz, "A PFS-preserving protocol for LURK",
              draft-erb-lurk-rsalg-01 (work in progress), May 2016.

   [I-D.iab-web-pki-problems]
              Housley, R. J. Reschke, Ed., "Hypertext Transfer
              Protocol (HTTP/1.1): Semantics and K. O'Donoghue, "Improving the Public Key
              Infrastructure (PKI) Content", RFC 7231,
              DOI 10.17487/RFC7231, June 2014, <https://www.rfc-
              editor.org/info/rfc7231>.

   [RFC7807]  Nottingham, M. and E. Wilde, "Problem Details for the World Wide Web", draft-iab-
              web-pki-problems-05 HTTP
              APIs", RFC 7807, DOI 10.17487/RFC7807, March 2016,
              <https://www.rfc-editor.org/info/rfc7807>.

9.2.  Informative References

   [I-D.nir-saag-star]
              Nir, Y., Fossati, T., and Y. Sheffer, "Considerations For
              Using Short Term Certificates", draft-nir-saag-star-00
              (work in progress), October 2016.

   [I-D.ietf-acme-caa]
              Landau, H., "CAA Record Extensions for Account URI 2017.

   [I-D.sheffer-acme-star-request]
              Sheffer, Y., Lopez, D., Dios, O., Pastor, A., and
              ACME Method Binding", draft-ietf-acme-caa-01 T.
              Fossati, "Generating Certificate Requests for Short-Term,
              Automatically-Renewed (STAR) Certificates", draft-sheffer-
              acme-star-request-01 (work in progress), February June 2017.

   [RFC6844]  Hallam-Baker, P. and R. Stradling, "DNS Certification
              Authority Authorization (CAA) Resource Record",

   [RFC7942]  Sheffer, Y. and A. Farrel, "Improving Awareness of Running
              Code: The Implementation Status Section", BCP 205,
              RFC 6844, 7942, DOI 10.17487/RFC6844, January 2013,
              <http://www.rfc-editor.org/info/rfc6844>. 10.17487/RFC7942, July 2016,
              <https://www.rfc-editor.org/info/rfc7942>.

   [Topalovic]
              Topalovic, E., Saeta, B., Huang, L., Jackson, C., and D.
              Boneh, "Towards Short-Lived Certificates", 2012,
              <http://www.w2spconf.com/2012/papers/w2sp12-final9.pdf>.

Appendix A.  Document History

   [[Note to RFC Editor: please remove before publication.]]

A.1.  draft-ietf-acme-star-01

   o  Generalized the introduction, separating out the specifics of
      CDNs.
   o  Clean out LURK-specific text.
   o  Using a POST to ensure cancellation is authenticated.
   o  First and last date of recurrent cert, as absolute dates.
      Validity of certs in seconds.
   o  Use RFC7807 "Problem Details" in error responses.
   o  Add IANA considerations.
   o  Changed the document's title.

A.2.  draft-ietf-acme-star-00

   o  Initial working group version.
   o  Removed the STAR interface, the protocol between NDC and DNO.
      What remains is only the extended ACME protocol.

A.2.

A.3.  draft-sheffer-acme-star-02

   o  Using a more generic term for the delegation client, NDC.
   o  Added an additional use case: public cloud services.
   o  More detail on ACME authorization.

A.3.

A.4.  draft-sheffer-acme-star-01

   o  A terminology section.
   o  Some cleanup.

A.4.

A.5.  draft-sheffer-acme-star-00

   o  Renamed draft to prevent confusion with other work in this space.
   o  Added an initial STAR protocol: a REST API.
   o  Discussion of CDNI use cases.

A.5.

A.6.  draft-sheffer-acme-star-lurk-00

   o  Initial version.

Authors' Addresses
   Yaron Sheffer
   Intuit

   EMail: yaronf.ietf@gmail.com

   Diego Lopez
   Telefonica I+D

   EMail: diego.r.lopez@telefonica.com

   Oscar Gonzalez de Dios
   Telefonica I+D

   EMail: oscar.gonzalezdedios@telefonica.com

   Antonio Agustin Pastor Perales
   Telefonica I+D

   EMail: antonio.pastorperales@telefonica.com

   Thomas Fossati
   Nokia

   EMail: thomas.fossati@nokia.com