Network Working Group                                        J. Peterson
Internet-Draft                                                   Neustar
Intended status: Informational                                 M. Barnes
Expires: September 6, 2018                                     iconectiv
                                                              D. Hancock
                                                                C. Wendt
                                                                 Comcast
                                                           March 5, 2018


                ACME Challenges Using an Authority Token
               draft-peterson-acme-authority-token-01.txt

Abstract

   A number of proposed challenges for the Automated Certificate
   Management Environment (ACME) effectively rely on an external
   authority issuing a token according to a particular policy.  This
   document specifies a generic Authority Token challenge for ACME which
   supports subtype claims different identifiers or namespaces that can
   be defined to represent a specific application of this Authority
   Token challenge.

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 September 6, 2018.

Copyright Notice

   Copyright (c) 2018 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



Peterson, et al.        Expires September 6, 2018               [Page 1]


Internet-Draft            ACME Authority Token                March 2018


   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  . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  Terminology . . . . . . . . . . . . . . . . . . . . . . . . .   3
   3.  Challenges for an Authority Token . . . . . . . . . . . . . .   3
     3.1.  Token Type Requirements . . . . . . . . . . . . . . . . .   5
     3.2.  Authority Token Type for ATC  . . . . . . . . . . . . . .   6
   4.  Acknowledgments . . . . . . . . . . . . . . . . . . . . . . .   7
   5.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   7
   6.  Security Considerations . . . . . . . . . . . . . . . . . . .   7
   7.  Informative References  . . . . . . . . . . . . . . . . . . .   7
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .   9

1.  Introduction

   ACME [I-D.ietf-acme-acme] 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.

   In some cases, proving effective control over an identifier requires
   an attestation from a third party who has authority over the
   resource, for example, an external policy administrator for a
   namespace other than the DNS application ACME was originally designed
   to support.  In order to automate the process of issuing certificates
   for those resources, this specification defines a generic Authority
   Token challenge that ACME servers can issue in order to acquire such
   a token.  The challenge contains a type indication that tells the
   client what sort of token it needs to acquire.  It is expected that
   the Authority Token challenge will be usable for a variety of
   identifier types.

   For example, the system of [I-D.ietf-acme-service-provider] provides
   a mechanism that allows service providers to acquire certificates
   corresponding to a Service Provider Code (SPC) as defined in
   [I-D.ietf-stir-certificates] by consulting an external authority
   responsible for those codes.  Furthermore, Communications Service
   Providers (CSPs) can delegate authority over numbers to their
   customers, and those CSPs who support ACME can then help customers to
   acquire certificates for those numbering resources with ACME.  This
   can permit number acquisition flows compatible with those shown in



Peterson, et al.        Expires September 6, 2018               [Page 2]


Internet-Draft            ACME Authority Token                March 2018


   [I-D.ietf-modern-problem-framework].  Another, similar example would
   a mechanism that permits CSPs to delegate authority for particular
   telephone numbers to customers, as described in
   [I-D.ietf-acme-telephone].

2.  Terminology

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

3.  Challenges for an Authority Token

   Proving that a device on the Internet has effective control over a
   non-Internet resource is not as straightforward as proving control
   over an Internet resources like a DNS zone or a web page.  There has
   been considerable interest in using ACME to issue certificates
   associated with telephone numbers and service provider identifiers
   used in the telephone network, for example.  Provided that the issuer
   of identifiers in a namespace, or someone acting on the issuer's
   behalf, can implement a service that grants Authority Tokens to the
   people to whom it has issued identifiers, a generic token could be
   used as a response to an ACME challenge.  This specification,
   therefore, defines an Authority Token issued by authority over a
   namespace to an ACME client for delivery to a CA in response to a
   challenge.  Authority over a hierarchical namespace can also be
   delegated, so that delegates of a root authority can themselves act
   as Token Authorities for certain types of names.

   This architecture assumes a trust relationship between CAs and Token
   Authorities: that CAs are willing to accept the attestation of Token
   Authorities for particular types of identifiers as sufficient proof
   to issue a credential.  It furthermore assumes that ACME clients have
   a relationship with Token Authorities which permits them to
   authenticate and authorize the issuance of Authority Tokens to the
   proper entities.  This ACME challenge has no applicability to
   identifiers or authorities where those pre-associations cannot be
   assumed.

   ACME challenges that support Authority Tokens therefore need to
   specify the type of tkauth token they require; CAs can even provide a
   hint in their challenges to ACME clients that tells them how to find
   a Token Authority who can issue tokens for a given namespace.  This
   challenge type thus requires a new "tkauth-type" element, and may
   optionally supply a "token-authority" designating a location where
   tokens can be acquired.  The set of "tkauth-type" values and the
   semantic requirements for those tokens are tracked by an IANA



Peterson, et al.        Expires September 6, 2018               [Page 3]


Internet-Draft            ACME Authority Token                March 2018


   registry.  Here we as an example we use a token type of "ATC", for
   the Authority Token Challenge, which is further documented below.
   Taking the identifier example of TNAuthList from
   [I-D.ietf-acme-service-provider], a challenge might look as follows:

       HTTP/1.1 200 OK
       Content-Type: application/json
       Link: <https://example.com/acme/some-directory>;rel="directory"

       {
        "status": "pending",

        "identifier": {
           "type": "TNAuthList",
           "value": ["1234"]
         },
         "challenges": [
         {
           "type": "tkauth-01",
           "tkauth-type": "ATC",
           "token-authority": "https://authority.example.org/authz",
           "url": "https://boulder.example.com/authz/asdf/0"
           "token": "IlirfxKKXAsHtmzK29Pj8A" }
         ],
       }

   Entities receiving this challenge know that they can as a proof
   acquire a ATC token from the designated token authority, and that
   this authority can provide tokens corresponding the identifier type
   of "TNAuthList".  Once the ATC has been acquired by the ACME Client,
   it can be posted back to the URL given by the ACME challenge.




















Peterson, et al.        Expires September 6, 2018               [Page 4]


Internet-Draft            ACME Authority Token                March 2018


       POST /acme/authz/asdf/0 HTTP/1.1
       Host: boulder.example.com
       Content-Type: application/jose+json

        {
         "protected": base64url({
         "alg": "ES256",
         "kid": "https://boulder.example.com/acme/reg/asdf",
         "nonce": "Q_s3MWoqT05TrdkM2MTDcw",
         "url": "https://boulder.example.com/acme/authz/asdf/0"
          }),
         "payload": base64url({
         "ATC": "evaGxfADs...62jcerQ"
            }),
         "signature": "5wUrDI3eAaV4wl2Rfj3aC0Pp--XB3t4YYuNgacv_D3U"
        }


   The "ATC" field in this response contains the Authority Token.

3.1.  Token Type Requirements

   The IANA will control a registry of token-types under a policy of
   Specification Required.  In order to register a new token-type,
   specifications must meet the following requirements.

   While Authority Token types do not need to be specific to a
   namespace, every token must carry enough information for a CA to
   determine the name that it will issue a certificate for.  Some types
   of Authority Tokens might be reusable for a number of different
   namespaces; other authority tokens might be specific to a particular
   type of name.  Therefore, in defining token-types, future
   specifications must indicate how a token conveys to the CA the name
   that the Token Authority is attesting that the ACME client controls.

   In most cases, an ACME client will need a protocol to request and
   retrieve an Authority Token.  The Token Authority will require
   certain information from an ACME client in order to ascertain that it
   is the right entity to request a certificate for a particular name.
   The protocols used to request an Authority Token MUST convey to the
   Token Authority the identifier type and value from the ACME
   challenge, as well as the nonce, and those MUST be reflected in the
   Authority Token.  Exactly how the Token Authority authenticates and
   authorizes ACME clients to receive Authority Tokens is out of the
   scope of this document.

   Because the assignment of resources can change over time,
   demonstrations of authority must be regularly refreshed.  Definitions



Peterson, et al.        Expires September 6, 2018               [Page 5]


Internet-Draft            ACME Authority Token                March 2018


   of a token-type MUST specify how they manage the freshness of
   authority assignments.  Typically, a CA will expect a regular
   refreshing of the token.

3.2.  Authority Token Type for ATC

   This specification pre-populates the token-type registry with a
   token-type for "ATC".

   Here the "ATC" token-type signifies a standard JWT token [RFC7519]
   using a JWS-defined signature string [RFC7515].  This may be used for
   any number of different identifier types given in ACME challenges.

   For this ACME Authority Token usage of JWT, the payload of the JWT
   OPTIONALLY contain an "iss" indicating the Token Authority that
   generated the token, if the "x5u" element in the header does not
   already convey that information; typically, this will be the same
   location that appeared in the "token-authority" field of the ACME
   challenge.  In order to satisfy the requirement for replay prevention
   the JWT MUST contain a "jti" element, and an "exp" claim.

   The JWT payload must also contain a new JWT claim, "atc", for
   Authority Token Challenge, which contains three elements in an array:
   the identifier type, the identifier value, and the nonce.  The
   identifier type and value are those given in the ACME challenge and
   conveyed to the Token Authority by the ACME client.  Again, following
   the example of [I-D.ietf-acme-service-provider], this could be the
   TNAuthList, as defined in [RFC8226], that the Token Authority is
   attesting.  Practically speaking, that may contain a list of Service
   Provider Code elements, telephone number range elements, and/or
   individual telephone numbers.  The nonce is taken from the original
   Replay-Nonce header field of the ACME challenge.

   So for example:

   { "typ":"JWT",
    "alg":"ES256",
    "x5u":"https://authority.example.org/cert"}
   {
    "iss":"https://authority.example.org/authz",
    "exp":1300819380,
    "jti":"id6098364921",
    "atc":{"TnAuthList","1234","Q_s3MWoqT05TrdkM2MTDcw"} }

   [More TBD.  Need to add how the JWT reflects that the resource is
   delegatable.  Need to show the request to the Token Authority as
   well.]




Peterson, et al.        Expires September 6, 2018               [Page 6]


Internet-Draft            ACME Authority Token                March 2018


4.  Acknowledgments

   We would like to thank you for your contributions to this problem
   statement and framework.

5.  IANA Considerations

   Future versions of this specification will include registrations for
   the ACME Challenge type registries here.  It will also create a
   registry for "token types" as used in these challenges.

6.  Security Considerations

   The capture of Authority Tokens by an adversary could enable an
   attacker to acquire a certificate from a CA.  Therefore, all
   Authority Tokens MUST contain a field that identifies to the CA which
   ACME client requested the token from the authority.  All Authority
   Tokens must specify an expiry (of the token itself as proof for a CA,
   as opposed to the expiry of the name), and for some application, it
   may make sense of that expiry to be quite short.  Authority Tokens
   must also contain a nonce that will enable a CA to detect a replayed
   Authority Token.  Any protocol used to retrieve Authority Tokens from
   an authority MUST use confidentiality to prevent eavesdroppers from
   acquiring an Authority Token.

   More TBD.

7.  Informative References

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

   [I-D.ietf-acme-service-provider]
              Barnes, M. and C. Wendt, "ACME Identifiers and Challenges
              for VoIP Service Providers", draft-ietf-acme-service-
              provider-02 (work in progress), October 2017.

   [I-D.ietf-acme-star]
              Sheffer, Y., Lopez, D., Dios, O., Pastor, A., and T.
              Fossati, "Support for Short-Term, Automatically-Renewed
              (STAR) Certificates in Automated Certificate Management
              Environment (ACME)", draft-ietf-acme-star-03 (work in
              progress), March 2018.





Peterson, et al.        Expires September 6, 2018               [Page 7]


Internet-Draft            ACME Authority Token                March 2018


   [I-D.ietf-acme-telephone]
              Peterson, J. and R. Barnes, "ACME Identifiers and
              Challenges for Telephone Numbers", draft-ietf-acme-
              telephone-01 (work in progress), October 2017.

   [I-D.ietf-modern-problem-framework]
              Peterson, J. and T. McGarry, "Modern Problem Statement,
              Use Cases, and Framework", draft-ietf-modern-problem-
              framework-03 (work in progress), July 2017.

   [I-D.ietf-stir-certificates]
              Peterson, J. and S. Turner, "Secure Telephone Identity
              Credentials: Certificates", draft-ietf-stir-
              certificates-18 (work in progress), December 2017.

   [I-D.ietf-stir-passport]
              Wendt, C. and J. Peterson, "Personal Assertion Token
              (PASSporT)", draft-ietf-stir-passport-11 (work in
              progress), February 2017.

   [I-D.ietf-stir-rfc4474bis]
              Peterson, J., Jennings, C., Rescorla, E., and C. Wendt,
              "Authenticated Identity Management in the Session
              Initiation Protocol (SIP)", draft-ietf-stir-rfc4474bis-16
              (work in progress), February 2017.

   [I-D.rescorla-stir-fallback]
              Rescorla, E. and J. Peterson, "STIR Out of Band
              Architecture and Use Cases", draft-rescorla-stir-
              fallback-02 (work in progress), June 2017.

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

   [RFC7340]  Peterson, J., Schulzrinne, H., and H. Tschofenig, "Secure
              Telephone Identity Problem Statement and Requirements",
              RFC 7340, DOI 10.17487/RFC7340, September 2014,
              <https://www.rfc-editor.org/info/rfc7340>.

   [RFC7515]  Jones, M., Bradley, J., and N. Sakimura, "JSON Web
              Signature (JWS)", RFC 7515, DOI 10.17487/RFC7515, May
              2015, <https://www.rfc-editor.org/info/rfc7515>.

   [RFC7519]  Jones, M., Bradley, J., and N. Sakimura, "JSON Web Token
              (JWT)", RFC 7519, DOI 10.17487/RFC7519, May 2015,
              <https://www.rfc-editor.org/info/rfc7519>.



Peterson, et al.        Expires September 6, 2018               [Page 8]


Internet-Draft            ACME Authority Token                March 2018


   [RFC8226]  Peterson, J. and S. Turner, "Secure Telephone Identity
              Credentials: Certificates", RFC 8226,
              DOI 10.17487/RFC8226, February 2018,
              <https://www.rfc-editor.org/info/rfc8226>.

Authors' Addresses

   Jon Peterson
   Neustar, Inc.
   1800 Sutter St Suite 570
   Concord, CA  94520
   US

   Email: jon.peterson@team.neustar


   Mary Barnes
   iconectiv

   Email: mary.ietf.barnes@gmail.com


   David Hancock
   Comcast

   Email: davidhancock.ietf@gmail.com


   Chris Wendt
   Comcast
   One Comcast Center
   Philadelphia, PA  19103
   USA

   Email: chris-ietf@chriswendt.net
















Peterson, et al.        Expires September 6, 2018               [Page 9]