Explication de l'environnement de gestion automatisée des certificats (ACME)
Le protocole ACME automatise la gestion du cycle de vie des certificats PKI, réduisant les efforts manuels et les risques. Il simplifie l'émission, le renouvellement et la révocation des certificats avec des messages JSON sécurisés via HTTPS, assurant des opérations efficaces pour les équipes IT.
Table des Matières
Qu'est-ce que le protocole ACME ?
Le protocole ACME (Automated Certificate Management Environment) est un protocole permettant d'automatiser les communications de gestion du cycle de vie des certificats entre les autorités de certification (AC) et les serveurs web, les systèmes de messagerie, les appareils des utilisateurs et tout autre endroit où des certificats d'infrastructure à clé publique (PKI) sont utilisés. Le protocole ACME n'entraîne pas de frais de licence et les équipes informatiques n'ont besoin que de très peu de temps pour configurer et exécuter l'automatisation de la gestion des certificats, ce qui en fait un élément de plus en plus adopté de la sécurité de l'entreprise.
Le groupe de recherche sur la sécurité Internet (ISRG) a initialement conçu le protocole ACME pour son propre service de certificats et l'a publié en tant que norme Internet à part entière dans la RFC 8555 par son propre groupe de travail IETF. L'API ACME v2 est la version actuelle du protocole, publiée en mars 2018. (La version précédente, ACME v1, a été publiée en avril 2016 ; elle est désormais obsolète).
La base de l'émission de certificats PKI est que les autorités de certification, comme Sectigo, sont fiables pour authentifier qu'un utilisateur de certificat représente légitimement les identités et le(s) nom(s) de domaine associé(s) au certificat PKI. Le processus d'échange des informations nécessaires pour que l'autorité de certification effectue cette authentification et délivre des certificats, et pour que l'utilisateur déploie ensuite les certificats délivrés, est automatisé à l'aide du protocole ACME, plutôt que de communiquer ces informations manuellement. Outre le processus d'émission des certificats, le protocole permet également d'autres cas d'utilisation de la gestion du cycle de vie des certificats, comme la révocation et le renouvellement des certificats, à l'aide de simples messages au format JSON sur des communications HTTPS cryptées.
Protocole automatisé - Avantages et cas d'utilisation
Bien qu'il n'existe pas de solution d'authentification et de cryptage plus solide et plus facile à utiliser que l'identité numérique fournie par l'infrastructure à clé publique (PKI), le défi pour les équipes informatiques débordées reste que le déploiement et la gestion manuels des certificats prennent du temps et peuvent créer des risques inutiles. Qu'une entreprise déploie un seul certificat SSL pour un serveur web ou qu'elle gère des millions de certificats pour tous les appareils en réseau et toutes les identités d'utilisateurs dans une organisation, le processus de bout en bout d'émission, de configuration et de déploiement des certificats peut prendre jusqu'à plusieurs heures. La gestion manuelle des certificats expose également les entreprises à un risque important d'oubli des certificats jusqu'à leur expiration et d'exposition à des lacunes en matière de propriété, entraînant des interruptions soudaines ou des défaillances des systèmes critiques de l'entreprise, ainsi que des brèches et des attaques de type Man-in-the-Middle (MITM).
Compte tenu des nombreux pièges potentiels inhérents à la gestion manuelle des certificats PKI, les entreprises ont besoin d'une norme d'automatisation telle qu'ACME pour s'assurer que les certificats sont correctement configurés et mis en œuvre sans l'intervention humaine nécessaire pour s'assurer que les certificats sont valides un par un. Cette automatisation contribue non seulement à réduire les risques, mais permet également aux services informatiques de contrôler les coûts opérationnels.
Pourquoi utiliser ACME plutôt que d'autres options ?
Il existe d'autres normes d'automatisation des certificats, telles que Enrollment over Secure Transport (EST) et Simple Certificate Enrollment Protocol (SCEP), ainsi que des solutions associées à des architectures d'entreprise telles que Microsoft Active Directory. Pourquoi l'ACME est-il une norme d'automatisation de plus en plus populaire pour de nombreuses entreprises ?
La raison principale réside dans la complexité et l'ampleur des besoins de la plupart des entreprises en matière de certificats. Les entreprises s'appuient sur les certificats PKI pour authentifier et crypter tout ce qui est serveur web dans le cloud et sur site, appareils en réseau, appareils mobiles, identités des utilisateurs, systèmes de messagerie, appareils réseau, appareils IoT, environnements DevOps, et bien plus encore. Rendant la gestion de ce vaste écosystème encore plus difficile, les entreprises opèrent souvent sur plusieurs infrastructures informatiques, et non sur une seule architecture centralisée.
Les équipes informatiques comptent de plus en plus sur ACME pour les aider à relever leurs défis d'échelle et de complexité, car il offre :
- Une norme ouverte avec un ensemble complet de commandes et une gestion robuste des erreurs, ce qui facilite son adoption par les entreprises et les autorités de certification
- Les meilleures pratiques de sécurité TLS et autres PKI pour les équipes informatiques chargées de mettre en œuvre et de gérer des certificats PKI valides et des AC de confiance qui adhèrent à des procédures d'authentification strictes
- Des améliorations et un soutien continus de la part d'une communauté, qui n'est pas contrôlée par un seul fournisseur ou une seule organisation
- La possibilité d'ajouter et de prendre en charge des autorités de certification de secours
- Un faible coût, l'utilisation étant gratuite.
Comment fonctionne le protocole ACME ?
Les deux entités de communication d'ACME sont le client ACME et le serveur ACME. Le client ACME utilise le protocole pour demander des actions de gestion de certificats telles que l'émission ou la révocation. Le client s'exécute sur le serveur ou l'appareil de l'utilisateur qui doit être protégé par le certificat PKI. Le serveur ACME fonctionne au sein d'une autorité de certification, comme Sectigo. Il répond aux demandes du client et exécute les actions demandées une fois que le client est autorisé. La communication entre les deux est basée sur des messages JSON via une connexion HTTPS sécurisée.
En savoir plus sur l'intégration Sectigo ACME dès aujourd'hui.
L'autre élément important du processus est l'étape d'authentification, connue sous le nom de défi ACME. L'AC ne peut pas émettre un certificat ou compléter la demande tant que le challenge n'est pas passé. Les exigences d'authentification de ce processus de validation garantissent que les certificats ne sont délivrés qu'à des utilisateurs de confiance. Il existe actuellement deux types de défis ACME :
Défis HTTP
Lorsque le serveur ACME reçoit une demande d'un client ACME, l'autorité de certification renvoie un jeton au client ACME pour qu'il l'installe sur le serveur. Le client crée ensuite un fichier contenant cette clé et y ajoute une empreinte de la clé d'autorisation générée lors de l'installation. La structure du fichier est la suivante : (Token) || '.' || (empreinte de la clé d'autorisation). Une fois le fichier installé, le client informe l'autorité de certification, qui récupère et valide le fichier, puis complète la demande.
Défis DNS
Ce défi comprend un facteur de vérification supplémentaire en demandant à l'agent ACME de placer une valeur donnée dans un enregistrement TXT dans l'espace DNS du domaine. Le processus d'authentification est similaire aux défis HTTP : l'autorité de certification envoie un jeton au client et l'empreinte de la clé d'autorisation est ajoutée pour créer et installer le fichier de défi. Une fois que l'agent a notifié à l'autorité de certification que le défi a été relevé, l'autorité de certification tente d'effectuer une recherche DNS et de récupérer l'enregistrement TXT.
L'ensemble du processus de contestation est rapide et se déroule généralement en moins de 15 secondes pour les deux types. Toutefois, selon le RFC 8555, les administrateurs doivent s'assurer que la configuration du serveur est terminée avant que le client ACME n'envoie des requêtes, car il n'est pas rare que les requêtes des serveurs ACME échouent alors qu'une ressource est encore en cours de configuration sur les systèmes des utilisateurs. Par exemple, les informations DNS ou HTTP ou les règles de pare-feu mettent du temps à se propager entre les serveurs et le serveur ACME peut signaler une erreur s'il interroge un système avant que la propagation ne soit terminée. Le serveur ACME de l'autorité de certification considère le défi comme « en cours » et réessaie la requête toutes les 5 à 10 secondes tant que le client continue à essayer. Il est donc recommandé aux utilisateurs de ne pas répondre aux défis tant qu'ils ne pensent pas que les requêtes du serveur aboutiront, car il peut y avoir un léger délai entre le téléchargement du fichier ou de l'enregistrement DNS et le moment où l'autorité de certification est en mesure de les récupérer.
Comment configurer un client
Pour configurer un client ACME, l'utilisateur décide d'abord du client à utiliser, puis installe le client sur le domaine/serveur pour utiliser le protocole ACME. La flexibilité étant un atout, les clients fonctionnent dans presque tous les langages de programmation et tous les environnements dont dispose une entreprise :
- Bash
- C/C++
- Clojure
- Docker
- Go
- HAProxy
- Java
- Microsoft Azure
- nginx
- Node.js
- OpenShift
- Perl
- PHP
- Python
- Ruby
- Rust
- Windows/IIS
Comme pour les normes open source, il n'existe pas de clients propriétaires pour les AC. Cela permet aux organisations de choisir les autorités de certification qu'elles souhaitent, à condition qu'elles supportent ACME. Voici une liste de clients ACME v2 populaires trouvés sur GitHub :
- Certbot par Electronic Frontier Foundation (EFF) et sponsorisé par Sectigo
- ACMESharp
- acme-client
- GetSSL
- Posh-ACME
- Caddy
- égout
- nginx ACME
- node-acme-lambda
L'étape suivante consiste à configurer le client ACME et à l'installer sur le serveur où les certificats PKI doivent être déployés. Le processus de configuration se déroule en 6 étapes simples et ne prend que quelques minutes :
- Le client invite l'utilisateur à entrer le(s) domaine(s) à gérer.
- Vous choisissez l'autorité de certification souhaitée dans une liste d'autorités de certification supportant ACME fournie par le client.
- Une fois l'autorité de certification sélectionnée, le client la contacte et génère une paire de clés privées.
- L'autorité de certification émet le défi ACME, soit par HTTP, soit par DNS, pour authentifier l'identité de l'utilisateur.
- En plus des défis, l'autorité de certification envoie également un nombre généré de manière aléatoire appelé « nonce ». Le client signe avec la clé privée qui vient d'être générée pour prouver qu'il est propriétaire de la paire de clés.
- Vous définissez la fréquence à laquelle le client contacte l'autorité de certification pour renouveler le certificat.
Une fois que l'autorité de certification a vérifié que le défi a été relevé et que la signature est authentique, le client ACME est officiellement autorisé à agir au nom des domaines validés.
Comment ACME prend-il en charge la gestion du cycle de vie des certificats ?
L'émission, le renouvellement et la révocation de certificats PKI à l'aide du protocole ACME sont des opérations simples qui font appel aux processus courants de gestion des certificats. Le client envoie simplement des messages standard de gestion des certificats PKI et signe ces certificats avec la paire de clés autorisée.
Pour émettre ou renouveler un certificat :
- Le client crée une demande de signature de certificat (CSR) qui demande à l'autorité de certification d'émettre un certificat pour le domaine autorisé avec une clé publique spécifiée
- La CSR comprend une signature par la clé privée correspondant à la clé publique dans la CSR
- Le client signe l'ensemble de la CSR avec la clé autorisée pour le domaine afin que l'autorité de certification puisse vérifier qu'il est autorisé.
- L'AC vérifie les deux signatures et, si elles sont valides, émet un certificat pour le domaine autorisé avec la clé publique du CSR
- L'AC délivre le certificat au client.
La révocation d'un certificat à l'aide de l'ACME suit une communication similaire à celle de la délivrance et du renouvellement. Le client signe une demande de révocation avec la paire de clés autorisée pour le domaine, et l'autorité de certification vérifie que la demande est autorisée. L'autorité de certification publie ensuite les informations de révocation sur les canaux de révocation standard afin que les navigateurs n'acceptent pas le certificat révoqué.
Quels types de certificats TLS/SSL et autres certificats PKI sont pris en charge ?
Comme indiqué précédemment, la norme ACME prend en charge les certificats PKI pour les serveurs web, les systèmes de messagerie, les appareils des utilisateurs et tout autre endroit où la PKI est utilisée, à condition que l'autorité de certification prenne en charge l'ACME pour ce type de certificat PKI. Par exemple, elle prend en charge les certificats SSL qui nécessitent différents modes d'authentification - validation de domaine (DV), validation d'organisation (OV) et certificats de validation étendue (EV) - en tenant compte du fait que des étapes d'authentification supplémentaires peuvent être nécessaires en dehors de ce que l'ACME facilite.
Comme Sectigo offre des certificats SSL/TLS en plus de signature de code, S/MIME, et d'autres certificats X.509 qui supportent ACME, les entreprises ont également besoin d'un moyen d'automatiser la gestion du cycle de vie de bout en bout à l'échelle. Sectigo Certificate Manager prend en charge le protocole ACME pour une gestion entièrement automatisée du cycle de vie des certificats.
Envie d'en savoir plus ? Contactez nous pour réserver une démo de Sectigo Certificate Manager !
Articles associés :
Les risques d'ignorer l'ACME à l'ère du SSL à 90 jours et 47 jours
Root Causes 298 : Aller de l'avant, ensemble - Promouvoir l'automatisation