Introducing the 2024 PKI & Digital Trust Report     | Download the Report

Qu'est-ce que le protocole ACME et comment fonctionne-t-il ?

DevOps

Dans ce blog, les experts de Keyfactor expliquent comment fonctionne le protocole ACME, pourquoi il est important pour les déploiements modernes d'infrastructure à clé publique (PKI) et de gestion des certificats, et comment il peut aider les organisations à atteindre l'automatisation.

Qu'est-ce que l'ACME ?

ACME, ou Automated Certificate Management Environment, est un protocole qui permet d'automatiser l'émission et le renouvellement des certificats, le tout sans interaction humaine.

L'Internet Security Research Group (ISRG) a initialement conçu le protocole ACME pour son propre service de certificats, Let's Encrypt, une autorité de certification (AC) libre et ouverte qui fournit gratuitement des certificats validés par domaine (DV). Aujourd'hui, plusieurs autres autorités de certification, fournisseurs de PKI et navigateurs prennent en charge le protocole ACME pour différents types de certificats.

Versions ACME

La première itération du protocole ACME, ACME v1, a été publiée en 2016 et ne prenait initialement en charge que l'émission de certificats pour un seul domaine. Cependant, la version actualisée d'ACME v2, publiée en 2018, prend désormais en charge l'émission de certificats de type "wildcard". Il comprend également des améliorations de sécurité pour mieux vérifier la propriété du domaine et empêcher les acteurs malveillants d'obtenir des certificats émis par ACME.

En 2019, l'IETF a normalisé le protocole ACME dans la RFC8555, et de nombreux clients ont depuis développé un support pour le protocole. ACME v2 n'est pas rétrocompatible avec v1, qui sera entièrement supprimé en juin 2021.

Comment fonctionne le protocole ?

En s'appuyant sur ACME, les entreprises peuvent rationaliser et automatiser des processus qui prennent du temps, tels que la génération de CSR, la vérification de la propriété du domaine, l'émission de certificats et l'installation.

ACME est principalement utilisé pour obtenir des certificats validés par domaine (DV). En effet, les certificats DV ne nécessitent pas de vérification avancée. Seule l'existence du domaine est validée, ce qui ne nécessite aucune intervention humaine.

Le protocole peut également être utilisé pour obtenir des certificats de plus grande valeur, tels que la validation d'organisation (OV) et la validation étendue (EV), mais ces cas nécessitent des mécanismes de soutien supplémentaires en plus de l'agent ACME.

L'objectif du protocole ACME est de mettre en place un serveur HTTPS et d'automatiser l'approvisionnement en certificats de confiance, tout en éliminant les transactions manuelles sujettes aux erreurs. Pour utiliser le protocole, il faut un client ACME et un serveur ACME, qui communiquent avec des messages JSON via une connexion HTTPS sécurisée.

 

Il existe de nombreuses implémentations différentes du client ACME pour le protocole. Il est conçu pour permettre aux entreprises de choisir l'autorité de certification qu'elles souhaitent, à condition qu'elle prenne en charge le protocole ACME.

Let's Encrypt recommande d'utiliser le client certbot, parce qu'il est facile à utiliser, qu'il fonctionne sur de nombreux systèmes d'exploitation et qu'il dispose d'une documentation utile. D'autres clients ACME populaires peuvent être trouvés sur GitHub, tels que ACMESharp, acme-client, GetSSL, et bien d'autres.

Mise en place d'un client ACME

Une fois que vous avez sélectionné un client, l'étape suivante consiste à l'installer sur le domaine/serveur où les certificats doivent être déployés. Les clients ACME peuvent fonctionner dans presque tous les langages de programmation et tous les environnements, et le processus d'installation ne comporte que cinq étapes simples :

  1. Le client demande d'entrer le domaine à gérer.
  2. Le client propose une liste d'autorités de certification (AC) prenant en charge le protocole.
  3. Le client contacte l'autorité de certification sélectionnée et génère une paire de clés d'autorisation.
  4. L'autorité de certification émet des défis DNS ou HTTPS pour que le client puisse démontrer qu'il contrôle son ou ses domaines.
  5. L'autorité de certification envoie un nonce - un nombre généré de manière aléatoire - que l'agent doit signer avec sa clé privée pour prouver qu'il est propriétaire de la paire de clés.

 

Figure 1 : Processus de configuration initiale du client ACME.

Configuration du client du protocole ACME

Une fois que l'autorité de certification a vérifié que le client est authentique, le client ACME est prêt à demander des certificats au nom du ou des domaines validés.

Utiliser ACME pour déployer et gérer des certificats

L'émission et le renouvellement de certificats à l'aide du protocole ACME sont simples. Le client envoie simplement des demandes de gestion de certificats et les signe avec la paire de clés autorisée.

Délivrance/renouvellement : un serveur web sur lequel est installé l'agent ACME génère une CSR, l'envoie à l'autorité de certification, qui la délivre. Le processus d'émission et de renouvellement fonctionne de la même manière :

  1. L'agent envoie à l'autorité de certification une demande de signature de certificat (CSR) demandant l'émission d'un certificat pour le domaine autorisé avec une clé publique spécifiée.
  2. La RSC est signée avec la clé privée correspondante et la clé autorisée pour le domaine.
  3. Lorsque l'autorité de certification reçoit la demande, elle vérifie les deux signatures, émet un certificat pour le domaine autorisé avec la clé publique de la RSC et le renvoie à l'agent.

 

Figure 2 : Délivrance/renouvellement d'un certificat. Source : Let's Encrypt : Let's Encrypt.

Délivrance du certificat de protocole ACME

Révocation : pour révoquer un certificat, l'agent signe la demande de révocation avec la paire de clés autorisée pour le domaine, et l'autorité de certification valide la demande. L'autorité de certification publie ensuite les informations de révocation par le biais de LCR ou d'OCSP afin d'empêcher l'acceptation du certificat révoqué.

Figure 3 : Révocation d'un certificat. Source : Let's Encrypt : Let's Encrypt.

Révocation du certificat du protocole ACME

Comment le protocole ACME est-il utilisé ?

Dans le rapport 2021 sur l'état de la gestion de l'identité des machines, 40 % des personnes interrogées ont révélé que leur organisation utilisait encore des feuilles de calcul pour assurer le suivi manuel des certificats. En moyenne, ces organisations ont connu environ trois pannes inattendues causées par des certificats expirés ou mal configurés en l'espace de deux ans.

Malgré l'utilisation croissante d'environnements informatiques modernes et agiles, de nombreuses entreprises continuent de déployer et de gérer des certificats en utilisant des techniques dépassées qui ne sont pas adaptées aux exigences accrues des environnements actuels en constante évolution. La gestion manuelle des certificats dans des feuilles de calcul ou des bases de données est source d'inefficacité et de risque de panne ou de non-conformité en raison d'une erreur humaine.

C'est exactement ce que souligne la documentation du protocole ACME: "Les autorités de certification Web PKI existantes ont tendance à utiliser un ensemble de protocoles ad hoc pour la délivrance des certificats et la vérification de l'identité. Ces procédures ad hoc sont mises en œuvre en amenant l'utilisateur humain à suivre des instructions interactives en langage naturel fournies par l'autorité de certification plutôt que des protocoles publiés mis en œuvre par des machines. Dans de nombreux cas, les instructions sont difficiles à suivre et provoquent beaucoup de frustration et de confusion".

Utiliser ACME pour automatiser les certificats

L'utilisation accrue des certificats de serveur TLS pour sécuriser les applications et les données augmente la probabilité de pannes, étant donné qu'il y a plus de certificats à suivre et plus de certificats par application commerciale qui peuvent avoir un impact sur les opérations. Les demandes de certificats, les renouvellements et l'approvisionnement à l'aide de méthodes manuelles et de feuilles de calcul prennent des heures, voire des jours. En plus de prendre du temps, c'est un processus sujet aux erreurs qui peut conduire à des pannes douloureuses.

ACME contribue à atténuer cette situation problématique en permettant aux administrateurs informatiques de prouver à l'autorité de certification, de manière automatisée, qu'ils contrôlent le domaine, qu'ils émettent un certificat de confiance et qu'ils assurent le suivi de l'expiration du certificat. En outre, ils peuvent renouveler ou révoquer automatiquement le certificat chaque fois que cela est nécessaire.

ACME apporte l'automatisation dans les déploiements complexes de PKI . Ou, comme l' indique la documentation du protocole, ACME fournit un "cadre extensible pour l'automatisation de la procédure de délivrance et de validation du domaine, permettant ainsi aux serveurs et à l'infrastructure software d'obtenir des certificats sans interaction avec l'utilisateur. L'utilisation de ce protocole devrait simplifier radicalement le déploiement de HTTPS et l'aspect pratique de l'authentification basée sur PKIX pour d'autres protocoles basés sur TLS."

L'importance de l'agilité de l'AC

L'agilité de l'autorité de certification est la capacité d'ajouter/supprimer ou de passer d'une autorité de certification à une autre, ce qui est essentiel pour l'agilité de l'entreprise afin d'éviter l'enfermement dans l'autorité de certification. La meilleure pratique de l'industrie est d'éviter de créer une forte dépendance à l'égard d'une seule autorité de certification. Nous devrions être en mesure de changer d'autorité de certification de manière transparente, chaque fois que cela est nécessaire, sans aucun impact sur l'activité de l'entreprise.

Si une organisation est enfermée dans une seule autorité de certification et qu'il lui arrive quelque chose, comme une compromission ou une interruption de service, cela peut avoir un impact important sur la disponibilité des opérations en ligne. C'est pourquoi la possibilité de passer à une autorité de certification de secours est une bonne pratique.

ACME simplifie le processus de sélection d'une AC de secours. Il existe actuellement de nombreuses AC supportant le protocole ACME et le choix de l'une d'entre elles se fait en quelques clics lors de la phase de configuration.

Keyfactor + ACME

La plateformeKeyfactor prend en charge l'automatisation et le libre-service grâce à de solides fonctionnalités intégrées, en plus de l'automatisation des certificats basée sur un protocole ouvert à l'aide d'ACME.

La plateforme peut fonctionner comme un serveur ACME, ce qui vous aide à réduire les processus manuels, chronophages et les erreurs humaines grâce à une gestion de bout en bout du cycle de vie des certificats, et permet aux équipes d'obtenir facilement des certificats approuvés par les services de sécurité.