Internet-Draft ACME Client Discovery February 2024
van Brouwershaven, et al. Expires 18 August 2024 [Page]
Workgroup:
Automated Certificate Management Environment
Internet-Draft:
draft-vanbrouwershaven-acme-client-discovery-00
Published:
Intended Status:
Standards Track
Expires:
Authors:
P. van Brouwershaven
Entrust
M. Ounsworth
Entrust
C. Bonnell
DigiCert
I. Barreira
Sectigo
Q. Misell
AS207960

Auto-discovery mechanism for ACME authorized clients

Abstract

A significant challenge in the widespread adoption of the Automated Certificate Management Environment (ACME) [RFC8555] is the trust establishment between ACME servers and clients. While ACME clients can automatically discover the URL of the ACME server through ACME Auto Discovery [I-D.vanbrouwershaven-acme-auto-discovery], they face difficulty in identifying authorized clients. This draft proposes a solution to this problem by allowing Certification Authority (CA) customers to specify which ACME keys are authorized to request certificates on their behalf by simply providing the domain name of the service provider.

Specifically, this document registers the URI "/.well-known/acme-keys" at which all compliant service providers can publish their ACME client public keys. This mechanism allows the ACME server to identify the specific service provider, enhancing the trust relationship. Furthermore, it provides flexibility to service providers as they can use multiple keys and rotate them as often as they like, thereby improving security and control over their ACME client configurations while giving CA customers the ability to specifically authorize which service providers can request certificates on their behalf.

About This Document

This note is to be removed before publishing as an RFC.

The latest revision of this draft can be found at https://vanbroup.github.io/acme-client-discovery/draft-vanbrouwershaven-acme-client-discovery.html. Status information for this document may be found at https://datatracker.ietf.org/doc/draft-vanbrouwershaven-acme-client-discovery/.

Discussion of this document takes place on the Automated Certificate Management Environment Working Group mailing list (mailto:acme@ietf.org), which is archived at https://mailarchive.ietf.org/arch/browse/acme/. Subscribe at https://www.ietf.org/mailman/listinfo/acme/.

Source for this draft and an issue tracker can be found at https://github.com/vanbroup/acme-client-discovery.

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 18 August 2024.

Table of Contents

1. Conventions and Definitions

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.

2. Introduction

The Automated Certificate Management Environment (ACME) [RFC8555] has been instrumental in streamlining the process of certificate issuance and validation. However, a significant challenge that hinders its widespread adoption is the establishment of trust between ACME servers and clients. While ACME clients can automatically discover the URL of the ACME server through ACME Auto Discovery [I-D.vanbrouwershaven-acme-auto-discovery], identifying authorized clients remains a complex task.

This document proposes a solution to this problem by introducing a mechanism that allows Certification Authority (CA) customers to specify which ACME keys are authorized to request certificates on their behalf. This is achieved by simply providing the domain name of the service provider.

Specifically, this document registers the URI "/.well-known/acme-keys" where all compliant service providers can publish their ACME client public keys. This mechanism not only enhances the trust relationship by allowing the ACME server to identify the specific service provider but also provides flexibility to service providers. They can use multiple keys and rotate them as often as they like, thereby improving security and control over their ACME client configurations.

Moreover, this mechanism empowers CA customers by giving them the ability to specifically authorize which service providers can request certificates on their behalf.

3. Protocol Overview

  1. A user creates an account at server.example.

  2. The user specifies at server.example that client.example is authorized to request certificats on their behalf for the domain customer.example.

    1. The ACME server server.example downloads the known public keys from https://client.example/.well-known/acme-keys and will regularly check for changes.

  3. The ACME client client.example registers its key at server.example, which will only succeed if any of the customers have authorized client.example.

  4. The ACME client client.example makes an ACME request to the ACME server from server.example for domain customer.example.

  5. Based on the domain customer.example the ACME server server.example authenticates the ACME client against the known public keys of the service providers that the customer has authorized.

  6. The ACME client continues normal operation according to [RFC8555].

ACME Server ACME Client / User / CA Service Prov. 1. Create account 2. Authorize client 3. Register key 4. Verify key with info from well-known 5. Request cert 6. Normal operation

4. Implementation Considerations

5. IANA Considerations

5.1. Well-Known URI for the ACME Directory

The following value has been registered in the "Well-Known URIs" registry (using the template from [RFC5785]):

URI suffix: acme-keys
Change controller: IETF
Specification document(s): RFC XXXX, Section Y.Z
Related information: N/A
  • RFC Editor's Note: Please replace XXXX above with the RFC number assigned to this document

6. Security Considerations

6.1. Attacker Control Over Well-Known Directory

This document introduces a mechanism where ACME client keys are published in a well-known directory of a service provider. This introduces a potential risk if an attacker gains control over this well-known directory. In such a scenario, the attacker could add their own ACME client keys, posing as the service provider. This could potentially allow the attacker to request certificates on behalf of the service provider.

However, it's important to note that even if an attacker manages to publish their own keys in the well-known directory, they would still need to prove control over the domain name to obtain a certificate, as per the ACME protocol [RFC8555]. This provides an additional layer of security and significantly reduces the risk of unauthorized certificate issuance.

Service providers should ensure the security of their well-known directories to prevent unauthorized access.

7. References

7.1. Normative References

[RFC2119]
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, , <https://www.rfc-editor.org/rfc/rfc2119>.
[RFC8174]
Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, , <https://www.rfc-editor.org/rfc/rfc8174>.
[RFC8555]
Barnes, R., Hoffman-Andrews, J., McCarney, D., and J. Kasten, "Automatic Certificate Management Environment (ACME)", RFC 8555, DOI 10.17487/RFC8555, , <https://www.rfc-editor.org/rfc/rfc8555>.

7.2. Informative References

[I-D.vanbrouwershaven-acme-auto-discovery]
van Brouwershaven, P., Ounsworth, M., Bonnell, C., Barreira, I., and Q. Misell, "Auto-discovery mechanism for ACME servers", Work in Progress, Internet-Draft, draft-vanbrouwershaven-acme-auto-discovery-03, , <https://datatracker.ietf.org/doc/html/draft-vanbrouwershaven-acme-auto-discovery-03>.
[RFC5785]
Nottingham, M. and E. Hammer-Lahav, "Defining Well-Known Uniform Resource Identifiers (URIs)", RFC 5785, DOI 10.17487/RFC5785, , <https://www.rfc-editor.org/rfc/rfc5785>.

Acknowledgments

TODO acknowledge.

Authors' Addresses

Paul van Brouwershaven
Entrust Limited
2500 Solandt Road – Suite 100
Ottawa, Ontario K2K 3G5
Canada
Mike Ounsworth
Entrust Limited
2500 Solandt Road – Suite 100
Ottawa, Ontario K2K 3G5
Canada
Corey Bonnell
DigiCert, Inc
Pittsburgh, PA
United States of America
Iñigo Barreira
Sectigo (Europe) SL
Rambla Catalunya 86, 3 1. 08008 Barcelona.
08008 Barcelona
Spain
Q Misell
AS207960 Cyfyngedig
13 Pen-y-lan Terrace
Caerdydd